SettleLab
전체 코스
LESSON 06Cross-chain and L2

Fusaka, PeerDAS, Blob Scaling

심화40분근거 5

학습 결과

  • blob scaling이 L2 비용과 데이터 가용성에 미치는 영향을 설명한다.
  • 로드맵성 정보를 제품 가정으로 과장하지 않는다.
  • blob fee sensitivity를 checkout 수수료 정책으로 번역한다.

선행 조건

  • Ethereum 로드맵과 Glamsterdam 읽기

완료 기준

  • blob, DA assurance, retrievability, finality를 구분했다.
  • blob fee 변화에 따른 checkout fee sensitivity table을 만들었다.
  • L2 inclusion과 L1 data posting 지연을 감시하는 metric을 정했다.

Fusaka, PeerDAS, Blob Scaling

도입

L2 수수료는 L2 내부 execution만으로 결정되지 않는다. rollup이 transaction data를 Ethereum에 게시하는 방식, blob capacity, data availability assurance, batch posting 지연이 결제 제품의 economics와 finality policy에 영향을 준다. 그래서 Fusaka와 PeerDAS는 protocol news가 아니라 checkout fee model, paymaster budget, merchant settlement policy의 입력값이다.

2026년 5월 14일 확인 기준 ethereum.org roadmap은 Fusaka가 2025년 12월 3일 production에 들어갔다고 설명한다. 주요 항목에는 PeerDAS, Blob Parameter Only forks, gas limit 및 DoS hardening이 포함된다. 이 강의에서는 "수수료가 낮아진다"는 단순 문장 대신, 어떤 가정을 제품 문서에 넣고 어떤 가정은 monitoring으로 남겨야 하는지 다룬다.

학습 목표

  • blob data와 DA assurance가 L2 fee 및 confirmation policy에 주는 영향을 설명한다.
  • PeerDAS를 "모든 노드가 모든 blob을 보관하지 않아도 availability를 확인하는 방향"으로 이해한다.
  • blob fee 변화가 checkout minimum amount, gas sponsorship, route choice에 미치는 영향을 sensitivity table로 작성한다.
  • L2 inclusion, L1 data posting, bridge/CCTP finality를 분리한다.

개념 설명

상태머신가로 스크롤 · 크게 보기 지원
Fusaka, PeerDAS, Blob Scaling 상태머신이 시각화는 cross-chain 결제와 L2 운영에서 상태 전이가 어떤 증거와 실패 조건으로 움직이는지를 보여주며, 'Fusaka, PeerDAS, Blob Scaling'에서 남겨야 할 설계 증거를 좁힌다.
State 1

BlobDemandEstimated

blob scaling이 L2 비용과 데이터 가용성에 미치는 영향을 설명한다.

checkout, settlement, bridge message가 어떤 DA 비용에 노출되는지 나눈다.
State 2

DaAssumptionChecked

finality와 attestation 조건이 명확한가

blob availability, L2 finality, cross-chain attestation을 별도 증거로 확인한다.
State 3

FeeSpikeDetected

route별 trust assumption이 분리되는가

blob fee spike와 route degradation을 pricing, retry, pause 정책으로 연결한다.
State 4

DependencyRecorded

Blob dependency checklist 작성

blob과 DA의 역할을 설명했다.
크게 보기
State 1

BlobDemandEstimated

blob scaling이 L2 비용과 데이터 가용성에 미치는 영향을 설명한다.

checkout, settlement, bridge message가 어떤 DA 비용에 노출되는지 나눈다.
State 2

DaAssumptionChecked

finality와 attestation 조건이 명확한가

blob availability, L2 finality, cross-chain attestation을 별도 증거로 확인한다.
State 3

FeeSpikeDetected

route별 trust assumption이 분리되는가

blob fee spike와 route degradation을 pricing, retry, pause 정책으로 연결한다.
State 4

DependencyRecorded

Blob dependency checklist 작성

blob과 DA의 역할을 설명했다.

1. Blob은 싸게 올리는 데이터지만 결제 완료 그 자체가 아니다

Proto-danksharding은 rollup이 calldata보다 저렴한 blob data를 사용해 transaction data를 Ethereum에 게시할 수 있게 만든다. blob data는 EVM에서 직접 읽는 영구 storage가 아니며, rollup 검증과 DA를 위한 별도 데이터 경로다.

