Zelcore

ERC-4337 아키텍처: EntryPoint, 번들러, 페이마스터를 쉽게 이해하기

8분 분량
EntryPoint, 번들러, 페이마스터를 보여 주는 ERC-4337 아키텍처

Ethereum의 계정 추상화에서 기억해 둘 대표 주소는 두 개입니다. EntryPoint v0.6은 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789에 배포되어 있습니다. 2024년 초에 배포된 EntryPoint v0.7은 0x0000000071727De22E5E9d8BAf0edAc6f37da032에 있습니다. 메인넷, Arbitrum, Optimism, Base, Polygon을 비롯한 대부분의 EVM 체인에서 ERC-4337 트랜잭션은 이 두 싱글턴 중 하나를 거칩니다. 이 컨트랙트와 그 주변의 다섯 가지 역할을 이해하면 ERC-4337을 이해할 수 있습니다.

이 글은 스마트 계정 시리즈의 2편입니다. 1편에서는 EOA를 기본 계정으로 사용하기 어려운 이유를 다뤘습니다. 이번 글에서는 내부 구조를 살펴봅니다. 여섯 가지 역할, UserOperation 구조체, 스마트 계정에서 토큰을 스왑할 때 실제로 일어나는 일, v0.6에서 v0.7로 바뀐 내용, 페이마스터, 공개 대체 멤풀과 비공개 번들러의 차이, 예상되는 추가 비용을 알아봅니다.

여섯 가지 역할 한눈에 보기

ERC-4337은 EOA가 한 단계로 처리하던 작업을 협력하는 여섯 주체로 나눕니다. 이 시스템을 도입하는 데 Ethereum 하드포크는 필요하지 않았습니다. 시스템 전체가 컨트랙트와 오프체인 인프라로 구성됩니다.

이 역할 구성을 기억해 두세요. 나머지 내용은 이 여섯 주체가 서로 상호작용하는 방식입니다.

UserOperation 구조체

UserOperation은 JSON-RPC에 적합한 필드 묶음입니다. 서명하면 의도를 표현하되, 아직 L1에 제출되지는 않습니다. v0.7 레이아웃에는 논리 필드가 11개 있습니다.

서명 방식은 지갑에 따라 다릅니다. secp256k1 기반 ECDSA가 흔하지만, P-256/패스키 검증, 멀티시그, 소셜 복구 임계값, 세션 키 서명자도 모두 같은 인터페이스를 사용합니다. 이런 유연성이 ERC-4337의 핵심입니다.

전체 흐름: 스마트 계정에서 USDC를 ETH로 스왑할 때

실제 스왑을 따라가며 각 역할이 차례로 작동하는 과정을 살펴보겠습니다.

  1. 사용자가 지갑 UI에서 "스왑"을 누릅니다. 지갑이 UserOperation을 구성합니다. sender = 0xUserSafe, callData = swapUSDCforETH(amount)는 Uniswap을 대상으로 합니다.
  2. 가스 추정. 지갑이 번들러 RPC에서 eth_estimateUserOperationGas을 호출합니다. 번들러는 EntryPoint를 기준으로 UserOp를 시뮬레이션하고 세 가지 가스 한도를 반환합니다.
  3. 사용자가 서명합니다. 지갑은 EntryPoint 주소와 체인 ID를 사용해 UserOp의 해시를 계산한 뒤 사용자에게 서명을 요청하고(패스키, 하드웨어 키 등), 서명을 첨부합니다.
  4. 제출. 서명된 UserOp가 eth_sendUserOperation을 통해 하나 이상의 번들러로 전송됩니다. UserOp는 Ethereum의 일반 트랜잭션 멤풀과 별개인 대체 P2P 네트워크, 즉 대체 멤풀에 들어갑니다.
  5. 번들러 시뮬레이션. 번들러는 eth_call을 사용해 simulateValidation을 기준으로 다시 시뮬레이션합니다. ERC-7562의 스토리지 접근 규칙을 확인합니다. 검증 중 UserOp는 자체 스토리지에만 접근할 수 있습니다. 그렇지 않으면 번들러가 공격을 받을 위험이 있습니다.
  6. 번들링. 번들러는 이 UserOp를 최대 약 10개의 다른 UserOp와 묶어 EntryPoint에 보내는 하나의 handleOps([...userOps], beneficiary) 호출로 만듭니다.
  7. 온체인 실행. EntryPoint는 각 UserOp를 순회하며 센더에서 validateUserOp을 호출하고, 선납금을 차감한 다음 callData를 실행합니다. 그러면 스마트 계정에서 Uniswap 스왑이 실행됩니다.
  8. 환불. EntryPoint는 사용하지 않은 가스 비용을 센더(또는 페이마스터)에게 환불하고, 번들러의 수익 수령 주소에 대금을 지불합니다.

