Plasmaによるスケーリングの可能性

GAME
GAME
Published in
15 min readAug 16, 2018

BitcoinやEthereumなどの主要ブロックチェーンでは、参加者の増加に伴いトランザクションの数が増え続けることで検証や合意形成に時間がかかるなどの問題が発生している。これがスケーラビリティ問題と呼ばれ、ブロックに含めることのできるトランザクション数の制限や、ブロック生成時間の制限などが理由として上げられる。今後分散型ゲームプラットフォームMOLDがパブリックなブロックチェーンとして実用化されるためにはこの問題を解決することが必須となる。そこで、分散型プラットフォームMOLDの構築にあたって、前回、前々回までにHyperledger FabricやTendermintのコンセンサスアルゴリズムを利用したレイヤー1でのスケーリングソリューションの考察を行ってきた。今回は、layer2のソリューションとして、注目を集めているPlasmaについて考察を行うと同時に、tendermintベースの開発を行うMOLDでもPlasmaを採用することが可能になるのかを検証したい。

目次

  • Layerとは
  • Plasmaとは
  • Plasmaで懸念されている不正なExit
  • Plasma改善策
  • MOLDにおけるPlasmaの可能性

Layerとは

まずはじめに、ブロックチェーンのプロトコル領域を理解するためには、レイヤー構造について理解しておく必要がある。ブロックチェーンの基幹領域であるLayer1には、PoWやPoSといった、ブロックの生成・検証をおこなうプロトコルであるコンセンサスアルゴリズムや、ブロックチェーン上に様々な機能を拡張していく仮想マシンが含まれる。Layer2には、ブロックチェーン上での通信領域を拡張し、処理能力を拡大させていく仕組みが含まれる。特に、基軸となるブロックチェーンから外れたLayer2の領域でのスケーリングが期待されている。今回の記事の対象ではないが、その上に、汎用アプリケーション領域であるLayer3、実際のサービスアプリケーションの領域であるLayer4が乗ってくる仕組みになっていることを念頭に置いておこう。

Plasmaとは

Plasmaとは、一つのメインのブロックチェーンを親ブロックチェーンとして、プラズマブロックチェーンである子ブロックチェーンをTree状に(階層的に)作っていくアイデアで、下図のように、例えばイーサリアムのブロックチェーンをルートチェーンとして、階層的にプラズマブロックチェーンを接続する。

トランザクションはそれぞれのプラズマブロックチェーンで処理され、その結果が接続している親プラズマブロックチェーンに伝わっていくことで最終的にはルートチェーン(例えば、Ethereum)のブロックチェーンに状態が記録される。このとき、ブロック内の情報を全て伝えるのではなく、ブロックヘッダーのハッシュを伝えることになる。これは非常に効率的で、多くのstate(状態)の更新は、単一のハッシュ(といくつかの小さな関連データ)で表される。

plasma whitepaper :https://plasma.io/plasma.pdf

Map reduce形式での処理
プラズマでは、Map Reduce形式での並列計算によりトランザクションの実行速度を劇的に向上させることを目指している。

まず1段階目のMAPでは、親プラズマブロックチェーンから子プラズマブロックチェーンへ計算処理の役割が送られ、2段階目のREDUCEは、親プラズマブロックチェーンは派生する全ての子プラズマブロックチェーンから計算処理の結果をコミットしてもらい、それをさらに自身の親プラズマブロックチェーンにコミットする。

このようなMapReduce形式で並列計算することでトランザクションの処理を高速化を図る仕組みになっている。

plasma whitepaper :https://plasma.io/plasma.pdf

PlasmaチェーンへのDepositとWithdraw
トークンのデポジットは、ルートチェーン上のPlasmaコントラクトに直接送られる。ルートチェーン上のコントラクトは、現在のstate(状態)の把握やfraud proof(後述)を用いた無効なコミットに対するペナルティ、資金の引き出し処理を保障する。Plasmaチェーンでは、デポジットされたトークンのトランザクションの処理が行われ、最終的に引き出す場合は、デポジットした人がPlasmaチェーンのトランザクションに署名を行い、その合意形成がコミットされた段階でwithdrawすることが可能になる。

Plasmaチェーン上でのトランザクションに関して、Plasmaのホワイトペーパーにファイナリティを得るための説明がある。

The multi-phase commitment occurs as follows for fast finalization:

