devops

EIP-4844, Optimism의 Ecotone 업그레이드 본문

Layer2

EIP-4844, Optimism의 Ecotone 업그레이드

vata500 2024. 1. 25. 22:29
반응형

이더리움의 덴쿤 하드포크의 핵심은 Proto-danksharding(프로토 댕크샤딩)인 EIP-4844다. 이는 이더리움 샤딩 로드맵에서 가장 중요한 부분이자, 롤업에서 가장 큰 비중을 차지하는 Calldata 비용을 획기적으로 줄일 수 있다.

이 업데이트에서는 blob 트랜잭션이라는 개념이 등장하는데, 관련해서 정리해 보자.

Blob(Binary Large Objects)

블롭 데이터는 일반적인 트랜잭션과는 다르게 비콘 체인에서만 저장되며, 사용료가 저렴하다. 블록은 데이터 가용성을 위한 저장 공간으로, 롤업의 DA를 위해서 사용될 것으로 기대한다.

블롭은 32Byte로 구성된 4096개의 필드로 이뤄져 있으며, 블롭 한 개의 크기는 125kb로, 블록당 평균 3~6개의 블롭이 추가되면 블록당 블롭의 크기는 375kb~750kb라고 보면 된다. 그러나 블롭 데이터는 저장된 지 30일이 경과되면 삭제된다.

blob transaction의 BlobTransactionNetworkWrapper을 살펴보면 1) SignedBlobTransaction 2) blob_kzgs 3) blob라는 3가지 요소로 구성되어 있다.

  • SignedBlobTransaction: 메시지와 서명을 포함
  • blob_kzgs: 블롭의 커밋값을 포함
  • blob: 블롭 데이터

https://hackmd.io/@Yicheng-Chris/H1z_hygci

blob의 라이프사이클을 간단히 정리하자면,

1) L2 유저들의 tx는 시퀀서를 통해서 L1 Tx 멤풀로 전송됨

2) Ethereum Proposer는 멤풀의 트랜잭션을 Execution Payload(SignedBlobTransaction), Sidecar(blob_kzg, blob)의 형태로 노드들에게 전달

3) tx 정보가 담긴 Execution Payload는 L1 Execution 클라이언트로, Sidecar는 Consensus 클라이언트로 전송되어 다운이 가능

이럴 경우, Blob 데이터는 consensus 클라이언에만 저장되기 때문에 EVM이 Blob 데이터에 접근할 수 없다. 기존에는 롤업이 calldata에 접근하여 유효성을 증명할 수 있었으나, blob 데이터는 EVM이 접근가능한 blob_versioned_hashes와 blob_KZG를 이용해서 교차검증으로 증명할 수 있다.

Optimism Ecotone L1 data fee

EIP-4844는 L2의 확장성을 높이고, 비용을 획기적으로 절감하는 업데이트기 때문에, 대표적인 옵티미스틱 롤업인 Optimism도 이에 맞춰서 Ecotone이라는 업그레이드가 진행될 예정이다.

Calldata 대신 Blob에 Tx Batch를 저장해야 하기 때문에, L1 데이터 비용을 결정하는 요소는 세 가지가 된다.

  • RLP로 인코딩된 Signed tx
  • Ethereum base fee, Blob base fee
  • 두 가지 base fee의 독립적인 scalar
1) tx_compressed_size = [(count_zero_bytes(tx_data)*4 + count_non_zero_bytes(tx_data)*16)] / 16
2) weighted_gas_price = 16*base_fee_scalar*base_fee + blob_base_fee_scalar*blob_base_fee

L1 data fee는 위와 같이 tx 데이터가 0 byte인 tx, 0이 아닌 tx 수를 계산하여 tx_compressed_size와 scalar를 각 basefee 수수료에 적용해서 나온 weighted_gas_price을 곱하여 구한다.

l1_data_fee = 1) tx_compressed_size * 2) weighted_gas_price

업그레이드가 되는 순간 base_fee_scalar는 Dynamic_overhead로 설정되고, blob_base_fee_scalar는 0이 된다. 

L1 data fee는 Blob에 tx 데이터가 전송되는 비용을 계산한 것으로, L2의 모든 tx에 청구되기 때문에 중요하다. 특히 L2의 수익원이 ETH이며, 수수료 산정 방식에 따라 이익의 크기도 결정되기 때문에 위에서 나오는 scalar의 설정도 중요하다.

EIP4844 이후로, tx 수수료에 많은 변화가 있기 때문에 Optimism의 SDK로 L2를 운영하게 된다면 이 부분을 참고해야 할 것 같다.

참고 :

https://hackmd.io/@protolambda/blobs_l2_tx_usage

https://hackmd.io/@Yicheng-Chris/H1z_hygci

https://docs.optimism.io/stack/transactions/fees#ecotone

반응형
Comments