仮想通貨における有向非巡回グラフ(DAG)とは?
ホーム
記事
仮想通貨における有向非巡回グラフ(DAG)とは?

仮想通貨における有向非巡回グラフ(DAG)とは?

中級者
公開済 Jul 19, 2020更新済 Dec 27, 2022
8m

イントロダクション

仮想通貨と言われたら、ブロックチェーンや分散型台帳技術がまずは頭に浮かぶでしょう。ビットコインの誕生以来、何百もの仮想通貨が誕生してきました。それらの大半は同様のネットワーク構造に依拠しています。これらのデータ構造によって、ユーザーは価値を移転したり、分散型アプリとやりとりしたりすることができます。
ブロックチェーンでは、新しいブロックが定期的にどんどんブロックのチェーンに追加されていきます。それぞれのブロックは直前のものと、なんらかの暗号的なリンク(具体的にはハッシュ)によって、つながっています。それぞれのブロックの中にはユーザーによってブロードキャストされた最新のトランザクションが入っています。
ブロックチェーンのようなデータ構造の場合、トランザクションがブロードキャストされてからブロックに格納されるまでの間には、しばしば待ち時間が発生します。駅で電車を待つようなものだと考えてください。客車の大きさ(ブロックサイズ)や他の人の数(保留中のトランザクション)によっては、次の列車に乗れないこともあります。また、さらにその次の電車にさえも乗れないこともあります。トランザクションが承認されるまで、数秒から数時間待たされることもあります。
多くの場合、これは適切なトレードオフです。このようなデータ構造を採用することによって、中央集権的なコーディネーターなしで、高度なセキュリティを提供できています。しかし、ブロックチェーンテクノロジーはいずれ使われなくなると主張する人達もいます。そういったブロックチェーンに懐疑的なたちは、長期的には、ブロックチェーンテクノロジーが直面しているスケーラビリティ問題がその一般的な普及の妨げになると信じています。

仮想通貨決済ネットワークの未来は全く別のアーキテクチャである有向非巡回グラフ(DAG)にあると信じている人もいます。


DAGとは?

DAGは、ブロックチェーンとは、別の種類のデータ構造で、異なる情報を結びつけるデータベースのようなものだと考えてください。有向非巡回グラフは難しい用語なので、まずはこの用語の説明から始めましょう。


有向非巡回グラフ


コンセプトとしては、DAGは上記の図のようなものです。それらは、頂点(それらを結ぶ線)で構成されています。それらは一方向に向かっているので、有向です(これは矢印で図示されています)。非巡回 (すなわち、環状にはなっていない) となっているのは、ある点から始めてグラフをたどっても、頂点がそれ自身にループしないので、同じ点に戻ることができないからです。この意味はすぐにわかるようになるでしょう。

このようなデータ構造は一般的にはモデルデータで使用されていました。変数間の関係を観察し、それらがお互いにどのように影響しているかを判断するために、科学や医学の分野でDAGは利用されてきました。例えば、栄養、睡眠サイクル、身体的症状などを取り上げて、それらが患者にどのように影響しているかを確立するために、それらをつなぐことができます。

私たちの目的においては、このデータ構造が分散型仮想通貨ネットワークにおいて、コンセンサスに達するのにどう役立つかについてより興味を持っています。


DAGの仕組み

DAGベースの仮想通貨では、それぞれの頂点はその構造におけるトランザクションを表しています。DAGにはブロックという概念やデータベースを拡張するためにマイニングが必要になるといったことはありません。そのため、トランザクションをブロックに詰める代わりに、それぞれのトランザクションは別のトランザクションの上に構築されます。ただ、ノードがトランザクションを提出する時に、少しだけProof-of-Workの運用が行われています。ここでネットワークがスパムされていないことを確認し、さらに以前のトランザクションを検証します。

新しいトランザクションが追加されるには、古いトランザクション上に構築されなければいけません。アリスが新しいトランザクションを作成したとします。それが認識されるには、このトランザクションは以前のトランザクションを参照する必要があります。ビットコインのブロックがその前のブロックを参照しているのに似ていますが、DAGでは複数のトランザクションが参照されています。

DAGを活用したシステムの中には、アルゴリズムが新しいトランザクション(またはチップ)が、どのトランザクション上に構築されるべきかを選択するものもあります。アルゴリズムが選択する可能性が高いチップは、そのチップと新しいチップをつなぐパスで、より多くの承認回数があるものです。

アリスのトランザクションがその上に構築されるトランザクションは未承認です。しかし、アリスがそれらを参照したら、それらのトランザクションは承認されます。アリスのトランザクションはその時点では未承認なので、承認されるには誰かがアリスのトランザクションの上にトランザクションを構築する必要があります。

ユーザーは、システムを成長させ続けるために、より多くの承認数のあるトランザクションを承認しようとします。そうでないと、ユーザーが古いトランザクション上に構築し続けるのを止める方法がありません。

ブロックチェーンでは、二重支払いの防止を簡単に実現しています。同じ資産はあるブロック内で二重に使用されることはできません。ノードはこのような不正を簡単に検知し、矛盾するトランザクションを含んでいるブロックの承認を拒否します。マイナーにとってはブロックを発行するためのコストが莫大なので、彼らには公平にマイニングを行うインセンティブがあります。

