プラズマ(Plasma)は2017年8月にイーサリアム創設者のVitalik Buterin氏とライトニングネットワークの共同開発者であるJoseph Poon氏によって発表されました。

プラズマをイーサリアムに実装することで、1秒間当たりのトランザクションの処理数やより大きなデータサイズのトランザクションの処理を劇的に向上させることが見込まれています。

そして、イーサリアムにおけるブロックチェーンのスケーラビリティ問題解決に向けて大きく前進すると期待されているのです。

そこで、当記事ではプラズマのペーパー(PDF)を追いながらプラズマの概要と仕組みについてお伝えしていきます。また、画像に関してもペーパーから引用しています。

 

プラズマ(Plasma)とは

プラズマとは、高速かつスケーラブルなトランザクションの実行を実現するために提案されたスマートコントラクト実行フレームワークです。

具体的には、イーサリアムのブロックチェーンを親ブロックチェーンとして、プラズマブロックチェーンを階層的なブロックチェーンのTree(木)を作っていくアイデアになります。

下図のようにイーサリアムのブロックチェーンをルートチェーンとして、階層的にプラズマブロックチェーンを接続していきます。

イーサリアムのプラズマ

また、スマートコントラクトのスケーラビリティのためにさまざまなプラズマブロックチェーンを作ることができます。プラズマのペーパーでは以下のようにプライベートブロックチェーン、分散型取引所、SNS、マイクロペイメントなどが示されています。

プラズマ

概念的には、ライデンネットワークやライトニングネットワークのState channel(ステートチャネル)に似ています。それぞれのプラズマブロックチェーンの最終的な状態のみを親ブロックチェーンに送るのです。

しかし、プラズマはオフチェーン処理ではなく実際に(プラズマ)ブロックチェーンを用いて処理している点で異なります。また、ライトニングネットワークなどはユーザー間でのトークンのやり取りをスピーディにしますが、プラズマではトランザクションの処理速度を向上させます。

イーサリアムが分散型アプリケーションプラットフォームとして機能する性質を考えると、ペイメントのみでなくスマートコントラクトの実行速度を向上させることができる分、イーサリアムにとってはライデンが適していると感じます。

 

プラズマの実装により実現が見込まれていることは以下の通りです。

  • イーサリアムのブロックチェーンに保存されるデータサイズ減少
  • トランザクション手数料が減る
  • トランザクションの実行速度が上がる(送金速度およびスマートコントラクト実行速度の向上)
  • よりデータサイズの大きなトランザクションもスムーズに実行できるようになる

 

イーサリアムのブロックチェーンで余分なデータを保存する必要がなくなり、プラズマチェーンと連携することにより計算能力も高まります。つまり、プラズマはイーサリアムにおけるスケーラビリティ問題を劇的に解決することが期待されているのです。

また、イーサリアムのチューリング完全なデザインはイーサリアムネットワークでブロックチェーンの同期を遅くしてしまいます。

プラズマにより、階層的に接続されたブロックチェーンで並行的に計算を行うことができるので1秒間に数十億のトランザクションが実行できると見込まれているのです。

 

プラズマの仕組み

上述したように、プラズマブロックチェーンはツリー状の階層構造になるように接続されています。トランザクションはそれぞれのプラズマブロックチェーンで処理され、その結果が接続している親プラズマブロックチェーンに伝わっていくことで最終的にはイーサリアムのブロックチェーンに状態が記録されます。

このとき、ブロック内の情報を全て伝えるのではなく、ブロックヘッダーのハッシュを伝えることになります。

 

1階層のプラズマブロックチェーン

具体例として、1階層のプラズマブロックチェーンを見ていきましょう。

イーサリアムのプラズマ

アリスが持っている1ETHはプラズマブロックのみに記録されています。イーサリアムのブロックチェーンには記録されていません。その情報は、そのプラズマブロックのヘッダーハッシュをルートブロックチェーン(イーサリアムのブロックチェーン)に送信することができるのです。

それでは、もしこのときアリスの1ETHを記録しているブロックで不正が起きていると誰かが訴えたらどうなるでしょうか。

スマートコントラクトの実行により後述するFraud proofでその不正を証明することが可能です。Fraud proofがルートチェーンに提出されたら、不正が起きているブロックの生成者は罰せられることになります。

 

