Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Plasma概要紹介

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Shuhei Sowa Shuhei Sowa
September 10, 2018

 Plasma概要紹介

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

Avatar for Shuhei Sowa

Shuhei Sowa

September 10, 2018
Tweet

Other Decks in Technology

Transcript

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

    Txの承認を分散化する ・サイドチェーンで処理、最終的な stateだけをメインチェーンに書き込む (=>Plasma) ・オフチェーンで処理、最終的な stateだけをメインチェーンに書き込む (=>RaidenNetwork)
  2. 2つの考え方 ▫ メインチェーンで捌ける量を増やす ▫ メインチェーンに書き込む量を減らす 9 ・ProofOfStakeによりブロック生成間隔を短くする ・ブロックガスリミットを増やして Txを詰め込む ・シャーディングにより

    Txの承認を分散化する ・サイドチェーンで処理し、最終的な stateだけをメインチェーンに書き込む (=>Plasma) ・オフチェーンで処理、最終的な stateだけをメインチェーンに書き込む (=>RaidenNetwork)
  3. [復習]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額としなければならない
  4. mass exit 19 withholding attack ・ブロックを承認しない(こちらが主?) ・51%攻撃(PlasmaはPoSを用いるのでStakerが分散していればリスクは低い) withholding attackなどによりPlasmaチェーンそのものが壊れた場合、みんなで撤退する ・単純なexitでは多額のgas代がかかってしまい少額

    UTXOが消失してしまう ・実装必須のものではない ・別のPlasmaチェーンに撤退。仲介者が新しい Plasmaチェーンで資金が利用可能になるように整える ・mass exitリクエストに不正なexitが含まれないように仲介者は監視、排除する ・多額の供託金と共に、 mass exitリクエストを提出する
  5. Plasma MVPの要件(ざっくり) 23 Plasmaコントラクト 以下のデータを保持 ・operator(デプロイ時に決定) ・Plasmaブロックのリスト ・submitされたExitTransactionのリスト。優先度順(=>古いUTXO優先)にポップできるようにしておく。 ブロックはoperatorが生成する or

    ユーザがdepositした時に生成(分散合意アルゴリズムなし) Exitにしかチャレンジできない。不正ブロックを検知したら Exitする事を前提 Plasmaチェーン ・Transactionは2つの入力と2つの出力を入れることができる。 RLPエンコードされたオブジェクト
  6. 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
  7. confirm sigがない場合 25 #Alice -> #Bob 10ETH #Alice -> #Ope

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

    10ETH(不正) オペレータが不正な Transactionをブロックに含めて承認する #Aliceはこれを発見したので confirm sigを生成しない #Aliceは->#BobのTxに含まれるInput UTXOをExit申請する(Txが承認されてないので Exit可能) これはOperatorのExit申請より前ブロックに含まれるので優先度が高く、先に Exitできる
  9. 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を割り振るので、細かい単位にトークンを分けることができない。 まだスマートフォン等の端末に載せるにはデータ量が多すぎる
  10. Plasma Debit 37 Plasma Cashの分割ができないデメリットを解消 提案・・https://ethresear.ch/t/plasma-debit-arbitrary-denomination-payments-in-plasma-cash/2198 実装例・・なし オペレータが各々の残高を管理する。ユーザとオペレータはペイメントチャネルを介して接続されてい る。送金した際は、オペレータに預けた 2者間で金額の総額が変わってないかをオペレータが検証する

    メリット)残高管理を可能にし、 PlasmaCashのデメリットを取り除いた デメリット)性質上、オペレータに預けた金額以上の金額を受け取る事ができない。 PlasmaCashチェーンが単独のオペレータによって運用されている事を前提とした提案。
  11. 参考資料 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 (順不同)