毎日更新!ビットコインはもちろん、暗号資産のことがよくわかる情報サイト

ブロックチェーンを使わない画期的なDAG型コインとは?

2017.09.26
ブロックチェーンを使わない画期的なDAGコインとは?

<この記事(ページ)は 16分で読めます>

最近大きく脚光を浴びているIOTA(アイオータ)Byteball(バイトボール)といったDAG型コインですが、これらのコインがどんな技術を使っている仮想通貨なのか、よくわかっている人は少ないのではないでしょうか。

そもそも、DAG型コインのDAGが“Directed Acyclic Graph”の略だと知っていても、その直訳の「有向非巡回グラフ」ってピンと来ないですよね。

そこで、DAG型コインとはどんなものなのか、そしてDAG型コインは通常のブロックチェーン型の通貨と比較してどのような特徴があるのかを説明します。

DAGはブロックチェーンではない

ブロックチェーンを使わない画期的なDAGコインとは?

DAGとは、Directed Acyclic Graphの略です。単語ごとに訳を追うと、

directed : 方向を持った
acyclic : 環状の経路のない
graph : グラフ、図式

ということになります。なんとなくはイメージできますが、「何が」「どのような」方向をもっているのかはっきりしないですね。

DAGには2つの要素があり、1つはノード(nord)で、もう1つはエッジ(edge)です。

グラフ上では、ノードは点でエッジはノードとノードを結ぶ線分で表されます。ここで、「何が」「どのような」方向をもっているかということですが、具体的な方向をもっているのはエッジであり、一つひとつのエッジが全体として似たような方向をもつことで、グラフ全体としてもある方向をもった構造になっています。

具体的には下のような構造です。これは、ビットコインなどの仮想通貨を支えるブロックチェーンとは異なるものです。

ブロックチェーンを使わない画期的なDAGコインとは?

iota.whitepaperより一部変更

 DAG型コインの特徴

ブロックチェーンとは異なるDAG。そのDAGによる仮想通貨をDAG型コインと呼びます。

DAG型コインは、通常のブロックチェーンをもつ仮想通貨においてマイナーが政治的に力を得るのを防ぐため、マイニングという作業をなくそうという目的で開発されたコインです。

マイナーがトランザクションの承認を請け負う代わりに、各ユーザーがトランザクションの承認も行うことで成り立っています。

下のグラフを見てください。一見、グラフとコインは関係ないように思えますが、このグラフは実はユーザーが互いに承認していく様子を模式化しているのです。具体的には、グラフのノードがDAG型コインのトランザクションに対応し、方向をもったエッジがDAG型コインにおける承認を表しています。

例えば、IOTAというDAG型コインでは、各ユーザーがトランザクションを行いたいときに自分のトランザクションが他人に承認してもらえる状態にするためには、自分のトランザクションより前のトランザクションを2つ承認する必要があります。この図はその様子を表しています。エッジの矢印の先が承認されるトランザクション、エッジの元が承認するトランザクションを表していて、それぞれのトランザクションはその左にあるトランザクションよりも新しいものです。すなわち、一番右にあるグレーのトランザクションが最も新しいトランザクションで、まだどのトランザクションにも承認されていないトランザクションということになります(詳しくは後述)。

ブロックチェーンを使わない画期的なDAGコインとは?

iota.whitepaperより一部改変

ブロックチェーンの特徴

ブロックチェーンを使わない画期的なDAGコインとは?

DAGは、関係者からは”blockchain without block and chain(ブロックとチェーンのないブロックチェーン)”などといわれるほど期待を寄せられています。現在新たな技術として大きく期待されているブロックチェーンですが、DAGとはそのブロックチェーンと並ぶほどすごい技術なのでしょうか。

まず、ブロックチェーン型コインでは、一定期間(ビットコインでは約10分間)の間のトランザクションをまとめて1つのブロックとし、マイニングと呼ばれる作業によってブロックがつながれます。ブロックチェーン型コインは、ブロックチェーンがすべてのユーザーの間で共有できることで、マイナーや一部のユーザーが意図的な改ざんや二重支払いを行わないよう監視できるシステムになっています。