표 자료가로 스크롤 · 크게 보기 지원
항목의미제품에서 착각하면 생기는 문제
L2 inclusionL2 sequencer가 transaction을 포함사용자에게 너무 빨리 완료 처리할 수 있다
Blob postingrollup batch data가 Ethereum에 게시L1 posting 전 고액 settlement를 닫을 수 있다
DA assurance필요한 데이터가 검증 가능하다는 확신DA와 archive 조회를 혼동할 수 있다
Challenge/proof finalityfraud/proof 조건이 끝남treasury withdrawal 기준을 약하게 잡을 수 있다
Bridge/CCTP finalitycross-chain transfer가 destination까지 완료source finality만 보고 payout할 수 있다
크게 보기
항목의미제품에서 착각하면 생기는 문제
L2 inclusionL2 sequencer가 transaction을 포함사용자에게 너무 빨리 완료 처리할 수 있다
Blob postingrollup batch data가 Ethereum에 게시L1 posting 전 고액 settlement를 닫을 수 있다
DA assurance필요한 데이터가 검증 가능하다는 확신DA와 archive 조회를 혼동할 수 있다
Challenge/proof finalityfraud/proof 조건이 끝남treasury withdrawal 기준을 약하게 잡을 수 있다
Bridge/CCTP finalitycross-chain transfer가 destination까지 완료source finality만 보고 payout할 수 있다

2. PeerDAS는 L2 fee를 낮출 수 있지만 fee policy를 없애지 않는다

PeerDAS는 Peer-to-Peer Data Availability Sampling이다. 모든 node가 모든 blob data를 내려받아 보관하는 방식이 아니라, node들이 일부 data를 sampling해 availability를 확인하는 방향으로 확장성을 높인다. 이 방향은 더 많은 blob capacity와 낮은 L2 data cost의 기반이 될 수 있다.

하지만 fee는 여전히 변동한다. rollup batcher 정책, blob market congestion, L2 sequencer fee, paymaster strategy, route provider fee가 함께 작동한다. 따라서 제품 문서에는 "수수료가 내려간다"가 아니라 fee range와 fallback policy가 들어가야 한다.

3. Blob data 흐름

흐름도가로 스크롤 · 크게 보기 지원
강의 흐름도상태, 책임, 검증 지점을 순서대로 읽기 위한 다이어그램이다.
크게 보기

이 흐름에서 app은 두 가지 시간을 본다. 첫째, 사용자가 L2에서 transaction을 본 시간이다. 둘째, rollup data가 L1에 게시되어 더 강한 확인 기준을 만족하는 시간이다. low-value checkout은 첫 번째 기준을 쓸 수 있지만, 고액 merchant settlement나 treasury movement는 두 번째 기준을 요구할 수 있다.

코드로 확인하기

위 신뢰 모델을 코드와 운영 규칙으로 확인한다. 메시지 상태, 최종성, 재시도, 관측 지점이 어디서 분리되는지 보는 것이 목적이다.

백엔드Blob fee 조회 + L2 수수료 시뮬레이션

Ethereum head block에서 blob base fee 를 가져와 L2별 가산 모델로 추정. 사용자에게 노출할 결제 수수료에 변동성 범위를 같이 보여준다.

