generated at
Ethereumのスケーリング技術まとめ
public

元々Ethereumのスケーリング技術について調べてて、以下のような曖昧な認識だった
レイヤー1であるEthereum

今ツイートを見返すと何言ってるんかわからへん
>twitter プラズマとかステートチャネルのガチのLayer2は「Ethereum L2」って言われてて、OPU, ZkRollupは「セミ・レイヤー2」って呼ばれてるのか?
>Polygonもレイヤー2と呼ばれている、、、?なぜ、、?Ethereum L1と互換性があるからなのかね(EVM互換と言われるやつ?)

1. トランザクションの検証をPoWからPoSに移行する(通称Casper
>PoSにおいてはPoWと異なり計算資源を必要とせず、Stakeと呼ばれる掛け金をデポジットし、その量が多い人ほど高確率でブロック生成の権利を得られる仕組みになっています。

2. Sharding、データベースを水平方向に分割して並列処理をする
>各ノードをShardと呼ばれるグループに分け、グループごとにトランザクションに関して並列処理を行わせる
>元々Shardingとはデータベースを水平方向に分割することをいうデータベースシステム用語でしたが、これと同じことをイーサリアムというワールドコンピュータ上でも実行しようというのがShardingの試みです。
この取り組みは、ハッシュパワーを考慮してパワーバランスを調節する必要があるので、前述のPoSへの移行が不可欠
>もしランダムに選出されたShardのなかにハッシュパワーの少ないマイナーが集中した場合、PoWであればこのShardに対して簡単に攻撃することができてしまいます。
> しかしPoSであれば、Stakeをデポジットしているバリデータは特定されていますので、これらを各Shardに振り分けるだけでアルゴリズムに従った意思決定が可能になります。


3. Plasma、トランザクションの一部をサイドチェーンで処理する
これは具体的なプロダクト名ではなく、概念だな(今でいうL2らしい)
なので今でいう、OPUZkRollupとかが該当するっぽい




razokuloverによるまとめ: Rollups
そもそもスケールさせるためには以下の方法がある
1. トランザクション容量を大きくする
ブロックを大きくするのは、分散化と逆行してしまう
シャーディングなどの手法を用いて、より効率的に処理する
Eth2はこれに挑戦しようとしている
2. 全てを同じレイヤーで処理しない、分けてまとめて処理する
レイヤー2と言われる概念
Optimistic Rollup, Zk-Rollupのことかな?tkgshn
まとめる(?)と以下のような手法がある
Validiumという概念もあるっぽい?)
though naming controversies exist at the edges, eg. see "validium"

>ChannelとSide Chainのハイブリッド
> dataと計算をLayer1と別のchainで行う
> 特定の用途にしか使えない
> State Channels - an explanation
> EVMを持つ。Layer1のほぼコピーみたいな感じ。
> 独自のコンセンサスアルゴリズムも持つ
> Polygonはこれ

>送られたバッチはどのようにしてLayer1側でvalidと検証されるのか?
> Layer2からLayer1へ送られたデータはvalidであると仮定する。
> Layer1にsubmitするグループはあらかじめ預託金(ETH)をdepostしておかないといけない
> Layer1側のsmart contractではトランザクションデータのバッチを監視する機能がある
> もし不正なトランザクションデータを送ってその監視で引っかかった場合、それを送ったグループの預託金は全て没収される。
> submitされたデータがLayer1に追加されるまでに最悪1週間くらいかかる可能性がある
> ゼロ知識証明(Zero Knowledge Proof)を利用する
> トランザクションデータのバッチの中にzk-SNARKと呼ばれる暗号文を仕込む
> Layer1側のsmart contractで検証をする