マイニングでは、1つ前のブロックのハッシュ値と現在のブロックの内容、そしてナンス値をハッシュ関数に出力した結果がある条件を満たすようなナンス値を探し出す、という作業が行われています。この「ある条件」を少し変更することによりマイニングの難度を変更することができます。仮にこの「ある条件」がまったくなければ、誰でもマイニングできることになりますが、ブロックチェーンにおいては正当性のあるブロックチェーンがただ1つ定まるということが必要になります。そのため、この「ある条件」を設けることで、わざとマイニングの難度を上げることで、新しいナンス値を見つけるまでにかかる時間が人によって異なるようにしています。

また、ナンス値を見つけるまでにかかる時間はコンピュータのスペックのみならず運にも依存するので、マイニングに成功するマイナーはブロックごとに変わりうるため、理論的にはマイナー市場が寡占市場にならないようになっています。そして、このようなマイニングを行うマイナーのインセンティブの一部として取引の手数料があります。

IOTAはどんなコイン?

これに対し、DAG型コインでは、トランザクションはそれぞれが独立に扱われ、個人のユーザーにより承認作業を受けます。DAG型コインには、マイニングにあたる作業がなく、取引の正当性が全ユーザーにより確認されることがありません。

IOTA(アイオータ)とByteballでは細かい仕様が異なるので、まずはIOTAについて説明しましょう。

IOTAとは、DAGを応用したDagcoinの構想に影響を受けたともいわれているDAG型コインの1つです。2017年9月21日現在で時価総額8位の大注目といっていいコインです。この注目の理由としては、tangleという新技術への期待が大きいでしょう。tangleとは、IOTA独自のプラットフォームで、DAGグラフが元となっています。tangleは次のように運用されています。

IOTAのユーザーは、トランザクションごとに2つのトランザクションを承認する必要があり、これらの2つのトランザクションはあるアルゴリズムに基づいてまだ承認されていないトランザクションから優先的に選択されます。その後のユーザーによる承認作業には大きく3つの手順があります。

(1) 承認するトランザクションの電子署名の確認。これは複数回のハッシュ計算からなる。

(2) 承認するトランザクションが規定された仕様に従っているかを確認。具体的には、承認するトランザクションのユーザーがナンス値の計算(後述)を行ったか、トランザクションの書式などを確認する。

(3) DAGグラフ上に二重支払いがないか確認。snapshotと呼ばれる仕組みによりDAGグラフの一部のみを確認すれば十分。

これら3つの確認事項が条件を満たしていることが確認されると、有効なトランザクションとして承認されます。

ブロックチェーンを使わない画期的なDAGコインとは?

このような承認作業を通して、承認するトランザクションが正当な持ち主により行われた取引であること、そして二重支払いが起こらないようにすることができます。

また、IOTAでは承認作業以外に必要となる作業があり、これがナンス値の計算です。承認した2つのトランザクションのハッシュ値と自分のトランザクションの内容およびナンス値を入力した出力結果がある条件を満たすようなナンス値を求める作業を行います。

作業内容としては、ビットコインのマイニングとほぼ同じですが、その目的はブロックチェーンにおけるブロック生成ではなく、IOTAがスパム攻撃にさらされないようにするためのものです。IOTAを通常使用するだけではコンピュータにさほど負荷はかかりませんが、悪意のあるユーザーがスパム攻撃などを試みた場合にはナンス値の計算作業が膨大になりコンピュータの処理が終わらないからです(IOTAにおけるこのナンス値の計算をマイニングと呼ぶ人もいますが、ブロックを生成しているわけではないのでマイニングとは違います)。

この作業はスパム耐性のため義務付けられた作業をこなした証拠という意味でPoW(Proof of Work)と呼ばれることもありますが、ビットコインにおけるコンセンサスアルゴリズムとしてのPoWとは意味合いが異なります。