5단계가 실패하면 번들러는 UserOp를 제외하고 사용자에게 AAxx 오류 코드를 표시합니다. 가장 흔한 오류는 AA21(선납금 미지급), AA23(서명 오류), AA25(유효하지 않은 논스), AA33(페이마스터 되돌리기), AA40(검증 가스 한도 초과)입니다. 이 표를 기억해 두세요. 실제로 자주 보게 됩니다.

EntryPoint v0.6과 v0.7 비교

v0.6은 2023년 3월 0x5FF1…2789에 배포됐습니다. 작동은 했지만 세 가지 문제가 있었습니다. 세 가지 가스 요소를 하나로 합친 단일 paymasterAndData 블롭, 다루기 까다로운 initCode 패킹, 센더에게 과도한 비용을 부과하는 가스 계산 방식입니다. v0.7에서는 세 가지 문제를 모두 해결했습니다.

알아둘 만한 v0.7의 주요 변경 사항은 다음과 같습니다.

v0.6은 여전히 활성 상태이며 사용되고 있습니다. 많은 지갑이 2024년이 한참 지난 뒤에야 v0.7 호환 모듈을 출시했습니다. 대부분의 체인에서는 두 EntryPoint가 수년간 함께 운영됩니다.

페이마스터: 가스 비용은 누가 내나요?

페이마스터는 EntryPoint에 ETH 스테이크를 예치하고, 정책에 부합하는 UserOp의 가스 비용을 부담하는 컨트랙트입니다. 주로 다음 세 가지 유형이 사용됩니다.

페이마스터의 validatePaymasterUserOp는 EntryPoint의 검증 단계에서 실행됩니다. 되돌리기가 발생하면 AA33이 반환됩니다. 스테이크가 부족해지면 EntryPoint가 이를 삭감하고 번들러가 손실을 부담합니다. 그래서 번들러는 페이마스터 평판 목록을 관리합니다. ERC-7562는 이러한 평판 규칙을 명문화해 번들러 멤풀이 스팸에 강하도록 합니다. 이와 같은 기본 요소를 보면 DeFi 승인과 멀티시그 관리 원칙이 4337 환경에도 자연스럽게 적용되는 이유를 알 수 있습니다. 위협은 같고, 이를 감싸는 방식이 달라졌을 뿐입니다.

공개 대체 멤풀과 비공개 번들러

UserOp를 온체인으로 전송하는 방법은 두 가지입니다.

공개 대체 멤풀: ERC-7562를 준수하는 번들러는 libp2p 네트워크를 통해 UserOp를 서로 전파합니다. Pimlico, Stackup, Alchemy, Etherspot 또는 Voltaire 노드를 운영하는 누구나 해당 UserOp를 가져갈 수 있습니다. 허가 없이 이용할 수 있고 검열에 강하지만, 일반 Ethereum 트랜잭션과 마찬가지로 MEV 우려에 노출됩니다. 검색자는 포함되기 전에 UserOp를 볼 수 있습니다.

비공개 번들러: eth_sendUserOperation를 한 제공업체의 RPC로 직접 전송합니다. 해당 업체는 시뮬레이션하고 번들로 묶은 뒤 비공개로 제출합니다(대개 Flashbots를 통함). 더 빠르고 MEV로부터 보호되지만, 번들러가 검열하거나 선행 거래를 하지 않을 것이라고 신뢰해야 합니다. 2026년 기준으로 대부분의 일반 사용자용 지갑은 기본적으로 비공개 번들러를 사용합니다.

이 선택은 일반 트랜잭션의 공개 멤풀과 Flashbots Protect 간의 선택과 비슷합니다. L1 시절 이후 기본적인 트랜잭션 생애 주기를 살펴본 적이 없다면, 해당 설명에서 번들러가 개입할 때 무엇이 달라지는지 다룹니다.

애그리게이터, 도입 현황, 비용