DAGにも二重支払いを防ぐためのメカニズムがあります。仕組みは似ていますが、DAGにはマイナーがいません。あるノードが古いトランザクションを承認するとき、送金者が十分な残高を持っていることを確認するために、DAGの一番最初のトランザクションに戻るまでのパス全体を分析します。複数のパスがあるかもしれませんが、検証が必要なのは1つだけです。



ユーザーが無効なパス上に構築していた場合、自分のトランザクションが無視されてしまうリスクを抱えることになります。また、そのトランザクションが正当だったとしても、その直前が正当でない場合は誰もその特定のパスを拡張しないでしょう。

最初は直感的に理解するのが難しく、互いに存在を認知していない複数のパスが存在するせいで、同じ資産が違うパスで使用できるのではないかと思うかもしれません。



確かにその可能性はありますが、この問題はより重みづけのされているチップを選択するアルゴリズムによって解決されています。 つまり、時間が経てば、他のものよりもはるかに強いパスができあがるということです。弱いパスは放棄され、ネットワークは最も重みづけの大きいパスの上に構築され続けます。

ブロックチェーンと同様に、トランザクションが決してリバースされることがないという100%のファイナリティはありません。実質的にはほぼ不可能ですが、理論上はビットコインイーサリウムブロック内の全てのトランザクションを取り消すことができます。行ったトランザクションが含まれたブロックの後に追加されるブロックの数が増えれば増えるほど、取り消される可能性は低くなり、信用できます。そのため、資産を使う前に6回承認を待つことが推奨されています。
IOTAのタングル(Tangle)のようなDAGでは、コンファメーションコンフィデンスというアイデアが採用されています。この選択アルゴリズムは100回実行されていて、選択されたチップにおいて直接、または間接的にあなたのトランザクションが承認された回数が数えられます。パーセンテージが高ければ高いほど、取引が決済されたままになる可能性が高いです。

これはユーザーエクスペリエンスの悪さにつながるように思われるかもしれませんが、心配しないでください。アリスがボブにMagicDAGTokensを10枚送る場合、彼女はグラフの正しいチップを選択することを心配する必要はありません。彼女のウォレットの中では、以下の操作が実行されているでしょう。

  • 重みづけの大きいチップを選択(選択されるのは最も承認が蓄積されたものです。)
  • 以前のトランザクションのパスをたどって、ちっぴに十分な残高があるかを確認
  • 完了したら、トランザクションをDAGに追加し、そのトランザクションの基になっているトランザクションを承認
アリスにとっては、これは通常の仮想通貨のワークフローに見えます。彼女は、ボブのアドレスと送金したい枚数を入力し、送金を押します。上記の一覧は、全ての参加者がトランザクションを作成する時に実行するProof of Workです。



有向非巡回グラフのメリットとデメリット

DAGのメリット

スピード

ブロックタイムによる制約がなく、誰でもブロードキャストし、いつでもトランザクションを処理できます。ユーザーが提出するトランザクションの数に制約がないので、同じように古いトランザクションの承認も行います。


マイニングなし

DAGでは、私たちがブロックチェーンで慣れ親しんでいる方法では、PoWコンセンサスアルゴリズムを使用していません。そのため、ブロックチェーンネットワークのセキュリティのためにマイニングに頼る、仮想通貨と比べて、DAGのカーボンフットプリントは圧倒的に少ないです。


取引手数料なし

マイナーがいないので、ユーザーはトランザクションをブロードキャストするために手数料を払う必要はありません。そうは言うものの、特別な種類のノードに支払うためのわずかな手数料を要求するDAGのネットワークもあります。マイクロペイメントの場合、ネットワーク手数料が高額だと意味がないので、手数料が低額、もしくは無料であることが望ましいので、DAGが適している分野です。


無制限のスケーラビリティ

ブロックタイムに制限がないため、DAGはこれまでのブロックチェーンネットワークと比べて、はるかに多く1秒当たりのトランザクション数を処理することができます。このため、DAGの支持者の多くはたくさんの機械がそれぞれにやりとりを行うようなInternet of Things(IoT)のユースケースにDAGは価値を発揮できると信じています。


DAGのデメリット

不完全な分散化

DAGに依存するプロトコルには、様々な中央集権的な要素があります。これらの要素は、一部のプロトコルでは、ネットワークをブートストラップ(立ち上げて、成長)するための短期的な解決策とされていますが、第三者の介入なしにDAGが成功するかどうかは、まだわかりません。第三者の介入がなければ成功しない場合、ネットワークを麻痺させてしまう可能性のある脆弱性を抱えているということになります。


大規模ネットワークにおける実績がない

DAGベースの仮想通貨が登場して数年が経ちますが、普及するにはまだ長い道のりが必要です。そのため、将来的にユーザーがシステムを利用するインセンティブを予測するのは困難です。


まとめ

有向非巡回グラフは仮想通貨ネットワークを構築するための注目されている技術であることは間違いありません。これまでのところ、このデータ構造を使用するプロジェクトの数は比較的少なく、まだ技術的に未熟なところもあります。 
そうは言うものの、DAGがそのポテンシャルを発揮することができたら、大規模なスケーラブルエコシステムを実現することができるでしょう。DAG技術は、Internet of Things (IoT)やマイクロペイメントのように、高いスループットが必要かつ、手数料がかからないことが求められる分野において、無数のユースケースが考えられます。