有向非巡回グラフ(DAG:directed acyclic graph)とは、暗号資産でよく使われるデータのモデリング・整理の手法です。
ブロックの連なりで構成されるブロックチェーンとは違い、有向非巡回グラフは頂点(バーテックス)と辺(エッジ)で構成されます。つまり暗号資産の取引は頂点として記録され、その上に次々と取引が積み重なっていきます。ただしブロックチェーンと同じく、取引はノードを通じてDAGへ送信されます。ノードが取引を送信するには、プルーフ・オブ・ワーク(PoW)の作業をこなす必要があります。
要するに、ブロックチェーンの構造が鎖に見えるのに対し、DAGの構造はグラフに近い形をしています。DAGモデルはデータの保存とオンライン取引の処理に優れているため、将来的にブロックチェーンに取って代わりうる仕組みとして業界で注目されています。
DAGモデルは、暗号資産が抱える現在の分散化の問題に対する答えの候補とも見られています。このモデルでは、マイナーがチェーンに追加する新しいブロックを奪い合う必要がありません。
ノードが同時に生成されるため、取引の処理も速くなります。開発者たちはDAGを、スケーラビリティが高まればネットワークの使い勝手を大きく向上させられる、より優れた安全な仕組みとして捉えています。
DAGはどう動くのか
前述のとおり、有向非巡回グラフはデータ保存の効率に優れています。その構造は樹木のようで、相互につながったノードが「枝」の役割を果たします。
各頂点は複数の親を持てるため、このモデルでは同時により多くの取引を承認できます。ユーザーは次の取引を処理するのに、前の取引の完了を待つ必要がないからです。
そのため有向非巡回グラフでは、新しい取引はネットワークに受け入れられる前に過去の取引を参照しなければなりません。これはブロックチェーンのブロックが直前のブロックを参照するのと同じ考え方です。背景にある論理は、ある取引は別の取引から参照されて初めて実質的に承認されたことになり、それが連鎖していく、というものです。
DAGでは各頂点が1件の取引を表します。ブロックが存在しないため、マイニングも不要です。取引はブロックにまとめられるのではなく、互いの上に積み上げられていきます。そして先ほど述べたとおり、ノードが取引を送信するたびにプルーフ・オブ・ワークの作業が行われ、過去の取引を承認すると同時にスパムを防ぎます。
DAGベースの暗号資産では、原則として新しい取引が古い取引の上に積み上げられます。ブロックチェーンとの主な違いは、DAGでは一度に1件ずつではなく、複数の取引を参照できる点です。
システムによっては、蓄積された重み(その先端に至るまでの承認数)に基づいて、どの「チップ(先端の取引)」の上に積み上げるかを選ぶアルゴリズムを備えています。
DAGにおける二重支払い対策は、ノードがDAGの最初の取引までさかのぼる経路を調べて過去の取引を承認する仕組みで機能します。これにより送信者に十分な残高があるかどうかが確認されます。無効な経路の上に積み上げてしまうと、その取引は無視される恐れがあります。
複数の経路から生じる衝突は、蓄積された重みがより大きい先端を優先する選択アルゴリズムによって解決されます。
DAGは何に使われるのか
DAGモデルは、ブロックチェーン技術の弱点とされる2点、すなわち分散化とスケーラビリティの改善を目指しています。あわせて、セキュリティと使いやすさの向上も狙っています。
どのように?
- ビットコインのブロックチェーンやイーサリアムのプラットフォームでは、マイナーは一度に1つのブロックしか作れません。そのため新しい取引は、前のブロックが完成してからでないと承認されません。DAGモデルはこのブロックをなくし、取引を直接台帳に追加します。
ブロックがなくなることで、DAGモデルにマイニングは不要になります。つまりネットワークを支えるのに必要な電力が減ります。DAGにはほかにも次のような利点があります。
- ブロック生成に縛られない高速な取引処理
- マイナーがいないため取引手数料も発生しない
- マイニングと比べてエネルギー消費が少なく、環境面でも有利
ただし現時点では、暗号資産におけるDAGの活用はまだ初期段階にあります。ブロックチェーンとは異なり、完全な分散化には至っていません。そのため主にネットワークを立ち上げる用途で使われており、安定したネットワークを構築するための仕組みとしてはまだ使われていません。
DAGを使っている暗号資産は?
かつては暗号資産をブロックチェーン抜きで考えることは不可能でした。しかしDAGモデルの登場により、この技術を使って構築された暗号資産がすでにいくつも存在します。
例を挙げるとObyte、IOTA、Nanoなどです。まだ比較的新しいとはいえ、DAGの構造は大きな可能性を示しています。前述のとおり、いくつかのプロジェクトがすでに実用化に成功しています。代表的なものは次のとおりです。
Obyte
Obyte(旧ByteBall)は、DAG構造を採用することでブロックチェーンから完全に独立した暗号資産です。ただし、Obyteの取引には手数料がかかります。
これはObyteネットワークが、取引の二重チェックを可能にするバリデーター方式を採用しているためです。合意形成には「ウィットネス(証人)」に基づくアルゴリズムを用います。ウィットネスとは、バリデーターの役割を担う信頼できる実績あるユーザーのことです。
Obyteは追跡不可能な取引に加えて、スマートコントラクトにも対応しています。
IOTA
モノのインターネット向けアプリケーションを想定したIOTAは、2016年に「ブロックのないブロックチェーン」ネットワークを稼働させました。IOTAの考え方は、すべてのユーザーが事実上マイナーになるというものです。たとえば自分の取引を1件承認してもらうには、ユーザーは2件の取引を検証する必要があります。
IOTAはノードと、ノードの集合体である「タングル」から成るネットワークを使い、承認プロセスをより速く効率的にしています。
すべてのユーザーがネットワークの維持にわずかな計算能力を提供し、全員が合意形成にも参加します。これによりネットワークは、高度に分散化されながら同時にスケーラブルであることが可能になります。
取引手数料はほぼゼロで、そのためIOTAはマイクロペイメント向けの費用対効果に優れた代替暗号資産と見なされています。
Nano
NanoもDAGの仕組みで動く暗号資産です。Nanoはノードでつながれた独立したブロックチェーンを持ち、これはブロックラティス(block-lattice)技術と呼ばれます。実際にはDAGとブロックチェーンを組み合わせたものです。
各ユーザーは自分専用のウォレットとブロックチェーンを持ちます。自分のウォレットやブロックチェーンに変更を加えられるのは本人だけです。取引は、送信者と受信者がそれぞれ自分のブロックチェーン上で処理を行った時点で完了します。
Nanoはユーザーに対し、取引手数料ゼロと高い処理速度を提供しています。
ブロックチェーンにおけるDAGの役割とは
DAGはまだ調整の余地があるものの、ブロックチェーンの有力な選択肢と見ることができます。DAGモデルは、コスト、速度、適応性といったブロックチェーン技術によくある課題の解決を目指しています。
実際、どちらの技術も取引をデジタル台帳に記録し、同じ目標に向かっています。両者を分けるのは主に、データを保存するために各モデルが用いる構造です。
DAGとブロックチェーンの比較
ブロックチェーンもDAGも、分散型台帳に取引を記録する点は同じですが、その手段が異なります。
以下は、メリットとデメリットの観点から両者を簡単に比較したものです。
DAGのメリット
- マイクロトランザクションや大量の取引に適している
- マイニング機器が不要になる
- 手数料を大幅に下げられる可能性がある
- エネルギー消費が少ない
DAGのデメリット
- 取引量が少ないため攻撃に対して脆弱
- まだ黎明期にあり、十分な水準の分散化を実現できていない
ブロックチェーンのメリット
- 確立された技術で、ビットコインやイーサリアムなどの暗号資産に広く使われている
- 透明性が高く改ざんできない、非常に安全な仕組み
- 高額の取引では費用対効果が高い
ブロックチェーンのデメリット
- ストレージとネットワーク帯域の要件が厳しい
- 大量の電力を消費する
- 取引手数料が高い
結局のところ、どちらのモデルを選ぶかはビジネス上の目的次第です。ここまで見てきたとおり、それぞれに長所と短所があり、ニーズによってはどちらか一方がより適していることもあります。
