Plasma概要紹介

C090fd2ce8a5e2bf249a9a18386d0eb3?s=47 Shuhei Sowa
September 10, 2018

 Plasma概要紹介

Plasmaについて調査した内容を共有

C090fd2ce8a5e2bf249a9a18386d0eb3?s=128

Shuhei Sowa

September 10, 2018
Tweet

Transcript

  1. 8.

    2つの考え方 ▫ メインチェーンで捌ける量を増やす ▫ メインチェーンに書き込む量を減らす 8 ・ProofOfStakeによりブロック生成間隔を短くする ・ブロックガスリミットを増やして Txを詰め込む ・シャーディングにより

    Txの承認を分散化する ・サイドチェーンで処理、最終的な stateだけをメインチェーンに書き込む (=>Plasma) ・オフチェーンで処理、最終的な stateだけをメインチェーンに書き込む (=>RaidenNetwork)
  2. 9.

    2つの考え方 ▫ メインチェーンで捌ける量を増やす ▫ メインチェーンに書き込む量を減らす 9 ・ProofOfStakeによりブロック生成間隔を短くする ・ブロックガスリミットを増やして Txを詰め込む ・シャーディングにより

    Txの承認を分散化する ・サイドチェーンで処理し、最終的な stateだけをメインチェーンに書き込む (=>Plasma) ・オフチェーンで処理、最終的な stateだけをメインチェーンに書き込む (=>RaidenNetwork)
  3. 10.
  4. 14.

    [復習]UTXOモデル 14 UTXO・・Unspent Transaction Output、未使用トランザクションアウトプット ビットコインの残高管理に用いられている事から非常に有名 UTXO-1 #Alice 10 coin

    UTXO-2 #Alice 20 coin 例)#Bobに15コイン送金したい時 Transaction [Inputs] UTXO-1 UTXO-2 [outputs] #Bob 15coin #Alice 15coin UTXO-3 #Bon 15 coin UTXO-4 #Alice 15 coin BitCoinにおいてはInputとOutputの差額が「手数料」となってマイナーに支払われる 後述するPlasmaMVPにおいてはInput額=Output額としなければならない
  5. 19.

    mass exit 19 withholding attack ・ブロックを承認しない(こちらが主?) ・51%攻撃(PlasmaはPoSを用いるのでStakerが分散していればリスクは低い) withholding attackなどによりPlasmaチェーンそのものが壊れた場合、みんなで撤退する ・単純なexitでは多額のgas代がかかってしまい少額

    UTXOが消失してしまう ・実装必須のものではない ・別のPlasmaチェーンに撤退。仲介者が新しい Plasmaチェーンで資金が利用可能になるように整える ・mass exitリクエストに不正なexitが含まれないように仲介者は監視、排除する ・多額の供託金と共に、 mass exitリクエストを提出する
  6. 23.

    Plasma MVPの要件(ざっくり) 23 Plasmaコントラクト 以下のデータを保持 ・operator(デプロイ時に決定) ・Plasmaブロックのリスト ・submitされたExitTransactionのリスト。優先度順(=>古いUTXO優先)にポップできるようにしておく。 ブロックはoperatorが生成する or

    ユーザがdepositした時に生成(分散合意アルゴリズムなし) Exitにしかチャレンジできない。不正ブロックを検知したら Exitする事を前提 Plasmaチェーン ・Transactionは2つの入力と2つの出力を入れることができる。 RLPエンコードされたオブジェクト
  7. 24.

    Plasmaチェーン内での送金フロー 24 (1)送信者のアドレスを尋ねる (2)Transactionを送信する (3)オペレータに承認されるまで待つ (ルートチェーンに反映される) (4) 承認後、UTXOのinputに使用したキーで署名された confirm sigを送信する

    (4)のステップは一体何・・・? confirm sigによりセキュリティが向上する例を見ていきます。 (こちらの解説記事が非常にわかりやすいです。「 1つ目の理由」を次スライドで話します) https://scrapbox.io/m0t0k1ch1/Why_do%2Fdon%E2%80%99t_we_need_two_phase_sends_plus_confirmation
  8. 25.

    confirm sigがない場合 25 #Alice -> #Bob 10ETH #Alice -> #Ope

    10ETH(不正) オペレータが不正な Transactionをブロックに含めて承認する 不正Txの方が優先度が高くなるよう後ろにつける #Bobはこれを発見し10ETHをExitしようとするが、OperatorのExitが#Bobのものより早く処 理されdepositは空になり、#BobはExitできなくなってしまう (Plasmaブロック)
  9. 26.

    confirm sigがある場合 26 #Alice -> #Bob 10ETH #Alice -> #Ope

    10ETH(不正) オペレータが不正な Transactionをブロックに含めて承認する #Aliceはこれを発見したので confirm sigを生成しない #Aliceは->#BobのTxに含まれるInput UTXOをExit申請する(Txが承認されてないので Exit可能) これはOperatorのExit申請より前ブロックに含まれるので優先度が高く、先に Exitできる
  10. 35.

    Plasma Cash 35 全ブロックをダウンロードしなくても自分に関連する Txを監視できるように 提案・・https://ethresear.ch/t/plasma-cash-plasma-with-much-less-per-user-data-checking/1298 実装例・・https://github.com/loomnetwork/plasma-cash DepositしたトークンにNFTを割り振ることで MerkleTreeの何処に自分のトークンに対するトランザクショ ンがあるかを発見することができる

    メリット)自分に関連するトランザクションの枝だけダウンロードすればトランザクションの検証可能 デメリット)トークンに NFTを割り振るので、細かい単位にトークンを分けることができない。 まだスマートフォン等の端末に載せるにはデータ量が多すぎる
  11. 37.

    Plasma Debit 37 Plasma Cashの分割ができないデメリットを解消 提案・・https://ethresear.ch/t/plasma-debit-arbitrary-denomination-payments-in-plasma-cash/2198 実装例・・なし オペレータが各々の残高を管理する。ユーザとオペレータはペイメントチャネルを介して接続されてい る。送金した際は、オペレータに預けた 2者間で金額の総額が変わってないかをオペレータが検証する

    メリット)残高管理を可能にし、 PlasmaCashのデメリットを取り除いた デメリット)性質上、オペレータに預けた金額以上の金額を受け取る事ができない。 PlasmaCashチェーンが単独のオペレータによって運用されている事を前提とした提案。
  12. 38.

    参考資料 38 ethresearch https://ethresear.ch/ Lean Plasma https://www.learnplasma.org/index.html Sidechain, Plasma, PlasmaMVPの話をしました

    https://blockchain.gunosy.io/entry/sidechain-plasma-plasma-mvp PlasmaDebit https://scrapbox.io/m0t0k1ch1/Plasma_Debit omisego/plasma-mvp https://github.com/omisego/plasma-mvp Plasmaのミニマル要件を簡単な日本語で列挙 https://scrapbox.io/plasma-research-jp/Plasma%E3%81%AE%E3%83%9F%E3%83%8B%E3%83%9E%E3%83%AB%E8%A6%81%E4%BB%B6%E3%82%92%E7%B 0%A1%E5%8D%98%E3%81%AA%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%A7%E5%88%97%E6%8C%99 shogochiai/plasma-whitepaper-jp https://github.com/shogochiai/plasma-whitepaper-jp Plasma Cash Simple Spec https://scrapbox.io/m0t0k1ch1/Plasma_Cash_Simple_Spec Why do/don’t we need two phase sends plus confirmation https://scrapbox.io/m0t0k1ch1/Why_do%2Fdon%E2%80%99t_we_need_two_phase_sends_plus_confirmation Cryptoeconomics Research https://research.cryptoeconomicslab.com/ PlasmaからPlasmaCashへ。その仕組みとメリットと課題点 https://zoom-blc.com/what-is-plasma-cash プラズマがイーサリアムのスケーラビリティ問題を解決する理由と仕組み https://zoom-blc.com/plasma-ethereum (順不同)