ethers.js와 kzg-wasm을 사용한 EIP-4844 블롭 트랜잭션 전송

발행: (2025년 12월 23일 오전 06:19 GMT+9)
4 min read
원문: Dev.to

Source: Dev.to

소개

EIP‑4844는 Proto‑Danksharding의 일환으로 블롭 트랜잭션(Type 3)을 도입합니다. 실제로 블롭 트랜잭션을 보내려면 도구, RPC 지원, 트랜잭션 준비와 관련된 제약이 있습니다. 이 글에서는 ethers.js v6kzg‑wasm을 사용한 실험을 정리하면서, 무엇이 작동하고 무엇이 작동하지 않으며 최소한의 설정을 어떻게 실행할 수 있는지에 초점을 맞춥니다.

코드에 직접 들어가지 않고 블롭만 만들고 싶다면 https://blobsender.xyz 를 이용하면 누구나 메시지를 작성하고 이더리움에 블롭으로 제출할 수 있습니다. 현재 브라우저 지갑 및 커넥터는 블롭 트랜잭션을 지원하지 않습니다.

Sepolia에서의 RPC 지원

RPC 지원은 주요 마찰 지점 중 하나였습니다. 약 20개의 Sepolia RPC 제공자를 테스트했으며, 많은 경우 블롭 트랜잭션을 거부하거나 EIP‑4844 지원이 부족했습니다. 다음 공개 RPC 엔드포인트는 안정적으로 작동했습니다:

  • https://sepolia.infura.io/v3/YOUR_API_KEY
  • https://ethereum-sepolia-rpc.publicnode.com
  • https://eth-sepolia.api.onfinality.io/public
  • https://0xrpc.io/sep
  • https://sepolia.drpc.org

이 목록은 다른 사람들이 테스트 시간을 절약하도록 저장소에 포함되어 있습니다.

저장소 및 스크립트

작동하는 모든 예제는 여기에서 확인할 수 있습니다: https://github.com/0xKurt/eip-4844-ethers-examples

저장소에는 ethers.js v6kzg‑wasm을 사용해 Type 3 트랜잭션을 보내는 두 개의 스크립트가 포함되어 있습니다:

send-blob.ts

고정 크기의 블롭을 준비하고, KZG 커밋먼트와 증명을 생성한 뒤 트랜잭션을 전송하는 간단한 블롭 트랜잭션 스크립트입니다.

send-blob-contract.ts

컨트랙트 호출과 결합된 블롭 트랜잭션으로, 블롭 데이터를 컨트랙트 인터랙션과 함께 포함하는 방법을 보여줍니다.

블롭 트랜잭션 전송 (고수준 단계)

  1. 고정 크기의 블롭을 준비합니다.
  2. KZG 커밋먼트와 증명을 생성합니다.
  3. type: 3을 지정하여 트랜잭션을 전송합니다.

Blobscan으로 블롭 검사하기

Blobscan을 사용하면 다음을 검사할 수 있습니다:

  • 블롭 버전 해시
  • 블롭 가스 가격
  • 기타 블롭 관련 메타데이터

스크립트는 ethers가 반환한 블롭 버전 해시를 이용해 Blobscan으로 바로 연결되는 링크를 출력하므로, 검증 및 검사가 용이합니다.

추가 자료

설정, 코드, 트랜잭션 흐름에 대한 단계별 전체 가이드는 원본 Medium 기사에서 확인할 수 있습니다: https://medium.com/@Kurt0x/sending-eip-4844-blob-transactions-using-ethers-js-and-kzg-wasm-d84224be6b81

Back to Blog

관련 글

더 보기 »