1. Alice wants to spend her output in the Plasma chain to Bob in the same Plasma chain (without the full transaction record being submitted on the blockchain). She creates a transaction which spends one of her outputs in the Plasma chain, signs it, and broadcasts the transaction.

2. The transaction is included in a block by validator(s) of the Plasma chain. The header is included as part of a block in the parent Plasma chain or root blockchain, ultimately being committed and sealed in the root blockchain

3. Alice and Bob observes the transaction and signs an acknowledgement that he has seen the transaction and block. This acknowledgement gets signed and included in another Plasma block.

  1. AliceがBobに向けたTransactionを生成/署名/ブロードキャストする
  2. トランザクションはvalidatorによってPlasmaチェーンのブロックに格納され、そのヘッダは最終的にルートハッシュとしてルートチェーンに保存される
  3. AliceとBobは、トランザクションを確認して、合意の署名を他のPlasmaチェーン上のブロックに含める

3番目の手順で期待されていることは、参加者(この場合はAliceとBob)によって、取引のファイナリティを確保されることである。一段階目では、まだ、Aliceはトランザクションがブロックの中に取り込まれたか確認することはできないし、二段階目でも、トランザクションがブロックの中に格納されたか不確かさが残ることになる。したがって、三段階目のconfirmation signatureがない場合、ルートチェーンでファイナルティが得られる前に、Aliceが、資金を引き出すことができる可能性すらあるということになる。

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

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

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

Plasmaで懸念されている不正なExit

Plasmaでは複数のブロックチェーンでトランザクションを裁くことになるので、二重支払いや使用済みのUTXOの引き出しといったリスクが発生する。また、Plasmaチェーンのオペレータによる不正行為が起きる場合もある( Withholding attack問題)。Plasmaでは、参加者が不正を起こさないか常に監視し、起きた時は証拠を提出するというプロセスが必要となる。

Fraud proof
Plasmaでは、プラズマブロックチェーン内の全ての状態はFraud proofに従って実行され、二重支払い問題や使用済みのUTXOの不正利用といった問題を解決する。

参加者は全てのブロックデータのコピーを持っているので、ブロックヘッダーハッシュをルートチェーンに提出することで証明することが可能になる。実際に、ルートチェインに不正/詐欺が提出されたことが証明された場合、 ブロックはロールバックされ、 ブロック作成者にはペナルティが課せられる仕組みとなっている。

plasma whitepaper :https://plasma.io/plasma.pdf

Withholding attackとMass Exit
スケーラビリティ問題の解決に大きく寄与すると考えられている反面、Plasmaを実装するにあたり、Withholding attackと呼ばれる攻撃が懸念されている。Withholding attackとは、プラズマブロックをわざと承認しないようにし、そのブロックに預けた資産(トークン)を引き出せないようにしたり、二重支払いのトランザクションなど不正なトランザクションを承認する攻撃のことを指す。Plasmaチェーンでは、誰でもネットワークに参加可能なPoSが採用されており、1期間で一人のノードがブロックの生成を行う。すなわち、悪意があるノードがブロック生成を行わない、あるいは、不正な取引を承認することで、ネットワークの遅延や詐欺的な取引を引き起こすことができる。さらに、悪意あるノードか単に接続が切れているだけのノードなのかの判断が難しいことも問題になりうる。これについては、別記事(ビザンチン故障について)を参照のこと。

悪意あるPlasmaチェーンのオペレータに遭遇した場合、下位層の参加者は、他のPlasmaチェーンに資産を移動させ、問題があるPlasmaチェーンから離れることができる。

plasma whitepaper :https://plasma.io/plasma.pdf

Withholding attackのようなPlasmaブロックチェーン上での不正や遅延を防ぐためのプロトコル/セキュリティモデルとしてMass Exitと呼ばれるものが将来的に実装されるとしている。悪事を働こうとするオペレータ/Block withholding攻撃から資産を保護するためにexit(出金)したい全ての人から署名を集めて実行される。Priority Queueによって、古いUTXO順に出金されるので、不正な取引/アクセス以前の金額は持ち主の元に戻る。Plasmaチェーンのオペレータは、ユーザ喪失を生むため、Mass Exitを避けようとするインセンティブ、すなわち、不正をしない方向にインセンティブが働く。Maas Exit後、Plasmaチェーンは基本的に停止してしまうので、別チェーンの生成が想定されている(Mass Exit後に再開作業をする場合もある)。

Plasma改善策