IOTAのどこがすごいのか

ブロックチェーンを使わない画期的なDAGコインとは?

IOTAの画期的な点としては、第一に、取引手数料がかかりません。ビットコインではブロックチェーンの共有という目的でマイニングに対し取引手数料を支払う必要が生じたのに対し、IOTAでは全ユーザーの間で共有される台帳がないためマイニングと取引手数料の必要がありません。

簡単な理解としては、取引手数料の代わりとして、確認作業やナンス値の計算作業などコンピュータの処理能力を提供していると思えばいいでしょう。このため、ビットコインでは不向きだった小口取引での仮想通貨の応用や、IoT(Internet of Things)への応用が期待されています。

第二に、ブロックが存在しないためスケーラビリティの問題がありません。スケーラビリティとはシステムの拡張可能性のことで、システムの規模が大きくなったときにも機能を維持できるかということです。例えば、ビットコインではユーザー数の増加に伴い、ブロックサイズの問題でマイナーとコアデベロッパーとの間で亀裂が生じました。

一般にブロックチェーン型では、トランザクションの数が増加するとマイニングの難度の上昇、承認までに要する時間の増加、そのために起こる取引手数料の高騰などが避けられない問題となっています。しかし、DAG型では、このどれもが解決されているので画期的な点といっていいでしょう。

Byteballはどんなコイン?

次に、Byteball(バイトボール)の説明へと進みましょう。

ByteballもDAG型コインであり、データのストレージに対する保管料という発想から開発されたコインです。Byteballでは、コイン以外にもメッセージやデータのやり取りにも使用でき、いずれの場合もやり取りされたデータのバイト数に応じて手数料が発生します。

ByteballのDAGはtangleと少し異なるので、ここで説明していきます。

その相違点とは一言でいうと、witnessと呼ばれる管理者の存在です。witnessとは全ユーザーにより選挙を通して選ばれた12人の代表者で、witnessの仕事はDAGグラフの中にメインチェーンと呼ばれるチェーンを作ることです。これは二重支払いが生じた際に、より早い時間にメインチェーンを承認しているトランザクションのみを有効とするという規則によりトランザクションを差別化するためです。

 

ブロックチェーンを使わない画期的なブロックチェーンとは?

witnessには現実世界においても社会的地位や名声のある人がなることが想定されていて、不正によって被るダメージが不正による利益よりも大きいため不正を働かないという論理に基づいて管理が委託され、witnessはその見返りとして手数料を受け取ります。

なお、現段階ではIOTAにもcordinatorと呼ばれる管理者がいますが、これは開発者がIOTAユーザーが十分に増加するまで便宜的に承認作業を行っているだけで、いずれはcordinatorをなくす方針です。cordinatorとwitnessでは大きく役割が異なるので注意してください。

他にもsnapshotの有無など小さな仕様の相違はありますが、コイン全体への影響は比較的小さいのでここでは割愛します。

IOTAとByteball、どちらがすごいか

ブロックチェーンを使わない画期的なDAGコインとは?

ほとんど大きな仕様の違いのないIOTAとByteballですが、どちらのほうが優れているのでしょうか。

技術面の話にのみ目を向けると正直なところ一長一短なのですが、それぞれのアピールポイントを紹介しましょう。

IOTAは先ほども述べましたがいかんせん手数料が一切かかりません。これは非常に大きな強みで、実用化に至った際にはかなりの伸びが期待できます。ビットコインでは対応できない小口の支払いのみならず、機械に自動で支払い機能をもたせるIoT部門では大活躍です。

例えば、サービス代金を支払うと気象情報を収集して送信してくれる端末を想像しましょう。このようなサービス代金はたいてい非常に低い価格で提供されるでしょうが、この取引にいちいち一定額の取引手数料がかかるとすれば採算が合いません。しかも、取引手数料がやり取りの額にかかわらず一定の通貨の場合は、端末に支払うサービス代金よりも取引手数料のほうが大きくなるかもしれません。このような状況がIoTの開発に歯止めをかけていました。しかし、もしもIOTAが広く取引に用いられるようになると、このような端末への支払いも手数料なしで支払いすることができます。

