Slide 1

Slide 1 text

Plasmaの概略と可能性 @y_matsuwitter

Slide 2

Slide 2 text

2 ©Gunosy Inc. ⾃⼰紹介 n Gunosy Inc. – 新規事業開発室 執⾏役員 CTO n 業務 – 開発全般のマネジメント – 技術に関する横断的な課題対処 – 現在は新規事業⽴ち上げも担当 n 経歴 – 在学時に⼆社のベンチャーの⽴ち上げ・ 開発に携わる – 2013年3⽉ 東京⼤学⼯学部卒業 – 2013年1⽉よりGunosyに⼊社 – 2014年6⽉執⾏役員就任、現在に⾄る 松本 勇気 @y_matsuwitter

Slide 3

Slide 3 text

3 ©Gunosy Inc. 本⽇のアジェンダ Plasmaとはなにか l おさらい:Blockchainの課題とSidechain l EthereumとPlasmaの関係 l Deposit / Exit / Challengeによる資⾦移動 l Plasma PoS l Blockchain in Blockchain, Map Reduce Plasmaの可能性 l 任意のチェーン、Ethereumのセキュリティ l 事例:GOXしない取引所 Plasmaに関してその概略とその可能性について。

Slide 4

Slide 4 text

4 ©Gunosy Inc. Plasmaとは

Slide 5

Slide 5 text

5 ©Gunosy Inc. Blockchain全体の課題 現実世界での利⽤を促進するにはパフォーマンス改善が急務。 n Block sizeの制約 – ⼀つのBlockに含められるtxの数は上限 がある。 – 上限が⾼すぎると中央集権的になる可能 性も。 n Block timeの制約 – Blockの⽣成間隔は短すぎるとセキュリ ティ的トレードオフが発⽣。 n Ethereumの場合 – 現状は毎秒10tx程度が上限 実利⽤においてスケーラビリティの不⾜が重要課題。 Block tx tx tx tx Block tx tx tx tx Block生成間隔 Blockあたりの キャパシティ

Slide 6

Slide 6 text

6 ©Gunosy Inc. Sidechainという解決策 複数のブロックチェーンをpeggingによってつなげる。 n Peggingによる連携 – 2つのBlockchain上のトークン同⼠を固 定レートで対応付けし、アトミックに交 換する仕組みを⽤意する。(預け⼊れ) n スケーラビリティへの貢献 – サイドチェーンの数だけtxを捌ける。 – サイドチェーンは親チェーンとは独⽴し た仕様を採⽤可能 n 課題 – Trustlessなpeggingの難しさ l SPV Proof, NIPoPoWs…etc スケーラビリティに対する解決策の⼀つ。 Parent Chain Side Chain 固定比率交換

Slide 7

Slide 7 text

7 ©Gunosy Inc. Plasma = Sidechain + α DecentralizedなSidechain + PoS + MapReduce n EVMでのDecentralizedなpegging – 後述するが、不特定多数の参加者の中で peggingに伴う預け⼊れ・引き出しを実 現する仕組みを既存のEVMにて実現。 n 拡張性と安全性を上げるさらなる仕組み – Plasma PoS – Map Reduce – Plasma Cash – …etc EVMを利⽤して複数チェーンを連携しスケーラビリティを⾼める。 図: RootChainに様々なチェーンを繋げていく 出展: https://plasma.io/plasma.pdf

Slide 8

Slide 8 text

8 ©Gunosy Inc. Plasmaの登場⼈物 Rootchian Contract ó Plasma Chainの連携で成り⽴つ。 n Rootchainコントラクト – 資⾦をPlasmaチェーンに⼊⾦・出⾦し その安全性を担保するスマートコントラ クト。 n Plasmaチェーン – SidechainとしてRootchainコントラク トと連携するチェーン。 – 後述するPlasmaのプロトコルに準拠し ていればどのようなチェーンでも原理上 使えるはず。 Ethereumと協調するSidechain相当のチェーン。 Ethereum RootChain Contract Plasma Chain 関連する Stateの監視 ⾃⾝の状態 記録 Plasmaの利用 PlasmaChain への入出金 User

