Based RollupとPreconfirmationについて
ざっくり勉強したことをまとめていく。
さて、発端は2023年3月に登場したJustin Drake氏による提案が発端っぽい。
https://scrapbox.io/files/66ae478142a3cb001c55fdcf.png
(ちなみにこれを発想したのはVitalikの2021年の記事がまた元ネタとなっているようだ。)
ざっくりいうとこの投稿は「Based Rollup」という新しい種類のRollupの提案を行うもの。
またPreconfirmationは、Based Rollupを実現した後UXをまともな水準まで上げるために必要なトランザクションの「事前承認」のことで、これについてはBased Rollupについてある程度解説した後に説明する。
Based Rollupとは何か
Based Rollupを理解するには、ある程度モジュラーアーキテクチャについて知っておくと幾分わかりやすいかもしれない。
とはいえ、 Based Rollupが今までのRUと違うのはこのアーキテクチャにおける部分ではないので、最悪知らなくても問題ない。
めんどくさくなってきたのでBased RollupはBRUと略すことにする(こうやって略してる人たちほぼいないけど)。
BRUは、今までのRUをより洗練し、より純粋に実行レイヤーのみを取り出したようなイメージのRUである。
今までのRU、一般的なL2のアーキテクチャは以下のような感じになっている(話がしやすいようにかなり単純化している):
トランザクションの実行:L2ノードが担当
L1へのバッチトランザクションの作成と送信:L2シーケンサーが担当
Data Availabilityの確保:L1が担当
BRUについて話す上で最も重要な点は、「L2ではL2のシーケンサーがL1に投稿するtxの順序を決定している」という点である。
Based Rollupは、この「L2で実行されるTxの順序」をL1上で確定させるというRollupの種類である。
つまりBRUにはシーケンサーがない。
Based Rollup自体の説明はこれで終わりだが、これが実現することで何がどう変化するかについても話さなくてはならない。
大まかに分けて幾つかあるが、、、
MEV:L2のMEVはなくなり、L1に吸い込まれる
TXの速さ:Preconfirmationがない限り、ブロック生成がL1と同じ速度になる
L2-L1間の同期性能:早まる、というか同じ速度になる
つまりFaultProof等が必要ない???
L2のカスタマイザビリティ:変わらずそのまま、VMも自由に決められる。
特殊な機能を持つようにすることも可能