背景
Plasmaチェーンの参加者は、ブロックオペレータによる不正が起きたときにFraud proofを提出するためには、Plasmaチェーンの全てのブロック内データを保持しておくことが必要になる。したがって、利用者に対するデータサイズなどの負担は大きく、現状のままだと実用的とは言えない。また、Plasmaでは、confirmation signatureを必要とし、トランザクションのステイクホルダが、署名をして初めてファイナリティを得られる仕組みになっており、このconfirmation signatureを保持するのも大きな負担となる。そこで、ユーザが保有するデータを減らすためにPlasma cashという仕組みが考え出された。

Plasma Cashとは
ルートチェーンからDepositしたものをNFT(Non-Fungible Token)のような代替不可能なトークンとしてPlasmaチェーン側で利用する。したがって、ユーザーは自身の持つトークンのIDに応じたmerkle Treeのノードだけに関心を持てば良くなり、実質的にユーザーが監視するべきデータは自身のトークンIDに関係するものだけになる。

Plasma XTとは
Plasma cashよりもさらにユーザーが保有するデータ量を少なくするために、収集対象者数分のbitデータサイズで署名の提出状況を定期的に記録することで、途中で不正が起きない仕組みを作っている。途中でpalsmaオペレータがチェックポイントデータを構成し、ユーザーはチェックポイント以降のデータのみを保持・監視すれば良く、最終的に特定のトークンを誰が最後に持っていたのかという情報は正しく共有される。しかしながら、オペレータがMercle Root以外のトランザクションの履歴を表示しない場合、不正が顕在化しないという問題が存在するとともに、現状では具体的なチェックポイント設計が提示されていない。

これは、Plasma CashとPlasma XT両者に言えることだが、NFTトークンを利用するため、発行されたトークンをさらに細分化することが想定されていない。したがって、決済や分散型取引所(DEX)のように代替性が必要な用途に適応するのは難しく利用方法は制限される。

Plasma Debitとは
発行されたトークンの分割を可能にするために、state channelを生成し、Plasma cashチェーンのオペレータによる仲介を経て、P2Pの取引を行う仕組み。Plasma cashチェーンにdepositした一部をさらにPlasma cash チェーンのオペレータに預け、オペレータへのデポジット額を上限とし、state channel内で取引をすることが可能になる。一方で、オペレータを信頼する必要性や、オペレータが単一障害点になりうる可能性、実質的なオフチェーン取引をルートチェーン外で行うことの意義などが懸念されている。

Plasma Cash/TX/Debitともに研究段階の技術であるゆえ、今後の改善に期待される。

MOLDにおけるPlasmaの可能性

Plasmaのスケーリングソリューションでは、ルートチェーンの縛りはなく、Ethereum以外のブロックチェーンでもスマートコントラクトの機能を利用して汎用的に利用することができる。したがって、Tendermintなどのコンセンサスアルゴリズムをlayer1で採用したブロックチェーンにおいても有力なスケーリングの手段となりうる。

分散型ゲームプラットフォームMOLDでは、スケーリングソリューションとしてのPlasmaに注目している。Plasmaが実装されると、ルートチェーンの外で同時並行処理が可能になるため、ゲーム内アイテム分散型取引所であるMOLDEXやゲームICOシステム、ゲーム決済関連などで、それぞれにPlasmaチェーンを組み込むことで、ルートチェーンに無駄な負荷をかけることなくそれぞれの分野においてスケーリングをすることが可能になる。

また、例えば、Plasma cashのようにNFTトークンを利用する場合でも、 MOLD内の発行枚数が限定されているアイテムトークンのトレードでは、分割する必要がないので有効に活用できる可能性が高い。

MOLDの場合、まずは、Tendermintを使ったLayer1のコンセンサスアルゴリズムやEVMベースの仮想マシンの実装、ABCIのプロトコルを定めることが先決になるが、Layer2のフェイズにおいてもPlasmaのようなスケーリングソリューションを使う可能性があるため、今後のPlasmaの進展にも注目していきたい。

— — — — — — — — — — — — — — — -
Cosmos Gaming Hub Project(旧MOLD Project)
CEO & Co-Founder

朝野 巧己

全てのゲーム愛好家に最高のエンターテイメントを届けるために

--

--

GAME
GAME
Editor for

Cosmos Gaming Hub is a fair and secure distributed gaming platform which supports the development of new games and simplifies the trading of digital assets.