Slide 9

Slide 9 text

9 ©Gunosy Inc. User ⼊⾦と出⾦・不正報告 Plasma Chain ETHなどを送金し預託 預託のイベント発生 UTXOの生成を確認 自身のチェーンに 入金UTXO生成 預託金取出のための署名送付 出金依頼を優先キューに 追加する 7日後、出金を有効化する。 出金依頼分のETH等を取り出し 預託金の記録 不正があれば このタイミングで 証拠を提出し棄却

Slide 10

Slide 10 text

10 ©Gunosy Inc. User ⼊⾦と出⾦・不正報告 Plasma Chain ETHなどを送金し預託 預託のイベント発生 UTXOの生成を確認 自身のチェーンに 入金UTXO生成 預託金取出のための署名送付 出金依頼を優先キューに 追加する 7日後、出金を有効化する。 出金依頼分のETH等を取り出し 預託金の記録 不正があれば このタイミングで 証拠を提出し棄却 詳細は次のプレゼンで!!

Slide 11

Slide 11 text

11 ©Gunosy Inc. Priority Queue 最終⼿段としてのMass-exit Mass exit後のチェーンは基本的に停⽌、別チェーンの作成を想定 n あくまで将来的な仕様で、exitしたい全ての ⼈から署名を集めて実⾏。 n Priority QueueによるExit優先度調整 – 古いUTXOから順に出⾦ n 古い順に処理されるため、不正な出⾦・アク ション以前に関しては、かならず正しい持ち 主に正しい⾦額が変換される。 n ユーザー喪失を⽣むため、運⽤者の不正に対 するマイナスのインセンティブになる。 全Depositに対してExitを提出する。 Exit Frauded Block: 123 Block: 122 Tx idx: 2 Block: 115 Tx idx: 14 Exit ここでは Deposit不足に

Slide 12

Slide 12 text

12 ©Gunosy Inc. Plasma PoS ノード運営にあたっての不正のインセンティブを潰す。 n 仕組みとしては⼀般的なPoS – Staking⽤トークンを⽤いてPlasmaチェ ーンをvalidation、tx⼿数料等を得る。 n Stakerとなることでチェーン⾃体の価値を毀 損する不正のインセンティブを無くす。 – 不正はMass Exitに繋がり価値が0へ。 n 想定されるstakerの構成 – WPではPlasmaチェーン運⽤者が1つの addressに対して3%程度を上限とした stakingを想定。 Plasmaチェーンに推奨されるコンセンサスアルゴリズム。 Block: 2 Bさん Block: 3 Aさん Block: 1 Cさん 100ブロック内で Staker⽐率に応じた Block提案割合を 維持するよう設計する

Slide 13

Slide 13 text

13 ©Gunosy Inc. Blockchains in Blockchains 多くのBlockchainが連携することで全体として数百万tx/secを達成する。 n Plasmaの構造は複数階層作れる – Rootから⼦、更にその⼦から孫にデポジ ットを繰り返していくことで深い階層の チェーンを使う。 – 多量のチェーンが最終的に連携され、そ の分だけスケーラビリティが向上。 n ⼦チェーンで不正 => Mass Exitで親の階層 に避難可能。 – 最終的にはRoot(⼀般的にはEthereum の階層)まで脱出する。 沢⼭のBlockchainを親、⼦、孫…の関係でつなぐ。 https://plasma.io/plasma.pdfより 図: Blockchains in Blockchains

Slide 14

Slide 14 text