CODE SURFACEtypescript
import { createPublicClient, http } from "viem";import { mainnet } from "viem/chains";const eth = createPublicClient({ chain: mainnet, transport: http() });export async function readBlobBaseFee(): Promise<bigint> {  // EIP-7516 BLOBBASEFEE opcode 또는 RPC eth_blobBaseFee  // viem v2 는 별도 method 가 없으므로 raw request 사용  const fee = await eth.request({ method: "eth_blobBaseFee" as any, params: [] });  return BigInt(fee as string);}type L2FeeModel = {  chainId: number;  l1BlobShareBps: number;   // blob fee 가 L2 transaction cost 에 기여하는 비중  baseGasOverhead: bigint;  // L2 시퀀서 기본 오버헤드};const FEE_MODELS: Record<number, L2FeeModel> = {  8453:  { chainId: 8453,  l1BlobShareBps: 7000, baseGasOverhead: 21_000n },  // Base  42161: { chainId: 42161, l1BlobShareBps: 5000, baseGasOverhead: 30_000n },  // Arbitrum  10:    { chainId: 10,    l1BlobShareBps: 7000, baseGasOverhead: 21_000n }   // Optimism};export async function estimatePaymentFeeUsd(chainId: number, ethPriceUsd: number) {  const blobFeeWei = await readBlobBaseFee();  const model = FEE_MODELS[chainId];  if (!model) throw new Error(`no fee model for chain ${chainId}`);  const blobContribution = (blobFeeWei * BigInt(model.l1BlobShareBps)) / 10_000n;  const totalWei = model.baseGasOverhead * blobContribution;  return (Number(totalWei) / 1e18) * ethPriceUsd;}

운영Blob fee spike 알람 — 변동 50% 초과 시 paymaster 정지

블롭 수수료가 평소의 1.5배를 넘으면 paymaster sponsorship 한도를 자동으로 줄이고 사용자에게 알림.

CODE SURFACEtypescript
type FeeSample = { observedAt: Date; blobBaseFeeWei: bigint };export function detectFeeSpike(history: FeeSample[], current: bigint) {  if (history.length < 12) return { spike: false }; // 1 시간 분량 (5분 간격)  const recent = history.slice(-12);  const avg = recent.reduce((a, s) => a + s.blobBaseFeeWei, 0n) / BigInt(recent.length);  if (avg === 0n) return { spike: false };  const ratio = Number((current * 100n) / avg) / 100;  if (ratio > 1.5) {    return { spike: true, ratio, action: "throttle-paymaster", banner: "현재 네트워크 수수료가 평소보다 높습니다." };  }  return { spike: false, ratio };}

백엔드Confirmation 정책 — L2 inclusion vs L1 blob posting

금액별로 두 시간을 선택. 고액은 L1 blob posting 까지 대기, 일반 결제는 L2 finality 만 본다.

CODE SURFACEtypescript
type ConfirmationPolicy =  | { kind: "l2-inclusion-only"; blocks: number }  | { kind: "wait-l1-blob"; minBlobsAfter: number };export function pickConfirmationPolicy(amountUsd: number): ConfirmationPolicy {  if (amountUsd >= 100_000) return { kind: "wait-l1-blob", minBlobsAfter: 1 };  return { kind: "l2-inclusion-only", blocks: 5 };}

강의 포인트

표 자료가로 스크롤 · 크게 보기 지원
관점수업 중 확인할 질문산출물
DA사용하는 L2는 blob, calldata, external DA 중 무엇을 쓰는가blob dependency checklist
feeblob fee 변화가 사용자 수수료와 paymaster budget을 어떻게 바꾸는가fee sensitivity table
finalityL2 inclusion과 L1 posting을 어디서 나누는가confirmation policy
operationsbatch delay와 fee spike를 어떻게 감시하는가monitoring rule
source freshnessFusaka/PeerDAS 정보 접근일을 남겼는가source register
크게 보기
관점수업 중 확인할 질문산출물
DA사용하는 L2는 blob, calldata, external DA 중 무엇을 쓰는가blob dependency checklist
feeblob fee 변화가 사용자 수수료와 paymaster budget을 어떻게 바꾸는가fee sensitivity table
finalityL2 inclusion과 L1 posting을 어디서 나누는가confirmation policy
operationsbatch delay와 fee spike를 어떻게 감시하는가monitoring rule
source freshnessFusaka/PeerDAS 정보 접근일을 남겼는가source register

실무 예시

백엔드[OPS] Checkout fee sensitivity table

표 자료가로 스크롤 · 크게 보기 지원
시나리오사용자 표시 수수료paymaster 정책route 운영
Blob fee low기본 수수료 유지sponsorship fullroute 정상
Blob fee basemerchant fee 또는 spread로 흡수per-user daily caproute 정상, monitoring
Blob fee spike예상 수수료와 지연 안내sponsorship partial 또는 중단low-value route만 유지
Batch delay수수료보다 finality 지연 표시retry보다 관찰 우선고액 settlement hold
크게 보기
시나리오사용자 표시 수수료paymaster 정책route 운영
Blob fee low기본 수수료 유지sponsorship fullroute 정상
Blob fee basemerchant fee 또는 spread로 흡수per-user daily caproute 정상, monitoring
Blob fee spike예상 수수료와 지연 안내sponsorship partial 또는 중단low-value route만 유지
Batch delay수수료보다 finality 지연 표시retry보다 관찰 우선고액 settlement hold

L2별 확인표

표 자료가로 스크롤 · 크게 보기 지원
확인 항목왜 필요한가
data posting 방식Ethereum blob인지 calldata인지 external DA인지 구분
batch posting cadenceL2 inclusion 후 L1 posting까지 지연 측정
blob fee exposurecheckout fee와 paymaster budget에 반영
indexer handlingL2 reorg와 batch delay를 dashboard가 설명할 수 있는지 확인
bridge/CCTP dependencycross-chain finality가 L2 finality와 다른지 확인
크게 보기
확인 항목왜 필요한가
data posting 방식Ethereum blob인지 calldata인지 external DA인지 구분
batch posting cadenceL2 inclusion 후 L1 posting까지 지연 측정
blob fee exposurecheckout fee와 paymaster budget에 반영
indexer handlingL2 reorg와 batch delay를 dashboard가 설명할 수 있는지 확인
bridge/CCTP dependencycross-chain finality가 L2 finality와 다른지 확인

흔한 오해와 실패 시나리오

표 자료가로 스크롤 · 크게 보기 지원
오해실제 기준
PeerDAS가 있으면 L2 결제가 항상 싸진다fee는 blob market, rollup policy, sequencer, paymaster 조건에 따라 변한다
DA가 충분하면 settlement가 완료된 것이다DA, L2 finality, bridge finality는 서로 다르다
blob data는 영구 archive다availability와 long-term retrievability를 구분해야 한다
fee가 내려가면 confirmation policy도 낮춰도 된다비용과 finality risk는 별도 축이다
roadmap 자료는 한 번 확인하면 된다protocol 문서는 접근일과 재검토 주기를 남겨야 한다
크게 보기
오해실제 기준
PeerDAS가 있으면 L2 결제가 항상 싸진다fee는 blob market, rollup policy, sequencer, paymaster 조건에 따라 변한다
DA가 충분하면 settlement가 완료된 것이다DA, L2 finality, bridge finality는 서로 다르다
blob data는 영구 archive다availability와 long-term retrievability를 구분해야 한다
fee가 내려가면 confirmation policy도 낮춰도 된다비용과 finality risk는 별도 축이다
roadmap 자료는 한 번 확인하면 된다protocol 문서는 접근일과 재검토 주기를 남겨야 한다

실습 과제

  1. 운영Blob dependency checklist 작성: 사용 중인 L2가 Ethereum blobs, calldata, external DA 중 무엇을 쓰는지 확인하고 paid/final/settled 기준에 어떤 영향을 주는지 정리한다.
  2. 백엔드Checkout fee sensitivity table 작성: blob fee low/base/spike 시나리오별 checkout minimum amount, gas sponsorship budget, merchant fee, route disable 기준을 표로 작성한다.
  3. 운영[INDEXER] Batch delay monitoring 설계: L2 inclusion과 L1 data posting 사이의 지연을 감시하기 위한 metric, alert, 사용자 표시 문구, support action을 설계한다.

완료 기준

  1. blob, DA assurance, retrievability, finality를 구분했다.
  2. blob fee 변화에 따른 checkout fee sensitivity table을 만들었다.
  3. L2 inclusion과 L1 data posting 지연을 감시하는 metric을 정했다.
  4. fee spike와 batch delay 때 route disable 또는 settlement hold 조건을 작성했다.

근거 자료

Final checkpoint

읽기를 마쳤다면 여기서 기록한다

아래 버튼은 읽기 진도를 저장한다. 체크리스트, 과제, 랩 산출물은 위 Workbook에서 따로 관리한다.

  • blob, DA assurance, retrievability, finality를 구분했다.
  • blob fee 변화에 따른 checkout fee sensitivity table을 만들었다.
  • L2 inclusion과 L1 data posting 지연을 감시하는 metric을 정했다.

학습 자료 근거

Fusaka PeerDAS Blob Scaling
PeerDAS, blob data flow, stablecoin 업무 영향, 확인 질문을 강의 원고와 실습으로 재구성했다.
내부 참고 문서
Ethereum Roadmap: Fusaka
https://ethereum.org/roadmap/fusaka/
Ethereum Roadmap: PeerDAS
https://ethereum.org/roadmap/fusaka/peerdas/
Ethereum Roadmap: Danksharding
https://ethereum.org/roadmap/danksharding/
Ethereum.org Data Availability
https://ethereum.org/developers/docs/data-availability/