DAG(有向非巡回グラフ)とは?
DAG(有向非巡回グラフ)とは、トランザクションやブロックを単一の逐次的なチェーンではなく、頂点のネットワークとして結び付ける非線形の分散型台帳アーキテクチャである。並行して発生する活動を並列処理できるため、DAGベースのシステムはネットワークのボトルネックを減らしつつ、スケーラビリティとスループットの向上を目指す。グローバルなブロック先端に依存する従来の線形ブロックチェーンとは異なり、DAGプロトコルの性能、セキュリティ、コンセンサスモデルは、順序付け、競合解決、ファイナリティに関する固有のルールに大きく依存する。
DAG(有向非巡回グラフ)とは、一方向の辺で結ばれた頂点から成り、その辺がループを形成しないデータ構造である。分散型台帳では、頂点はトランザクション、イベント、ブロックを表すことがあり、そのリンクは依存関係や過去の履歴への参照を記録する。すべての更新を単一の線形なブロックチェーンに押し込めるのではなく、複数のブランチが同時に伸びていくことができる。
DAGは情報の整理方法を表すものであり、完全なコンセンサスメカニズムではない。ネットワークには依然として、イベントの受け入れ、競合の検出、関連するトランザクションの順序付け、Sybil攻撃への耐性、ファイナリティへの到達に関するルールが必要である。Hederaのハッシュグラフ、ブロックDAGプロトコル、トランザクションDAGシステム、アカウントチェーン設計は、それぞれ異なる形でグラフ構造を用いている。したがって、DAGブロックチェーンという用語は、単一の共通するセキュリティモデルや性能モデルを意味するべきではない。
DAGアーキテクチャとは?
DAG(有向非巡回グラフ)とは、トランザクションやブロックを単一の線形チェーンではなく、相互に接続されたエントリのネットワークとして整理する台帳アーキテクチャである。 有向とは接続が定められた方向に従うことを意味し、非巡回とはそれらの接続が以前の地点へループして戻ることができないことを意味する。これにより、複数のトランザクションやブロックを並列に処理し、参照できるようになる。
DAGベースのネットワークがすべて技術的にブロックチェーンであるわけではない。個々のトランザクションをグラフのエントリとして記録するDAGシステムもあれば、最終的な順序を決定する前にブロックをDAGに整理するものもある。したがって、DAGネットワークの仕組みは、そのコンセンサスルール、トランザクションの順序付け、二重支払い防止、ファイナリティメカニズムによって決まる。
DAG分散型台帳はどのように機能するのか?
DAG台帳は、新しいトランザクションやブロックを頂点として追加し、単一の線形チェーンを延長するのではなく、それ以前のエントリを参照させる。異なる頂点を同時に作成できるため、独立した活動を並列に処理し、ネットワーク全体で共有できる。
1. 新しいエントリは以前のエントリを参照する:各トランザクションまたはブロックは、1つ以上の以前の頂点にリンクする。
2. ノードがグラフを共有する:参加者は新しいエントリを交換し、それらの参照からネットワークのトランザクション履歴を再構築する。
3. コンセンサスがDAGを解釈する:プロトコルは、競合するブランチやトランザクションをどのように順序付け、または重み付けするかを決定する。
4. 競合が解決される:2つのトランザクションが同じ資金を使おうとした場合、あらかじめ定められたコンセンサスルールがどちらを受け入れるかを決める。
5. トランザクションがファイナリティに達する:ファイナリティはネットワークに応じて、投票、累積された重み、順序付けルール、あるいは別のコンセンサスメカニズムからもたらされる。
DAG台帳の主な利点とユースケースは?
DAG構造は、最終的に承認される順序を導き出す前に、同時並行的な活動を記録したいプロトコルに有用である。その利点はネットワークによって異なり、グラフの形だけから推測することはできない。
1. 同時並行の更新を履歴に取り込める。複数のノードが、単一のグローバルなブロック先端を待つことなく、直近の履歴を参照するイベントやトランザクションを作成できるため、構造上の直列化ポイントが減少する。
2. ゴシップ関係がコンセンサス情報を運ぶことができる。ハッシュグラフでは、イベントのリンクが誰が誰と通信したかを記録するため、ノードはすべての決定について個別の投票をブロードキャストする代わりに、共有された履歴から仮想投票を計算できる。
3. 高頻度の記録を効率的に整理できる。決済、タイムスタンプ、メッセージ、サプライチェーンのイベント、マシンの活動は、プロトコルがそれらの依存関係と競合を解決できる場合、グラフベースの取り込みによって恩恵を受けうる。
4. グラフは因果関係のある履歴を明らかにできる。参照は、あるイベントが作成される前にどのイベントが知られていたかを示し、コンセンサスアルゴリズムが順序付けや確認に利用できる情報を提供する。
DAGベースの分散型台帳の例は?
DAGベースのネットワークは実に多様である。それらを比較するには、グラフの用語だけで分類するのではなく、コンセンサス、パーミッション、トランザクションモデル、ファイナリティ、スマートコントラクト対応を検討する必要がある。
• Hedera Hashgraph。Hederaのノードは、トランザクションと親イベントのハッシュを含む署名済みイベントをゴシップし、仮想投票とコンセンサスタイムスタンプを支えるハッシュグラフを構築する。
• IOTAのTangle設計。IOTAは歴史的にTangleと呼ばれるトランザクションDAGを用いてきたが、そのアーキテクチャとコンセンサスは進化してきたため、実装に関する主張は現在のプロトコルドキュメントに基づく必要がある。
• Avalancheコンセンサスファミリー。Avalancheは、反復的なサブサンプリング投票に向けたDAG指向のコンセンサス設計を導入したが、実際に展開されているチェーンと仮想マシンは、特定のワークロードに対して線形のブロックチェーン履歴を提示することがある。
• Nanoのブロックラティス。Nanoは、各アカウントの更新をより大きなグラフ内の独自のアカウントチェーンに整理し、アカウント所有者が独立して更新できるようにしつつ、代表者による投票で競合を解決する。
DAG台帳の限界とリスクは?
DAGは同時並行の履歴を取り込むことができるが、並行性は順序付け、競合解決、ストレージ、プルーニング、ネットワーク同期を難しくする。セキュリティは、線形チェーンが存在しないことではなく、プロトコル全体と参加者モデルからもたらされる。
1. コンセンサスは依然として必要である。グラフだけでは、二重支払い、悪意あるブランチ、互換性のないイベントの間で判断を下すことはできないため、ネットワークには依然として投票、重み付け、リーダー、委員会、あるいは別の合意プロセスが必要である。
2. グラフの成長はリソース負荷を高めうる。ノードは多数の頂点と関係を保持し、たどり、インデックス化し、同期する必要が生じることがあり、長期的な運用にはプルーニングと効率的な状態表現が重要になる。
3. ファイナリティは説明が難しいことがある。ユーザーは、イベントの受信、グラフへの取り込み、信頼度、コンセンサスによる順序付け、不可逆的なファイナリティを区別する必要がある。これらの段階はDAGプロトコルごとに異なるためである。
4. Sybil耐性はネットワークによって異なる。プロトコルは、ステーク、許可制のメンバーシップ、代表者投票、評判、 プルーフ・オブ・ワーク、レート制御などに依存することがあり、それぞれが異なる攻撃コストとガバナンスの前提を生み出す。
5. 相互運用性はより限定的になりうる。アカウントベースの ブロックチェーン向けに構築されたウォレット、エクスプローラー、カストディシステム、スマートコントラクトツールは、ネットワークのグラフとトランザクションモデルに合わせた専用の統合を必要とする場合がある。
DAGはブロックチェーンと同じものか?
DAGが自動的にブロックチェーンと同じであるわけではない。従来のブロックチェーンも、ブロックが以前のブロックを参照するため、それ自体が制限された有向構造である。しかし、その正規の履歴は通常、1つの順序付けられたチェーンとして提示される。一般的なDAGは、複数の同時並行のブランチやアカウント履歴を保持し、後から承認された順序を導き出すことができる。ブロックDAGのプロトコルもあれば、トランザクションDAGのものもあり、内部的にはDAGを使いながら線形の台帳ビューを提示するものもある。正しい呼称は、プロトコルのデータルールとコンセンサスルールによって決まる。
関連概念
1. ブロックチェーンとは?
2. コンセンサスとは?
3. ハッシュとは?
4. ビザンチン障害耐性とは?
参考資料
1. Hedera(HBAR)とは?aBFTコンセンサスがハッシュグラフエコシステムを支える仕組み
よくある質問
DAG台帳はトランザクションを並列処理できるのか?
独立した活動を同時並行的に記録・評価することはできるが、実際のスループットはコンセンサス、競合率、ネットワーク通信、実行、ストレージ、ノードのハードウェアに依存する。DAGという形だけでは性能は保証されない。
DAG台帳にはマイナーが必要か?
DAGはどのように二重支払いを防ぐのか?
Hederaは従来型のブロックチェーンなのか?
アカウントをお持ちでないですか?
今すぐアカウントを開設して、暗号資産の取引を始めよう