Gunosy Blockchain Blog

Gunosyの開発メンバーが知見を共有するブログです。

Sidechain, Plasma, Plasma MVPの話をしました

はじめに

こんにちは、Gunosy CTOの松本(@y_matsuwitter)です。 もうそろそろゴールデンウィークですね。

昨日行われたPlasma Researchというイベントに登壇しましたが、今回はその内容について書きました。 せっかくなので、Plasma含めこれまで何度かスケーリングのための解決策としてSidechain関連の技術について何度か登壇する過程で作った、3つスライドをまとめていきます。

SidechainとNiPoPoWs

上記は以前blockchain.tokyo#5で登壇した際のスライドです。

Blockchainの課題

度々語られる内容ではありますが、おさらいになります。 Blockchainのスケーラビリティは1ブロックあたりのトランザクション数上限とブロックの生成間隔の掛け算でおおよそ計算されています。 Ethereumではこの上限が15tx/sec程度となっており、World Computerと呼ぶには程遠い状況です。 詳細については上のスライドか、過去記事を参考にしていただければと思います。

medium.com

Bitcoinのケース、SPV ProofとNIPoPoWs

こうしたスケーリングの限界に対して提案されている手法の一つがSidechainです。

f:id:y_matsuwitter:20180427102548p:plain

Sidechainを導入することで、既存のチェーンと違う機能を持った多くのチェーンを連携でき、連携したチェーンの分だけスケーラビリティが加算されていくことになります。 この時に必要なものが通貨をSidechain側へ入金・出金するpeggingの仕組みです。 例えばBitcoinのpeggingでは、特定のSidechain側が管理するアドレスに対して資金を送付し、その送金証明(SPV Proofと呼ばれます)をSidechainに提出してSidechain側の通貨を受け取ることになります。 こうしたSPV Proofの導入には、そのProofをTrustlessに検証できる実装の必要があり、ここに課題があります。

f:id:y_matsuwitter:20180427103928p:plain

SPV Proofの検証とはすなわち全ブロックのPoWが正当か検証する作業となるのですが、毎回全ブロックの計算を回すことは年々不可能なサイズになってきます。 またNode間でSPV Proof(つまり全ブロックのPoW検証に必要なデータ)をやり取りすることもネットワーク帯域幅を考えると現実的ではなく、マイナーに対する負荷にもなりえます。 この実装に対してSPV Proof Verificationを現実的な計算時間で対処しようというのがInteractive Proof of Proof of Workであり、それをさらにコンパクトにしたのがNIPoPoWsとなります。

f:id:y_matsuwitter:20180427104842p:plain

大まかにはPoWで生まれたハッシュ値がdifficultyよりも遥かに小さくなるような確率(1/2nになる確率)を利用してスキップリストのようなデータ構造を導入することで、全ブロックではなくより小さなハッシュ値のブロックのみの検証で省略しようという取り組みです。 興味がある方はぜひWhitePaperを読みましょう。

WhitePaper: https://eprint.iacr.org/2017/963.pdf

Plasma

一方でEthereumもSidechain同様の仕組みの導入が提案されており、その一つがPlasmaです。

Plasmaとは

f:id:y_matsuwitter:20180427105457p:plain

たびたび難しい印象を持たれるPlasmaですが、これはEthereumのSidechainだと考えると案外簡単に理解できるものです。

Plasmaは現状プロトコルの提案であり骨子は下記の並びになります。

  • Rootchainコントラクトによる入金・出金と不正出金の報告、一斉出金
  • Plasma PoSによるPlasmaチェーンの運用とそのインセンティブ設計
  • 複数階層によるBlockchainを構成することによる大きなスケーラビリティの獲得
  • Blockchain間でタスクを委譲することによるMapReduce処理

これらについてより深掘りする場合はぜひWhitePaperを読みましょう。

WhitePaper https://plasma.io/plasma.pdf

日本語訳:github.com

Plasma MVP

こうしたPlasmaの提案に対して、Rootchainコントラクトによる入出金と不正報告の最小限実装を提案しているのがPlasma MVPです。

上記のスライドではOmiseGoが提案しているplasma-mvp実装を参考に、そのMVPの内容を解説しています。 github.com

また、MVPとしての提案内容はVitalikの下記のポストを読むと良いかと思います。

ethresear.ch

まとめ

BitcoinやEthereum等で提案されているスケーリング対策案の一つ、SidechainやPlasmaについて簡単ですが触れてきました。 特にPlasmaはmvpの提案以降、その自由度と理解のしやすさからいくつもプロジェクトが立ち上がっています。 自分のチェーンをPlasmaとして実装する、ということも検討しつつ設計していくと良いかもしれませんね。

宣伝

Gunosyではブロックチェーンを始めとしてスマートスピーカー、VR/ARと言った新規領域での研究・開発を進めており、メンバーを募集しています。

少し話を聞いてみたい!という方も歓迎していますので、下記のリンクからの応募お待ちしております。

www.wantedly.com

また弊社Gunosyでは、blockchain.tokyo を主催するなど、ブロックチェーンや仮想通貨に関する調査を行っています。

次回は来月に開催する予定です。イベントグループへメンバー登録をしていただくとイベント参加者募集の通知が来るので、こちらもぜひ登録してみてください。

blockchain-tokyo.connpass.com