애그리게이터는 한 번의 서명 검증으로 여러 건을 검증하는 컨트랙트입니다. 대표적인 사용 사례는 BLS입니다. BLS로 서명된 UserOp 50건을 모아 서명을 한 번의 페어링 검증으로 집계하면 서명 가스를 약 95% 절약할 수 있습니다. BLS 서명 지갑을 만들기 어렵고, 가스 절감 효과는 거래량이 많을 때만 나타나 도입이 더뎠습니다. 2026년 중반 기준으로 메인넷 UserOp 중 애그리게이터를 사용하는 비율은 1% 미만입니다.

도입 수치 (bundlebear.com의 2026년 1분기 자료): 모든 체인에서 누적 UserOp는 약 380,000,000건이며, 대부분은 Base, Polygon, Arbitrum에서 발생했습니다. 메인넷 비중은 약 6–8%로, 거래량 기준으로는 가장 작지만 이전된 가치 기준으로는 가장 큽니다. Coinbase Smart Wallet, Farcaster, Argent가 일반 사용자 대상 사용량의 대부분을 차지합니다.

추가 비용: v0.7 UserOp는 이에 상응하는 EOA 트랜잭션보다 가스가 약 30,000–40,000 더 듭니다. 이는 EntryPoint 반복 처리, 검증, 번들 관리에 필요한 비용입니다. 메인넷에서 20 gwei 기준으로 건당 1달러의 일부에 해당합니다. 처음 계정을 배포할 때는 factoryData로 가스가 약 250,000 더 듭니다. 칼데이터가 비용의 대부분을 차지하는 L2에서는 추가 비용 비율이 한 자릿수입니다. 후원형 UserOp는 이 비용을 dApp으로 이전하므로 일반 사용자용 앱에서는 무료 트랜잭션을 볼 수 있지만, 본격적인 DeFi에서는 그렇지 않습니다. 트랜잭션 수수료 안내에서 이 추가 비용이 서로 다른 수수료 시장에 어떻게 반영되는지 설명합니다.

요약하면, ERC-4337은 여섯 가지 역할(sender, UserOp, 번들러, EntryPoint, 페이마스터, 애그리게이터), 하나의 구조체, 기억해 두어야 할 두 개의 EntryPoint 주소, 그리고 임의의 서명 방식, 가스 후원, 일괄 처리, 병렬 논스를 가능하게 하는 대신 발생하는 약 30–40k 가스의 추가 비용으로 구성됩니다. 이 시리즈 3부에서는 EIP-7702를 살펴봅니다. Pectra의 별도 경로인 EIP-7702를 사용하면 기존 EOA가 주소를 바꾸지 않고도 같은 기능을 이용할 수 있습니다.


더 읽어 보기

지갑, 가스비, 승인: 모든 DeFi 사용자가 알아야 할 세 가지

지갑, 가스비, 승인: 모든 DeFi 사용자가 알아야 할 세 가지

무엇이든 스왑하거나 대출하거나 이자 농사를 짓기 전에, 모든 DeFi 상호작용의 기반이 되는 세 가지 기본 요소인 지갑, 가스비, 토큰 승인을 이해해야 합니다.

5분 분량
계정, 컨트랙트, EVM: Ethereum은 실제로 어떻게 실행되는가

계정, 컨트랙트, EVM: Ethereum은 실제로 어떻게 실행되는가

Ethereum은 Bitcoin의 UTXO 지갑 구조를 거대한 계정 테이블과 가스로 비용을 측정하는 스택 머신으로 대체합니다. 상태, 옵코드, ERC-20 전송이 실제로 작동하는 방식을 살펴봅니다.

9분 분량
Dencun 이후 EIP-1559, 우선 수수료 및 블롭 수수료를 설명하는 Ethereum 가스 메커니즘

Ethereum 가스 메커니즘: Dencun 이후 EIP-1559, 우선 수수료 및 블롭 수수료

2026년 Ethereum 가스 수수료의 실제 작동 방식: EIP-1559 기본 수수료 경매, 우선 수수료 팁, 그리고 Dencun에서 도입되고 Pectra에서 확장된 독립적인 블롭 시장을 살펴봅니다.

7분 분량

뉴스레터 구독하기

한 달에 한 번 반가운 소식을 보내 드립니다. 스팸 없이 Zelcore의 최신 소식만 전합니다.

뉴스레터 구독하기