Plasma Cash解説 第2回 Plasma, Plasma MVP

Plasma Cash解説 第2回 Plasma, Plasma MVP

はじめに


本記事は、過去にコンセンサス・ベイスが主宰していたオンラインサロンの記事です。記事は2017年~2018年にかけて執筆されたため、一部は、既に古くなっている可能性があります。あらかじめご了承ください。

今回の内容


本記事は前回に引き続き、Ethereum Community Conference(EthCC)で発表されたPlasma Cashについて解説します。
第2回となる今回は、Plasma Cashの前提知識であるPlasmaと、Plasmaの最小限の実装であるPlasma MVPについて解説します。かつ、現在のPlasmaではどのような課題が残されているかを確認し、次回のPlasma Cashの話につなげていきたいと考えています。
前提としてPlasma Cash解説 第1回 Ethereumのスケーラビリティを読んでおくことが望ましいです。なおUTXOモデルとアカウントモデルや、Map Reduce処理について知見があるとさらに良いでしょう。

第1章 Plasma


PlasmaはEthereumのブロックチェーンを大元のチェーンとして、それを階層的に拡張する技術です。そして大元のチェーンで処理すべき処理内容をその次の階層のPlasmaチェーンに移譲することで処理性能を大きく向上させることが可能になっています。

Plasmaチェーンを構築する主体は大元のEthereumチェーン上のコントラクトに資金をデポジットしておき、Proof of StakeまたはProof of Authorityで各々のトランザクションを処理します。

Map Reduce処理


PlasmaはMap Reduce処理を用いて処理速度を大幅にアップさせることができます。

ここで言うMap処理とは、大元のブロックチェーンに存在する大きな処理のトランザクションを子階層のPlasmaチェーンに分割する処理を指します。分割したチェーンの下に、その子Plasmaチェーンが存在する場合はさらに分割します。
こうやって分割した処理は計算量が減るため、各々の処理は高速に完了します。

計算が完了したあとは、親階層のチェーンに処理結果をまとめあげて送ります。
この処理結果をまとめ上げる処理がReduce処理と呼ばれるものになります。
(HaskellやScalaなどの関数型言語の経験がある方であれば、リスト操作の際によく使うmap()やreduce()をイメージしていただければお分かりになるかと思います)

親階層のチェーンでは、子チェーンから送られてきた処理結果をさらに結合し、さらに親階層のチェーンに送ります。

この処理を大元のブロックチェーンまで続けることで大量のトランザクション処理を行うことが可能となります。

図 : PlasmaのMap Reduce処理の構造

①Step1の処理(図の青文字部分)でトランザクション処理を子Plasmaチェーンに分割します。

②Step2で子Plasmaチェーンで完了した処理を親チェーンに送り、まとめあげます。

これを大元のチェーン(図では緑色)まで繰り返します。

多段階層チェーン


これらのMap Reduceの処理は多段にすることができます。

上記の例ですとPlasmaが3階層になっていますが、これは何階層でも実現可能です。階層を多くすればするほど分割するステップが増えますが、どれだけ分割して階層化しても大元のEthereumのチェーンに書き込む回数は変わりません。
また、分割する粒度を細かくし、水平方向にPlasmaチェーンを増やすことで、1つのチェーンで処理する内容を削減することができます。
この場合も分割のコストは増加しますが、大元のチェーンに書き込む回数に変化はありません。このためスケーラビリティには原理的に限界はないといえます。 (実際には、分割コストやネットワークのコストがあるため、どこかで性能が頭打ちになると考えられます。)

Fraud ProofによるBlock Withholding Attacksの回避


Plasmaのチェーンの構築運用は不特定多数に任されています。

そのため、もしも利用しているPlasmaチェーンが悪意ある者によって運営されていたとすると、最悪の場合、Plasmaチェーン上で利用している資金が失われてしまうことが考えられます。
そうした不正を防ぐために、ユーザーアカウントは、いつでも自分の資金が不正に利用されていないか確認する必要があります。 そして、もし不正が行われていた場合は親チェーンに対して不正が行われた証明(Fraud Proof)を出すことができます。
このFraud Proofを出すことで、提出から一定の時間が経過した後に、ユーザーアカウントは不正が行われる以前の状態の資金を引き出すことができます。また、このような不正を行ったブロックの生成者はペナルティを受けることとなります。
図 : 赤いブロックが不正だとすると、Aliceは不正証明を親チェーンに提出し、このPlasmaチェーンを抜け出します。のちに資金は返ってきます。

