FABRKNT
Sequencer & Rollup アーキテクチャ — 中央集権ブロック生成から共有 sequencer まで
Sequencer の基礎
レッスン 2 / 7·CONTENT16 分40 XP
コース
Sequencer & Rollup アーキテクチャ — 中央集権ブロック生成から共有 sequencer まで
レッスンの役割
CONTENT
順序
2 / 7

レッスン1 — Batch 投稿と data availability

問い

2024 年 3 月以前、Ethereum に rollup data を 1MB 投稿するコストは batch あたり約 $300。EIP-4844 後、同じ 1MB が $3〜$30 に下がった。10 倍のコスト低下は rollup 史上最大の改善で、Base の tx 手数料がセント単位で済む理由。そもそもなぜ rollup は L1 に data を投稿しなければならないのか?

原理(最小モデル)

  • State root(32 byte)だけでは L2 state を再構築できない. Tx data がなければ sequencer が嘘をつけて誰も検知できない。
  • Data availability = 「tx data が皆の読める場所に公開」. 誰でも tx 再実行 + 同 state root 検証可能。
  • 4 つの DA モデル. Rollup(L1 calldata / blob)/ Validium(DA 委員会)/ Volition(tx ごと選択)/ Optimium(DA 委員会 + fraud proof)。
  • EIP-4844 blob 革命. 専用 fee market + 18 日 prune(fraud proof window 十分)+ 1 block 最大 768KB(128KB × 6)+ byte コスト 0.1-1 gas(vs calldata 16 gas)。
  • 3 サービスが異なる頻度. Sequencer(block ごと ~2s)+ Batcher(~60s)+ Proposer(~1h)。
  • 圧縮が静かなる勝者. zlib 3-5×、カスタム 5-10×。スループット倍増。
  • DA 代替. Celestia(専用 DA、~$0.0001/byte)/ EigenDA(restaker)/ Avail。Ethereum セキュリティ vs コスト trade。

具体例

DA モデル:

モデルData の場所Trust
RollupL1 calldata or blob 投稿L1 コンセンサスOptimism、Arbitrum、すべての「真の」rollup
Validium別の DA 委員会 投稿Multisig / PoSStarkEx、dYdX v3
Volitionユーザが tx ごと選択混合dYdX v4 系ハイブリッド
OptimiumFraud proof 付き DA 委員会DA 委員会 + fraud proofより新しい設計

Calldata vs Blob:

性質CalldataBlob (4844)
byte あたりコスト約 16 gas可変、典型的 0.1〜1 gas
L1 上の寿命永久約 18 日(その後 prune)
検証誰でも読める18 日間は誰でも読める
ブロックあたり最大実用 ~125KB128KB × 6 = 768KB

Batch 投稿フロー:

sequenceDiagram
    participant Seq as Sequencer
    participant Batcher
    participant L1 as Ethereum
    participant Proposer

    Note over Seq: 多くの L2 ブロック構築
    Seq->>Batcher: L2 ブロック生成済
    Note over Batcher: 圧縮 + batch
    Batcher->>L1: Batch data 付き blob tx 提出
    Note over L1: Blob が L1 ブロックに含まれる
    Note over Seq: Batch の新 state root 計算
    Seq->>Proposer: 最新 state root
    Proposer->>L1: State root を OutputOracle に提出
    Note over L1: チャレンジ期間開始 (7 日)

3 サービス頻度:

サービス頻度目的
SequencerL2 block ごと(~2s)ブロック構築
Batcher~60s圧縮 batch を L1 提出
Proposer~1hState root commitment 提出

op-batcher コアループ(ethereum-optimism/optimism/op-batcher、Go):

// 明確さのため擬似 Go
for {
    // 1. 最後 batch 以降の新 L2 ブロック取得
    blocks := fetchL2BlocksSince(lastBatchEnd)

    // 2. zlib で圧縮
    compressed := zlib.Compress(blocks)

    // 3. blob サイズチャンクに分割 (~128KB each)
    chunks := chunk(compressed, BLOB_SIZE)

    // 4. L1に blob tx 提出
    for _, chunk := range chunks {
        submitBlobTx(chunk)
    }

    // 5. ローカル状態更新
    lastBatchEnd = blocks.LastBlock
}

圧縮率:

Data圧縮率
生 transaction1.0×
RLP エンコード1.0×
Batch 単位 zlib3〜5×
カスタム(zlib + アドレス圧縮など)5〜10×