IOTAの開発者はこれをさらに拡張することを提言していて、このような支払いすらも機械やAIに委ねられるような社会を目指しています。MTM(machine to machine)と呼ばれる機械同士でのやりとりで取引が完結すると、金銭の支払いに関連したトラブルも減るでしょう。

Byteballも負けてはいません。次の2つの点ではIOTAを上回っています。

まず、二重支払い対策です。先ほど説明したように、Byteballではwitnessによる管理で二重支払いが完全に防がれているため、ユーザーによる監視はあるものの二重支払いの可能性を払拭しきれないIOTAに比べると、セキュリティの面では上でしょう。

そして、UTXOモデルです。IOTAでは40%UTXO60%アカウントベースなどとも表現されるようにUTXOとアカウンドベースのハイブリッド型なのに対して、ByteballはUTXOモデルのため、高い匿名性を誇ります(UTXOとアカウントベースについては下記に詳述)。具体的には、IOTAでは取引ごとに使用するアカウントが変更されます。そのため個人に帰属するアドレスがないという点ではUTXOに近いのですが、お金の流れの管理方法としてはアカウントベースのため、このような表現がとられています。

________________________________________

ビットコインはトランザクションのマネージメントにUTXOモデルを採用しています。UTXOとは、Unspent Transaction Outputの略称で未使用トランザクションアウトプットと訳されることが多いです。アウトプットとは一言でいうと「(誰かが)お金を受け取る」ということで、UTXOとは直訳するとやりとりされたお金のうちトランザクションで使用されなかったもの、という意味になります。これではよくわからないのでわかりやすくいうと、UTXOとは百円玉や五十円玉のようなお金のまとまりのことで、ビットコインでは1つのアウトプットをUTXOとしてトランザクションごとにUTXOを書き換え、この変更を記録します。このようにして、流通しているすべてのビットコインをUTXOに分けてどのUTXOが誰のものかということを記録することで、やりとりを管理しています。

この説明ではイメージしにくいという方は、7BTC入金したAさんがBさんに5BTC支払う場合のことを考えてみましょう。ここでは便宜的に手数料を無視します。まずAさんが7BTC入金したときのトランザクションでは、Aさんが誰かに7BTCに相当する円を誰か(ここではCさんとしましょう)に支払い、Cさんから7BTCを受け取ります。ウォレット上のアウトプットとしてはAさんへの7BTCのみとなるので、この7BTCが1つのまとまりとして扱われています。

次に、AさんがBさんに支払う段階です。たとえば、五百円玉しか持っていない人が四百円誰かに支払うときには五百円玉を百円玉5枚に両替しなくてはなりません。ビットコインではこの作業がウォレット上で行われます。今回の場合では、7BTCのUTXOが5BTCのUTXOと2BTCのUTXOに両替されます。そして、5BTCのUTXOがBさんのもの、2BTCのUTXOがAさんのもの、という記録が残ります。

ブロックチェーンを使わない画期的なDAGコインとは?

ここでUTXOモデルの大きな特徴として挙げられるのが、Aさんのお金がすべて入っているアカウントというものが存在しないということです。Aさんの保有しているビットコインはすべてAさんのものであるという記録は残っていますが、Aさんの持っているUTXOはすべてバラバラのアカウントに入っています。これにより、後で述べるイーサリアムのアカウントベースモデルに比べて、お金のやりとりを追跡しにくいという匿名性があります。

これに対してイーサリアムは、アカウントベースモデルによりトランザクションを管理しています。アカウントベースモデルとは、文字どおりアカウントに基づいてトランザクションを管理しています。先ほどと同じ例に従うと、Aさんのアカウントには入金後7ETH入っています。この後Bさんに5ETH支払うことで、 Aさんのアカウントからは5ETH減りBさんのアカウントでは5ETH増加します。この増減をもとにトランザクションが記録されます。