Withholding attack

withholding attackとは、プラズマブロックをわざと承認しないようにし、そのブロックに預けた資産(トークン)を引き出せないようにしたり、二重支払いのトランザクションなど不正なトランザクションを承認する攻撃です。

もしプラズマブロックチェーンでこのwithholding attackが起きた場合は、アリスは資産をそのプラズマブロックチェーンからその親プラズマブロックチェーンに安全に移動させることができます。

イーサリアムのプラズマ

ちなみに、プラズマブロックチェーンはプルーフ・オブ・ワークではなく、プルーフ・オブ・ステークが前提です。

参考:イーサリアムに導入予定。プルーフオブステークのメリットとデメリット

 

3階層のプラズマブロックチェーン

下図において、アリスの1ETHは3階層目のプラズマブロックチェーンにのみ記録されていてそれ以降のプラズマブロックチェーンには記録されていません。

イーサリアムのプラズマ

アリスが3階層目のプラズマブロックチェーンに1ETHを保持している情報はそのブロックヘッダーハッシュを親プラズマブロックチェーンに伝播していくことで最終的には、イーサリアムブロックチェーンに伝わります。

このコミット(情報送信)は、ライトニングネットワークなどと同様に一定の時間間隔で伝わります。そのとき、もし親ブロックチェーンで不正が起きていることが分かったら、そのブロックチェーンを回避するようなルーティング探索が行われます。

 

Map Reduce

プラズマでは、Map Reduce形式での並列計算によりトランザクションの実行速度を劇的に向上させます。

イーサリアムのプラズマ

まず1段階目のMAPでは、親会社が子会社に、その子会社がさらにその子会社に仕事を与えるように親プラズマブロックチェーンから子プラズマブロックチェーンへ計算処理の役割が送られていきます。

2段階目のREDUCEは、完了した仕事を子会社が親会社に提出するステップです。親プラズマブロックチェーンは派生する全ての子プラズマブロックチェーンから計算処理の結果をコミットしてもらい、それをさらに親プラズマブロックチェーンにコミットします。

このようなMapReduce形式で並列計算することでトランザクションの処理を高速化していきます。

 

また、冒頭でお伝えしたようにプラズマではさまざまなカウンターパーティーを想定しているので、それぞれのカウンターパーティーごとに並列計算を行います。

例えば、以下の図のブルーの部分は分散型取引所のための計算をしている、といったイメージです。

イーサリアムのプラズマ

 

Fraud proof

プラズマブロックチェーン内の全ての状態はFraud proofに従って実行されています。

イーサリアムのプラズマ

アリスは全てのブロックデータのコピーを持っているので、ブロック4で実際に不正が起きたのかどうかを親ブロックチェーンに証明することができます。これがFraud proofです。実際に、不正があったことが分かればブロック4の承認者は罰せられ、最新のブロックはブロック3になります。

 

ライトニングネットワーク(ライデンネットワーク)との共存

スマートコントラクトには「自由選択の問題(free option problem)」があります。スマートコントラクトが実行されるには、コントラクトの受け手が署名し、ネットワークにブロードキャストする必要があります。

つまり、これはスマートコントラクトの実行はその受け手の自由意志に委ねられるということです。信用していない相手とコントラクトを実行するとき、その受け手は署名をしないことによりコントラクトの実行を拒むことができてしまうのです。

 

プラズマはこの問題を解決することができませんが、ライトニングネットワークやライデンネットワークはこの問題を最小限にすることが可能です。これらの仕組みについては以下の記事で詳しく解説しています。

参考:イーサリアムにおけるライデンネットワークの仕組みと問題点

ライトニングネットワークではチャネル内でマイクロペイメントを高速に実行することが可能です。例えば、アリスからボブに10ETHを送る1回のトランザクションではなく、0.1ETHを100回送るペイメントとして実行できるのです。

これを利用して下図のようにプラズマの上(インターフェース層)で利用することで、自由選択の問題を分割し、それぞれの問題の価値(重要性)を最小化することが可能です。

プラズマ

つまり、本来なら受け手が1回拒んだら10ETHの送金ができなくなってしまうケースを、ライトニングネットワークにより分割することで1回の拒否で0.1ETHの送金が不可になるケースに変換できるということです。