2018.04.13
プラズマブロックチェーンの仕組みについて
こんにちは、次世代システム研究室のT.D.Qです。
イーサリアムは元々スケーラビリティに関して解決しなければならない課題が多く、現在の100倍はスケーリングを改善する必要があると指摘されている。この課題を解決するため、Vitalik Buterin氏(イーサリアムの創設者)とJoseph Poon氏(ライトニングネットワークの創設者)は2017年8月11日にプラズマ(Plasma)を提案した。プラズマは、潜在的に1秒間に数十億回のスマートコントラクトを自律的に強制実行することによりスケーラビリティ問題を解決するフレームワークです。「Plasma: Scalable Autonomous Smart Contracts」を読んだので、今回の記事にプラズマの仕組みについて紹介したいと思います。
プラズマの仕組み
・イーサリアムのブロックチェーンを親ブロックチェーン(ルートブロックチェーン)として、それぞれのプラズマブロックチェーンをツリー状に接続していく。

・トランザクションはそれぞれのプラズマブロックチェーンで処理され、その結果が接続している親プラズマブロックチェーンに伝わっていくことで最終的にはイーサリアムのブロックチェーンに状態が記録される。
・ブロック内の情報を全て伝えるのではなく、ブロックヘッダーのハッシュを伝えることにる。
親チェーンによって強制される子チェーンに台帳を組み込む事により、最小限の信頼で圧倒的なスケーリングを可能にする
・Map Reduce形式での並列計算によりトランザクションの実行速度を向上させる。
プラズマの主な要素
子チェーン
イーサリアムのブロックチェーンを部分的に同期させる。スマートコントラクトのレイヤーを作成することによってトランザクションデータを最適化する。
クライアント
イーサリアム及びプラズマの子チェーンを監視する。プラズマチェーンに何か不正があったらすぐ申告して子チェーンから退出する
ルートチェーン
イーサリアム上にスマートコントラクトで子チェーンと結ぶ。子チェーンへのデポジットとクライントの申告・退出を処理する。
デポジット
プラズマチェーンを使うために、ユーザが自分の資産(Etherまたはトークン)を子チェーンに預ける必要がある。このことを実現するため、ユーザが資産をイーサリアム上のルートチェーンのアドレスに送金する。イーサリアム上にデポジットのトランザクションのブロックが作成されたらすぐ子チェーンにも反映される。
Fraud proof
ユーザが子チェーンから退出
ユーザがプラズマチェーンに預ける資金を退出することができる。
ライトニングネットワークと同様に、資金を引き出す時、引き出しには退出するための時間が必要となる。ユーザーはトークンを子チェーンから引き出すときに保証金(Security Deposit)をデポジットしなければならない。不正を行なっておらず、無事引き出しが完了した場合はこの保証金はユーザーの元に返金される。しかし、もし不正を行なっていた場合は、この保証金はユーザーの元には返金されず、その不正行為を申告した申告者に報酬金として渡される。つまり、この報酬金が子チェーンを監視し不正行為を申告することのインセンティブになっている。
不正なブロックから退出
例えば、子チェーンで実際には保持していないはずのトークンを不正に作られた。この場合も、上述したようにその子チェーンを監視しているユーザー(クライアント)によって不正行為が申告されるはずなので攻撃を成功させることはできない。さらに、プラズマではルートチェーンに対してその子チェーンにデポジットされているトークン量の総量が記録されるデザインになっているため、不正に作られたブロックが存在しないことを検証できる。
この検証処理がルートチェーンで行われる。順番としては子チェーンの一番古いブロックから処理される。不正なブロックが特定できたら、そのブロックの承認者は罰せられ、最新のブロックはそのブロックの直前のブロックとなる。この仕組みで子チェーンで任意のトークンを作る攻撃を防止できる。
プラズマのメリット
1. イーサリアムのブロックチェーンに保存されるデータサイズ減少
2. トランザクション手数料が減る
3. トランザクションの実行速度が上がる(送金速度およびスマートコントラクト実行速度の向上)
4. よりデータサイズの大きなトランザクションもスムーズに実行できるようになる

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

プラズマの課題
プラズマもいくつかの課題を持っている。
1. プラズマのスマートコントラクトが複雑で、セキュリティ面でユーザを100%保護できることはまだ保証できない
2. 場合によって退出コストが非常に高くなる。トランザクション数が非常に多い時など
3. ルートチェーンに51%攻撃が成功したらプラズマチェーンにも全部影響を与える
4. プラズマブロックチェーンはプルーフ・オブ・ワークではなく、プルーフ・オブ・ステークが前提なので、実装にPoSを考慮しないといけない
終わりに
イーサリアムのブロックチェーン本体とPlasmaのブロックチェーンを部分的に同期させることで、イーサリアムへの負担を減らすことができ、スケーラビリティ問題の解決につながることが期待されます。いくつかの課題が残っていて、現時点はまでBeta版で実践段階には入っていないようですが、実現すれば非常に画期的なシステムなので、実用化が楽しみですね。
参考リンク
Plasma: Scalable Autonomous Smart Contracts
次世代システム研究室では、アプリケーション開発や設計を行うアーキテクト、またはブロックチェーンのエンジニアを募集しています。次世代システム研究室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ 募集職種一覧 からご応募をお願いします。
グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。
Follow @GMO_RD