ブロックチェーンを使わない画期的なDAGコインとは?

このモデルの特徴はシステムがシンプルなため、システムの構築・運用がUTXOモデルに比べてシンプルであるという特徴があります。

総合的には、やはり通貨の特性として重要な高い匿名性を保持しているUTXOモデルのほうが優れたモデルといえるでしょう。

________________________________________

 

まとめ

ここまでの内容を踏まえて、ブロックチェーン型通貨と比べたDAG型コインの長所、短所をまとめてみましょう。

まずIOTAは、取引手数料もマイニングも必要ないという点が非常に画期的です。取引手数料が不要となればビットコインでは実現できなかった小口での支払いが可能になります。さらにはIoT部門では、今ある通貨の中で最も活躍が期待できる通貨かもしれません。

このように大きく将来性を秘めたIOTAですが、気にかかる点もいくらか残ります。

ブロックチェーンを使わない画期的なDAGコインとは?

まず、ユーザーが正しく行動するという予想に基づいてシステムができているということです。whitepaperによると、「それぞれのユーザーは不正な取引を承認した場合には自分の取引が他人によって承認されないだろうと考えるので、不正な取引は承認しないように動機づけられている」とのことです。

ブロックチェーンでは、すべての取引がすべてのユーザーにより確認できる状態にあり、二重支払いなど不正を行った場合には直ちに明らかになります。これに比べれば、システムとしては脆弱です。

そして、トランザクションの管理です。IOTAはUTXOモデルとアカウントベースモデルのハイブリッド型といわれるように、使い捨てで個人に帰属しないアカウントを用いたアカウントベースモデルを使用しています。このため、匿名性が高いのが優れた点なのですが、逆に金銭の流れが複雑なためセキュリティの点で不安が残ります。例えば、UTXOモデルを使用しているビットコインでは、あるユーザーが5BTC送金するトランザクションの際、そのユーザーが5BTC以上入金した過去のトランザクションが参照できるよう過去のトランザクションの情報が含まれます。しかし、IOTAでは直接的に送金したいユーザーが支払い能力をもっている証明が取れないので、この点でビットコインに比べてセキュリティに問題があります。

これらの欠点は、一つずつではさほど問題がないのかもしれませんが、この両方の弱点を狙うような攻撃に耐えられるかはわかりません。これからユーザー数の増加やサービスの実用化に伴い、通貨の将来性も高まる一方で攻撃にさらされる可能性も高まるので、今後の動向を見守りましょう。

次にByteballです。

Byteballでは、witnessという管理職の監視によりIOTAよりも高い安全性が保証されています。さらにマイニングにあたる作業がないため、マイナーとコアデベロッパーとの間で問題が生じる、なんてこともありません。

しかし、Byteballも完璧ではありません。

ブロックチェーンを使わない画期的なDAGコインとは?

そもそも、ビットコインの一番の問題点はマイニング作業があるためマイナーの発言権が大きくなってしまうことです。Byteballではマイニングこそありませんが、代わりに他のユーザーに比べて権限のあるwitnessという役職を設けました。witnessは社会的な立場もある人が選ばれるということで悪意のある攻撃こそしないでしょうが、必ずしもByteballの開発者の意向に従うかはわかりません。さらに、witnessのもとには手数料の形でByteballが集まるため、witnessと開発者の対立もありえない話ではありません。

しかも、witnessという役職を設けた影響で取引手数料がかかるため、結局ビットコインと同様の弱点を抱えています。

ビットコインに比べてスケーラビリティの問題がないという点とトランザクションの承認に時間がかからないという点では確かに優れています。しかし、今後ビットコインがLightning Networkによりこれらの問題点を解決してくるとなると、Byteballがさらに他のアピールポイントを打ち出せるかが鍵となってきます。

関連記事

この記事のタグ