(出典:https://plasma.io/plasma.pdf)

また、逆に悪意あるユーザーがPlasma上で使用している資金を大元のチェーンで引き出そうとする場合も考えられます。
それを解決するために、PlasmaではUTXOモデルのトランザクションを採用しています。(大元のチェーンであるEthereumではこれとは異なるアカウントモデルと呼ばれる方法が採用されています。)
Plasma上で使用されたトランザクションはユーザーによる署名が行われ、この署名をPlasmaチェーンが親チェーンに提出することで不正を防止しています。

第2章 Plasma MVP


Plasma MVPはPlasmaの最小限の簡易実装として提案されており、OmiseGOプロジェクトなどで利用される予定です。
GitHub上に公開されており、Consensysが提供しているGanacheを利用することで簡単に挙動を確認できるようになっています。
Ganacheをインストールし、Ganache上のプライベートチェーンにPlasma用のコントラクトをデプロイしたものをこれをルートチェーンと呼びます。
そしてルートチェーンにひもづく形でPlasmaチェーンを起動したものをチャイルドチェーンと呼びます。
具体的なサンプルの動作方法はGitHubにまとめられているので興味があれば動かしてみてください。また、具体的な動作の流れはKarl Floersch氏がYouTubeで公開しています。 図 : Plasma MVPのYouTube解説。ステップごと動作を解説しています。

第3章 Plasmaの課題

ユーザー自身によるチェーン監視が必要


Ethereumの処理性能を向上させるスケール技術としては有力であるPlasmaですが、ユーザーが前述の不正証明を行うためには、自分が発行したトランザクションが関わるチェーンを全て監視しておく必要があります。
監視できていなければ、どこで不正が行われたのか検証が不可能だからです。

多段階層化によるチェーンサイズの肥大


また、それぞれのチェーンのトランザクションを確認する必要があるため、関わるブロックをダウンロードする必要性が出てきます。 チェーンが多段構造になればなるほど、ユーザーがダウンロードするブロックのサイズは増えていき、利便性を損なうことになります。

アカウントの状態管理が煩雑になる


もう1つの課題はPlasmaチェーン上で処理されたトランザクションの状態を更新するためにはアカウントの状態をアップデートする必要があるということです。
Plasmaチェーンでの処理内容が大元のチェーンに取り込まれた後、トランザクションを発行したユーザーは、トランザクション対象のアカウントに正しく処理が完了したことを通知する必要があります。
これはUTXOモデルとアカウントモデルを併用した欠点と言えますが、単純にアカウント更新の二度手間となってしまいます。

Plasmaの課題を解決するための提案がPlasma Cash


Plasmaが抱えているこれらの課題を解決するための機構として提案されたのが、本シリーズのテーマであるPlasma Cashです。
次回はいよいよ、Plasma Cashを用いてこれらの問題がどうスマートに解決するかを見ていきたいと思います。

まとめ


今回はPlasmaの詳細と簡易実装のPlasma MVP、Plasmaの課題点について解説しました。 次回はPlasma Cashを導入することでPlasmaの課題がどのように解決するのかを見ていくことにしましょう。

参考資料


     

免責事項

本記事に掲載されている記事の内容につきましては、正しい情報を提供することに務めてはおりますが、提供している記事の内容及び参考資料からいかなる損失や損害などの被害が発生したとしても、弊社では責任を負いかねます。実施される際には、法律事務所にご相談ください。

技術・サービス・実装方法等のレビュー、その他解説・分析・意見につきましてはblock-chani.jp運営者の個人的見解です。正確性・正当性を保証するものではありません。本記事掲載の記事内容のご利用は読者様個人の判断により自己責任でお願いいたします。

     

コンセンサス・ベイス(株)とブロックチェーン事業を行なってみませんか?

当サイトを運営するコンセンサス・ベイス株式会社は、2015年設立の国内で最も古いブロックチェーン専門企業です。これまでに、大手企業の顧客を中心に、日本トップクラスのブロックチェーンの開発・コンサルティング実績があります。

ブロックチェーンに関わるビジネスコンサル・システム開発・教育・講演などご希望でしたら、お気軽にお問い合わせください。

     
     

ブロックチェーン学習に最適の書籍の紹介

図解即戦力 ブロックチェーンのしくみと開発がこれ1冊でしっかりわかる教科書

ブロックチェーン イーサリアムへの入り口 第二版 (ブロックチェーン技術書籍)

本書は、ブロックチェーン技術に興味を持ったエンジニアや、その仕組みを学び、自分の仕事に活かしたいビジネスパーソンを対象にして、ブロックチェーンのコア技術とネットワーク維持の仕組みを平易な言葉で解説しています。この本を読んだうえで、実際にコードを書くような専門書、ブロックチェーンビジネスの解説書を読むことで、理解度が飛躍的に高まるでしょう。(はじめにより)

Blockchainカテゴリの最新記事