Ethereumのスケーリング技術まとめ
元々
Ethereumのスケーリング技術について調べてて、以下のような曖昧な認識だった
今ツイートを見返すと何言ってるんかわからへん
>PoSにおいてはPoWと異なり計算資源を必要とせず、Stakeと呼ばれる掛け金をデポジットし、その量が多い人ほど高確率でブロック生成の権利を得られる仕組みになっています。
>各ノードをShardと呼ばれるグループに分け、グループごとにトランザクションに関して並列処理を行わせる
>元々Shardingとはデータベースを水平方向に分割することをいうデータベースシステム用語でしたが、これと同じことをイーサリアムというワールドコンピュータ上でも実行しようというのがShardingの試みです。
この取り組みは、ハッシュパワーを考慮してパワーバランスを調節する必要があるので、前述のPoSへの移行が不可欠
>もしランダムに選出されたShardのなかにハッシュパワーの少ないマイナーが集中した場合、PoWであればこのShardに対して簡単に攻撃することができてしまいます。
> しかしPoSであれば、Stakeをデポジットしているバリデータは特定されていますので、これらを各Shardに振り分けるだけでアルゴリズムに従った意思決定が可能になります。
3.
Plasma、トランザクションの一部をサイドチェーンで処理する
これは具体的なプロダクト名ではなく、概念だな(今でいう
L2らしい)
そもそもスケールさせるためには以下の方法がある
1. トランザクション容量を大きくする
ブロックを大きくするのは、分散化と逆行してしまう
2. 全てを同じレイヤーで処理しない、分けてまとめて処理する
まとめる(?)と以下のような手法がある
though naming controversies exist at the edges, eg. see "validium"
>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)を利用する
> トランザクションデータのバッチの中にzk-SNARKと呼ばれる暗号文を仕込む
> Layer1側のsmart contractで検証をする