サムネイルの引用元:taiko
はじめに
Ethereumのスケーラビリティ課題を解決する方法として、多くのプロジェクトがrollupに注目しています。rollupではトランザクションの実行をオフチェーンで行い、その結果を最終的にL1へ提案するため、L1の混雑や高いガス代といった問題を大幅に緩和できると期待されています。optimistic rollupやzk-rollupの例として、baseやarbitrumとzkSyncやstarknetなどと聞けば、読者の方は合点がいくでしょう。
加えて、optimistic rollupやzk-rollupといった証明方式の進化だけでなく、Sequencerの分散化やMEVのハンドリングなど、多面的な研究が盛んに行われています。本記事では、そのなかでもEthereum自体をSequencerとして活用するという大胆なアプローチであるbased sequencing rollupについて取り上げます。特に、zK-rollupかつbased sequencingを志向するプロジェクトのTaikoを事例に、既存のrollupとどのように異なるのか、どのような可能性を秘めているのかを解説していきます。
Ethereumが抱えてきた問題
上記でも述べたようにEthereumを利用するうえで、トランザクション手数料の高騰やブロックあたりの処理能力の限界といったスケーラビリティ問題は長らく課題とされてきました。その解決策のひとつとして注目されているのが、rollupです。さらにrollupを構成するレイヤーを整理すると、通常は以下の4つのレイヤー(機能層)が存在します。具体的には、Settlement Layer(決済レイヤー)、Data Availability Layer(データ可用性レイヤー)、Consensus Layer(コンセンサスレイヤー)、Execution Layer(実行レイヤー)があります。本記事では、このうちConsensus Layer=誰がトランザクションの順序を決定するかという点で、EthereumのL1が担うbased sequencingを採用したrollupであるTaikoを中心に解説します。Vitalik Buterinが2021年に言及したTotal Anarchy(誰でもいつでもバッチを投稿できる考え方)」や、Justin Drakeが2023年3月に提唱したBased rollups—superpowers from L1 sequencingの概念をベースに生まれたのが、based rollupと呼ばれる新しいアプローチです。
引用元:taiko
1. Based rollupとSettlement Layer
based rollupの特徴は、Settlement Layerと呼ばれるrollupで最終的にトランザクションの正しさを担保する層にあります。一般的なOptimistic rollupやZK-rollupでは、Ethereum L1がこのSettlement Layerを担います。たとえばZK-rollupならブロックごとにZK証明をL1へ投稿し、Optimistic rollupならもし不正があった時のみfraud proofを投稿して検証を行うことで、L1上でrollupの実行結果は正しいファイナリティさせます。その一方、Sovereign rollupと呼ばれるアプローチもあり、これは自前でファイナリティを確立するため、Settlement LayerをL1に依存しません。ただしEthereumとの直接的なやりとり(たとえばETHの預け入れや引き出しなど)を行いたい場合は別途ブリッジコントラクトが必要になります。
2. Based rollupとData Availability Layer
rollupの実行結果を再構築するために必要なトランザクションデータを、誰でも参照可能な形で保存する層です。通常のrollupは、このデータ可用性(Data Availability)をL1に依存します。たとえばOptimistic rollupやZK-rollupは、実行したトランザクションのデータをL1へ投稿することで、万が一rollup側が不正を行ってもユーザーや運営者が自力でrollupの状態を再構築できるようにしています。
3. Based rollupとConsensus Layer
rollupにおけるトランザクション順序の決定を担うレイヤーです。多くのrollupでは、自前のSequencerと呼ばれるサーバー/オペレーターが存在し、ユーザから送られてくるL2トランザクションをまとめ、順番を決め、L1へ投稿しています。
しかし、このSequencerを中央集権的に運営すれば検閲リスク(意図的に特定ユーザのトランザクションを除外するリスク)が存在し、分散化すれば複雑な合意形成が必要になります。そこで提案されたのが、EthereumL1のブロック提案者がrollupのトランザクションを同時に確定してしまう仕組み、すなわちbased sequencingです。
4. Execution Layer
rollupがオフチェーンでトランザクションを実行し、状態を更新するレイヤーです。実行結果を定期的にL1へ投稿し、それをSettlement Layerで検証してもらう流れになります。
以上がbased rollupと一般的なrollupとの差分になります。前述のとおりbased rollupとはトランザクションの順序決定をEthereumに外部化したrollupのことです。rollup上のブロック生成をEthereumのブロック提案者が(あるいはそれと協働するサーチャーやビルダーが)誰でも許可なく実施できるという考え方です。Vitalik Buterinの「Total Anarchy(全員参加型)」という表現とも近く、rollupのブロックが誰の許可もなくL1ブロックに含まれ得る状態を指します。
shared sequencerとの違い
引用元:maven11
最近注目されている概念として、shared sequencerもあります。これは複数のrollupが共通のSequencerを利用することで高速な確定や高いスループットを目指す仕組みです。ただし、これを運用するには共有シーケンサーのための新たな合意形成やインセンティブ設計が必要となり、システム全体が複雑化する懸念があります。一方、based rollupはEthereumのブロック提案者という既存の分散化されたコンセンサス機構をそのまま転用するので、余分な合意形成レイヤーを設けずに済む点が大きな特徴です。共有シーケンサーと比べると、「L1と同じレベルの検閲耐性・分散度合いをそのまま引き継げる」利点があります。