Ethereumのスケーリング技術まとめ
public.icon
元々Ethereumのスケーリング技術について調べてて、以下のような曖昧な認識だった
レイヤー1であるEthereum
レイヤー2
セミ・レイヤー2?
今ツイートを見返すと何言ってるんかわからへん
/emoji/twitter.icon プラズマとかステートチャネルのガチのLayer2は「Ethereum L2」って言われてて、OPU, ZkRollupは「セミ・レイヤー2」って呼ばれてるのか?
Polygonもレイヤー2と呼ばれている、、、?なぜ、、?Ethereum L1と互換性があるからなのかね(EVM互換と言われるやつ?)
@tkgshntkgshn.icon November 24, 2021
イーサリアムのスケーラビリティ問題解決策4つを概略する. Ethereumはいかにして限界突破するのか。 | by Megan | Ethereum Tech Lab. | イーサリアム研究所 | Medium
1. トランザクションの検証をPoWからPoSに移行する(通称Casper)
PoSにおいてはPoWと異なり計算資源を必要とせず、Stakeと呼ばれる掛け金をデポジットし、その量が多い人ほど高確率でブロック生成の権利を得られる仕組みになっています。
2. Sharding、データベースを水平方向に分割して並列処理をする
各ノードをShardと呼ばれるグループに分け、グループごとにトランザクションに関して並列処理を行わせる
元々Shardingとはデータベースを水平方向に分割することをいうデータベースシステム用語でしたが、これと同じことをイーサリアムというワールドコンピュータ上でも実行しようというのがShardingの試みです。
この取り組みは、ハッシュパワーを考慮してパワーバランスを調節する必要があるので、前述のPoSへの移行が不可欠
もしランダムに選出されたShardのなかにハッシュパワーの少ないマイナーが集中した場合、PoWであればこのShardに対して簡単に攻撃することができてしまいます。
しかしPoSであれば、Stakeをデポジットしているバリデータは特定されていますので、これらを各Shardに振り分けるだけでアルゴリズムに従った意思決定が可能になります。
https://gyazo.com/4d0c4e7577845453f6f6cb2f446301f2 https://github.com/ethereum/wiki/wiki/Sharding-FAQs
イーサリアムのトランザクションに必要な‘GAS’(ガス)を安く抑える方法を考えてみる | by Taishi | Ethereum Tech Lab. | イーサリアム研究所 | Medium
3. Plasma、トランザクションの一部をサイドチェーンで処理する
これは具体的なプロダクト名ではなく、概念だな(今でいうL2らしい)
なので今でいう、OPUやZkRollupとかが該当するっぽい
詳細:Plasma = Layer2(OPU, ZkR)
https://plasma.io/plasma.pdf https://gyazo.com/9446108dc0d16b273a8f1a17e03feeb4
/layerx/Ethereum Layer 2 Projects
https://gyazo.com/c846b1f424fbb3a9a9c19ba96f9fd356
razokulover.iconによるまとめ: Rollups
An Incomplete Guide to Rollups
そもそもスケールさせるためには以下の方法がある
1. トランザクション容量を大きくする
ブロックを大きくするのは、分散化と逆行してしまう
シャーディングなどの手法を用いて、より効率的に処理する
Eth2はこれに挑戦しようとしている
2. 全てを同じレイヤーで処理しない、分けてまとめて処理する
レイヤー2と言われる概念
Optimistic Rollup, Zk-Rollupのことかな?tkgshn.icon
まとめる(?)と以下のような手法がある
State channels
State Channels - an explanation
State Channels - Instant P2P Ethereum Transactions
Plasma
http://plasma.io/plasma-deprecated.pdf
Plasma Cash: Plasma with much less per-user data checking - Plasma - Ethereum Research
Rollups
Optimistic Rollups - EthHub
ZK-Rollups - Ethhub
(Validiumという概念もあるっぽい?)
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のハイブリッド
Channel
dataと計算をLayer1と別のchainで行う
特定の用途にしか使えない
State Channels - an explanation
SideChain
EVMを持つ。Layer1のほぼコピーみたいな感じ。
独自のコンセンサスアルゴリズムも持つ
Polygonはこれ
Ethereumのスケーリング技術まとめ#619e6e5409c5f20000f0ebc5?
送られたバッチはどのようにしてLayer1側でvalidと検証されるのか?
Optimistic Rollup
flaud proofs
Layer2からLayer1へ送られたデータはvalidであると仮定する。
Layer1にsubmitするグループはあらかじめ預託金(ETH)をdepostしておかないといけない
Layer1側のsmart contractではトランザクションデータのバッチを監視する機能がある
もし不正なトランザクションデータを送ってその監視で引っかかった場合、それを送ったグループの預託金は全て没収される。
submitされたデータがLayer1に追加されるまでに最悪1週間くらいかかる可能性がある
Zk-Rollup
validity proofs
ゼロ知識証明(Zero Knowledge Proof)を利用する
トランザクションデータのバッチの中にzk-SNARKと呼ばれる暗号文を仕込む
Layer1側のsmart contractで検証をする