Ethereumのスケーリング技術まとめ
public.icon
元々Ethereumのスケーリング技術について調べてて、以下のような曖昧な認識だった 今ツイートを見返すと何言ってるんかわからへん
PoSにおいてはPoWと異なり計算資源を必要とせず、Stakeと呼ばれる掛け金をデポジットし、その量が多い人ほど高確率でブロック生成の権利を得られる仕組みになっています。
各ノードをShardと呼ばれるグループに分け、グループごとにトランザクションに関して並列処理を行わせる
元々Shardingとはデータベースを水平方向に分割することをいうデータベースシステム用語でしたが、これと同じことをイーサリアムというワールドコンピュータ上でも実行しようというのがShardingの試みです。
この取り組みは、ハッシュパワーを考慮してパワーバランスを調節する必要があるので、前述のPoSへの移行が不可欠
もしランダムに選出されたShardのなかにハッシュパワーの少ないマイナーが集中した場合、PoWであればこのShardに対して簡単に攻撃することができてしまいます。
しかしPoSであれば、Stakeをデポジットしているバリデータは特定されていますので、これらを各Shardに振り分けるだけでアルゴリズムに従った意思決定が可能になります。
https://gyazo.com/4d0c4e7577845453f6f6cb2f446301f2 https://github.com/ethereum/wiki/wiki/Sharding-FAQs
3. Plasma、トランザクションの一部をサイドチェーンで処理する これは具体的なプロダクト名ではなく、概念だな(今でいうL2らしい) https://plasma.io/plasma.pdf https://gyazo.com/9446108dc0d16b273a8f1a17e03feeb4
https://gyazo.com/c846b1f424fbb3a9a9c19ba96f9fd356
そもそもスケールさせるためには以下の方法がある
1. トランザクション容量を大きくする
ブロックを大きくするのは、分散化と逆行してしまう
2. 全てを同じレイヤーで処理しない、分けてまとめて処理する
まとめる(?)と以下のような手法がある
though naming controversies exist at the edges, eg. see "validium"
https://medium.com/starkware/volition-and-the-emerging-data-availability-spectrum-87e8bfa09bb https://gyazo.com/d78be2f5d6e642e07d27b624fcac89b8
ChannelとSide Chainのハイブリッド
dataと計算をLayer1と別のchainで行う
特定の用途にしか使えない
State Channels - an explanation
EVMを持つ。Layer1のほぼコピーみたいな感じ。 独自のコンセンサスアルゴリズムも持つ
送られたバッチはどのようにしてLayer1側でvalidと検証されるのか?
Layer2からLayer1へ送られたデータはvalidであると仮定する。
Layer1にsubmitするグループはあらかじめ預託金(ETH)をdepostしておかないといけない Layer1側のsmart contractではトランザクションデータのバッチを監視する機能がある
もし不正なトランザクションデータを送ってその監視で引っかかった場合、それを送ったグループの預託金は全て没収される。
submitされたデータがLayer1に追加されるまでに最悪1週間くらいかかる可能性がある
ゼロ知識証明(Zero Knowledge Proof)を利用する Layer1側のsmart contractで検証をする