Dencun後の観測
1.Rollupのおさらい
rollup中心のロードマップの中で、DAをEVMからアクセスできない独立したもの部分で確保するアーキテクチャが提案された。
これにより、ブロックとは別にブロードキャストすることができ、ブロックとは別に検証することができる。
最終的にはDASによってランダムチェックで終わるので1スロットあたり16MBくらい
1.1zk rollup
1. rollupのオペレーターが一定期間のトランザクションデータを収集
2. 収集したトランザクションデータから、そのデータがI算術回路を満たしていることを証明するzkpを生成
3. ゼロ知識プルーフのルートデータのみをイーサリアム層に送信
4. ゼロ知識プルーフのルートデータから、トランザクションデータ全体が利用可能であり正しいことを数学的に検証
このようにzk rollupは、ゼロ知識プルーフによりトランザクションデータの可用性を証明するため、データ自体をイーサリアム層に保持する必要がない<- ダウト
1.2 Optimistic rollup
1. rollupのオペレーターが一定期間のトランザクションデータをイーサリアム層に直接送信
2. 誰でもこのデータの正当性を一定期間(Challenge Period)検証できます。不正がなければデータは最終的にイーサリアム層に取り込まれます。
3. もし不正があれば、Challenge Periodの間にその証拠(フォールトプルーフ)を提示し、取り込みを阻止できる
Optimistic rollupは、Challenge Periodの間データがイーサリアム層に公開され続けるため、データ可用性は保証されます。しかし、フォールトプルーフが提出されなかった場合にのみ、データがイーサリアム層に恒久的に組み込まれます。
2. Calldata vs Blob
2.1 calldata
Calldataは、Ethereumブロックチェーン上でスマートコントラクトを呼び出すときに使用される、読み取り専用のデータ領域で関数の引数やデータがこの領域に保存される。
Calldataは永続的ではなく、トランザクションのコンテキスト内でのみ存在する。
ガスコストを節約するために、データの転送や関数の呼び出しに利用される
zk-Rollupは多数のトランザクションを集約して一つのゼロ知識証明を生成し、この証明とともに必要最小限のデータ(例えば、トランザクションの差分データや新しい状態のハッシュなど)をメインチェーンに送信します。ここで、Calldataが使用されるのです。
Optimistic Rollupでは、トランザクションデータや状態の更新がレイヤー2で処理された後、これらの情報をまとめてメインチェーンに送信します。このとき、送信されるデータはCalldataを介して伝達されます。
2.2 blob
DencunではBlob transactionが導入される。blobと呼ばれるデータパケットをブロックに添付する
calldataで行われる価格競争(市場)とは別のblob市場を作るってイメージ?
blobは多項式で表現される
https://scrapbox.io/files/6608f11aad76fe0023837d49.png
rollupに最適なデータ保存、領域を新設する。
calldataに比べて大容量なのでtxつまりずらい→gas下がる
calldataはノードがトランザクションを実行する際にEVMメモリに書き込む必要があるが、コントラクトによってアクセスされないBlobは、直接ハードディスクに書き込んで放置できる。
blobはexcution layerからはアクセスできない。(EVMからは見えない)というかアクセスする必要がない
blobはconsensus layerにて約18日間保管されるがその後は削除可能
ただし、KZG commitmentが残る。これはblobがほんとに提出されたことを保証するため
これを使うことで、L2のデータを一時的にL1に格納し、DAを担保しつつコスト効率を図る流れ
メリットとしてはblobは一ヶ月ほどで削除可能であり、永続的には保存されないため、ブロックチェーンの永続的なストレージを圧迫することなく、効率的に大規模なデータ転送を実現する。
「任意でメモれよ一ヶ月くらいで消すからな」というスタンスでblobは18日まで、commitmentはexcution layerに永続化される
zk-rollup的にはDA担保できるからいつ消えても良くって、ORU的にはfroud proofに余裕があれば良い
blobで嬉しいこと
1. L2におけるgasのさらなる削減
2. ステートレス
3. DAの向上(ORU)
よくある質問
なぜコスト下がるんだっけ?→blobによってfee marketが分離し書き込みが減るから
なぜ消せるんだっけ?→fraoud proofに必要な期間以上保持する必要がなく、 commitmentで保証される
セキュリティはそのまま?→基本的にそうだが、誰か1人がblobを提出してくれれば良いという仮定に基づいている
2.3 価格が安くなるかどうか
Rollupが安くなるのであってL1は変わらない(なんなら上がる?)
そもそも混んだら上がる
あくまでオークション会場が分かれただけで、EIP1559に従えば必ずしも安くなるとは言えない?
L2のコストは下がりそうだがzk-rollupに関しては検証用のPre compileとか用意したら?
blobのスペースが埋められる(要求が増える)れば、必然的にコストも上がる。
L2が加熱しまくれば、blobの方が高くなって本末転倒になる?
L2aがのRollup Txを一つ、L2bが100TxのRollup Txを一つ。。。してRollup Txを六つまでいれれる
3. EIP4844の詳細
Point evaluation precompile
zkRollupsがL1に送信する際、Validity Proofに対応するトランザクションとBlobに保存されたトランザクションが同じであることを確認する。この時、Point Evaluation Precompileコントラクトを使用して、KZG CommitmentとValidity Proofの関連性を証明する
https://scrapbox.io/files/6608f404aae96100299b2bc2.png
point evaluation precompileを使うとblobの中身をEVMに対して証明することができる
DAS
https://scrapbox.io/files/6608f7d8456b7a00253887eb.png
誰か1人がblobを提出してくれれば良い(KZG commitmentで改ざん検証できる)
参考
https://www.youtube.com/watch?v=RLMBkuKDkz8
tweet