DA 代替:

  • Celestia — 専用 DA layer、~$0.0001/byte(blob ~$0.001 vs)
  • EigenDA — EigenLayer restaker、Ethereum 経済 security 部分継承
  • Avail — Polygon の DA、Celestia 風構造

失敗例(誤解)

「State root だけあれば L2 state 復元可能」— 間違い。State root は 32 byte の identifier、L2 state の中身は教えない。tx data がなければ sequencer は state について嘘をつき放題、誰も検知不能。両方 が必要。

「Blob は永久に L1 上に残る」— 間違い18 日後に prune。長期保存は別途アーカイブ(IPFS / 専用ノード)。18 日は fraud proof window として十分。

「全 rollup が blob に移行すれば全員 10× 安くなる」— 間違い。Blob は ブロックスペース競合。投稿 rollup 増 → blob ガス価格上昇 → 3-5× まで圧縮される均衡。Celestia / EigenDA / Avail が代替(セキュリティ trade)。

🛑 予測。 Rollup が 12 分ごとに L1 に 1MB の transaction data を投稿。Ethereum mainnet ガス価格で 1 日あたりいくらかかるか? EIP-4844 前と後でコスト差は?(答え: calldata 時代 = 16 gas/byte × 50 gwei × 1024×1024 byte × (1440 / 12) min/day = ~$36k/day。EIP-4844 blob = ~0.5 gas/byte 平均で ~$1k/day(30-40× 削減)。EIP-4844 が rollup を経済的に viable にした。)

ステップで組み立てる

Step 1: なぜ DA が必要か

State root(32 byte commitment)+ tx data(実体) = L2 state 復元可能。tx data なし → sequencer 嘘つけて誰も検知不能。

Step 2: 4 DA モデルを即答

Rollup / Validium / Volition / Optimium。

Step 3: Calldata vs Blob trade

Calldata: 永久 + 16 gas/byte / Blob: 18 日 prune + 0.1-1 gas/byte + 1 block 768KB。fraud proof window には 18 日で十分。

Step 4: 3 サービス頻度

Sequencer 2s / Batcher 60s / Proposer 1h。コスト大半が batcher + proposer。

Step 5: 圧縮の効き

zlib 3-5×、カスタム 5-10×。本番 rollup は vanilla zlib より 2-3× 高い圧縮率。

Step 6: DA 代替を理解

Celestia / EigenDA / Avail = Ethereum より安いがセキュリティ trade。chain ごとに「Ethereum DA vs 代替」選択。

答え合わせ

  • State root 単独で sequencer が嘘つける理由: state root は 32 byte の Merkle commitment、tx 内容を明かさない → sequencer が「block 100 の state は X」と主張 + 嘘の X を提出 → 検証者は実 tx を持たない → 嘘を検知不能。両方が L1 上にあって初めて再実行 + verification 可能
  • Blob 18 日 prune が問題ない理由: 18 日は fraud proof window(OP Stack 7 日、ZK の場合は数時間で proof 出る)として十分。Window 過ぎたら state root 最終確定 → past data L1 必要なし。長期保存は別途(IPFS、専用 archive node)で「歴史」用途。
  • 全 rollup blob 移行で 3-5× 圧縮の均衡: blob は block 毎 6 blob limit → 投稿者増 → ガス価格上昇 → 現在の 10× 削減から圧縮。完全均衡では rollup は Ethereum 以外(Celestia / EigenDA)に分散 → セキュリティ vs コスト trade を chain ごと選択。

合格基準

  • DA の必要性(state root + tx data)を 1 文で言える。
  • 4 DA モデルを即答できる。
  • Calldata vs Blob の 4 性質比較を言える。
  • 3 サービス頻度(Sequencer / Batcher / Proposer)を即答できる。
  • 圧縮率と DA 代替(Celestia / EigenDA / Avail)を言える。

まとめ(3行)

  • Data availability = 「tx data が皆の読める場所に公開」、state root + tx data で L2 state 復元 + sequencer 嘘検知可能。
  • EIP-4844 blob(18 日 prune + 0.1-1 gas/byte + 1 block 768KB)が rollup コスト 10× 削減、3 サービス(Sequencer 2s / Batcher 60s / Proposer 1h)が異なる頻度。
  • 圧縮(zlib 3-5×、カスタム 5-10×)が静かなる勝者、DA 代替(Celestia / EigenDA / Avail)は Ethereum より安いがセキュリティ trade。