Plasmaについて学ぶ
BlockChainのトリレンマ
- トリレンマ どれも好ましくないが、その中から1つを選択肢しなければいけない状態
現状のEthereumの問題
1秒間に 10 - 15transaction程度しか処理できない 遅い!!
なぜか
- decentralization(分散化)を維持する必要があるから
- 全ての人が、transaction を検証しているから
- そもそもtransactionの数が多い
- blockが伝播するまでwaitしておく必要があるから
ETHにおけるトリレンマ
分散を維持するために処理速度を犠牲にしているから
分散 - 拡張性 - 安全性 の 3つの内、どれかを犠牲にしなければいけない
もう少し具体
Scalability(拡張性) と Decantralization(分散) を優先すると、Security が犠牲になる -> Blockの生成が早いと、forkの確率が上がり、reorg(再編成)の可能性が上がる -> データ量が増えると、miningできるnodeが限られてくるので、集中化する
ScalabilityとSecurityを優先すると、Decantralizationが犠牲になる -> PoA(信頼できる人のみがブロックを作成できる)などを採用すると、minerへのtrustが必要になる
Side Chain を用いた改善案
Salabilityを改善するための方針
- 自分に関係のあるtransactionのみを検証する(検証量を減らす)
- 特定のtransactionのみを流すようにしたい
main(root) chainがnode数が多くて、処理に時間がかかってしまう それに対して、side chainは特別な処理をするユーザー/nodeのみが参加して、Blockの生成を行う
side chainが満たすべき仕様
2 way-peg
- 必要に応じて、root chain から side chainに移動することができる
- root chainのassetsをside chainに移動する仕組み
- side chainでの取引終了後, root chainに戻す必要がある
PoS / dPoS / PoA
PoWでも不可能ではないけれども、Block長に期待ができないため、reorgが起こる可能性がある 2way-pegを使用するため、root chain / side chain で finalityを得られるアルゴリズムの方が好ましい
side chainが抱える問題
root chainと同等の価値を持つ token を 弱いchain上で扱っている node数が少ないので、minerの裏切りが起こる可能性がある
Plasma
大切にすること
参加者の資産を守ること
満たすべき条件
minerが裏切ったら参加者はいつでもroot chainに戻ることができる
どのように実現しているのか
Plasma chain(Plasmaに基づいて作られたside chain)は一定期間ごとに root chainに cheak pointに記録する
exit(資産の引出し方法)
root chainに対して、exitを行う root chainでは、checkpointを元にそのexitが正当かどうかをチェックする root chainには、記録がされているため、正当化どうかのチェックは可能