14 ©Gunosy Inc. Plasma MapReduce Map Reduceの形式を取ることで1txの処理能⼒を拡張していく。 n 課題 – Blockchainではtxの処理が⼤きすぎると 現実的に計算が難しい。 n Map Reduce – ⼊⼒データを複数チャンクに分割して多 数のノードに分散処理させる。 n Plasmaでのmap reduce – 親⼦孫…のチェーン階層間でタスクを分 散処理。 – TrueBitを参考に設計されている模様。 複数階層のPlasmaチェーンを⽤いて分散処理基盤へ。 Parent Chain Chain For Word Split Chain For Word Split Chain For Word Count Chain For Word Count Text Words Words 図:Map Reduce のイメージ Text

Slide 15

Slide 15 text

15 ©Gunosy Inc. Plasmaの可能性

Slide 16

Slide 16 text

16 ©Gunosy Inc. Plasma Chainの⾃由さ ⽬的・⽤途に応じた独⾃のチェーンを⽤い、スケーラビリティを担保。 n Plasmaである為に必要なこと – RootChainとの連携 – e.g. Deposit/Exit/Challengeの監視等 n 独⾃のチェーン実装を持ち込む – 挙動が正しければ、そこにあるのはEVM 実装のチェーンでなくともよい(はず) – TendermintやLoom Networkの事例 仕様に準拠していればそれ以外は⾃由に実装可能。 Tendermint Ethereum Loom Network Hyperledger Fabric Original Chain

Slide 17

Slide 17 text

17 ©Gunosy Inc. Plasma Chainによる安全な拡張 Ethereumを⽀えるハッシュパワーに安全性を担わせる。 n Plasmaチェーンであるとは – そのチェーンにおけるblockを RootChainコントラクトに記録 – つまりEthereumを⽀える Miner/Validatorのセキュリティに乗る ことができる! n ユーザーの資⾦の責任はユーザーが負う – 資⾦盗難等の可能性を極⼒まで抑え込ん で独⾃機能を作れる。 – 最悪ケースでもExitで守れる。 Plasma Chainとすることで⾃⾝の作ったチェーンのセキュリティ強化に。 Block Block Block Root chain Block Plasma Chain Block Block Rootchainの コンセンサスの元 記録される submit

Slide 18

Slide 18 text

18 ©Gunosy Inc. 事例:分散取引所 GOXを避けた安全なDEXの構築を⽬指すことができる。 n 階層構造を活かしたPlasma – ⼦チェーンに通貨ペアを割り当てし、そ れぞれで売り買いをマッチする。 – ユーザーは関⼼のある通貨ペアのチェー ンのみ利⽤すればいい。 n Plasmaチェーンである利点 – Depositの保護機構により取引所のGOX リスクが⼩さくなる。 – 通貨ごとの⼤量の取引をMap Reduce的 な機構で分散スケールさせられる。 DEXをPlasma チェーンとして構築する。 Ethereum Chain DEX Chain DEX Chain For GNT/ETH DEX Chain For OMG/ETH DEX Chain For eBTC/ETH 図: 通貨ペアごとの子チェーン

Slide 19

Slide 19 text

19 ©Gunosy Inc. 事例:プライベートチェーン 利⽤者保護とプライバシーを両⽴することができる。 n Private Chain – ⼀般にそのデータを公開しておらず、ブ ロックの提案も特定の集団で⾏われるチ ェーンを指す。 – 特にプライバシー等の課題でPublicが現 状使えないユースケースに対応。 n Plasmaであるメリット – Ethereumのセキュリティを利⽤。 – チェーン利⽤者のデポジットを不正から 保護することができる。 プライベートなチェーンもEthereumの恩恵を受けることができる。 Block Block Block Ethereum Secret Block Data Private Chain Merkle Root記録 Exit

Slide 20

Slide 20 text

20 ©Gunosy Inc. 最後に

Slide 21

Slide 21 text

21 ©Gunosy Inc. 最後に n Ethereumの機能の先端はWhitePaperではなくethresear.chとEIP だと思います。 – 積極的に⾃分の気になるトピックを読んで⾏こう。 – 必要に応じて質問も投稿しよう。