Tech/EIPs/#4337
ERC 4337카테고리 · ERC유형 · 표준 트랙상태 · 검토중

Account Abstraction Using Alt Mempool

쉬운 설명

프로토콜 변경 없이 스마트 컨트랙트 계정(Account Abstraction)을 구현한 제안이에요. 가스비 후원, 사회적 복구, 배치 트랜잭션, 세션 키 등 더 유연한 계정 경험이 가능해져요.

ERC 4337 diagram
ERC 4337 시각 다이어그램

EIP-4337은 프로토콜 변경이나 하드포크 없이 계정 추상화(Account Abstraction)를 구현하는 ERC입니다. UserOperation이라는 새로운 객체, Bundler, EntryPoint 컨트랙트, Paymaster로 구성된 대체 멤풀 시스템을 통해 EOA에서 불가능했던 가스비 후원, 소셜 복구, 배치 실행, 세션 키 등을 가능하게 합니다.

UserOperation: 트랜잭션의 추상화

UserOperation은 EIP-4337에서 정의된 높은 수준의 의도(intent) 객체입니다. 일반 트랜잭션과 유사하지만 sender(스마트 계정 주소), nonce, initCode(최초 배포 시), callData, callGasLimit, verificationGasLimit, preVerificationGas, maxFeePerGas, maxPriorityFeePerGas, paymasterAndData, signature 필드로 구성됩니다. 프로토콜이 아닌 어플리케이션 계층에서 처리됩니다.

Bundler와 대체 멤풀

Bundler는 UserOperation을 수집하는 특수 노드입니다. 일반 이더리움 멤풀 대신 별도의 p2p 네트워크(alt mempool)에서 UserOperation을 전파합니다. Bundler는 여러 UserOperation을 묶어 EntryPoint 컨트랙트의 handleOps() 함수를 호출하는 단일 이더리움 트랜잭션으로 제출합니다. Bundler는 가스비를 선지불하고 수수료로 보상받습니다.

EntryPoint 컨트랙트: 검증과 실행

EntryPoint는 EIP-4337의 신뢰 앵커(trust anchor)입니다. handleOps() 호출 시 두 단계로 동작합니다. 검증 단계(validation phase): 각 스마트 계정의 validateUserOp()를 호출해 서명, nonce, 자금을 확인합니다. 실행 단계(execution phase): 검증을 통과한 UserOperation의 callData를 스마트 계정에서 실제 실행합니다. 두 단계를 분리해 Bundler가 사전에 시뮬레이션 가능하게 합니다.

Paymaster: 가스비 후원

Paymaster는 UserOperation의 가스비를 대신 지불하는 컨트랙트입니다. paymasterAndData 필드에 Paymaster 주소와 데이터를 지정하면, EntryPoint는 Paymaster의 validatePaymasterUserOp()를 호출해 후원 여부를 결정합니다. 이를 통해 DApp이 사용자 가스비를 대납하거나(기업 후원), ERC-20 토큰으로 가스비를 지불하거나, 특정 조건부 후원이 가능해집니다.

EIP-4337 vs EIP-7702: 차이점

EIP-4337은 새로운 스마트 계정 컨트랙트를 배포하고 이를 통해 동작하는 방식으로, 기존 EOA 주소를 그대로 유지하면서 마이그레이션이 불필요합니다. 반면 EIP-7702는 기존 EOA에 직접 코드를 설정하는 방식으로 EOA가 즉시 스마트 계정처럼 동작합니다. EIP-4337은 완전한 스마트 계정 기능을 위한 장기 솔루션, EIP-7702는 EOA의 즉각적인 스마트 계정 경험을 위한 보완적 접근입니다.

공식 ERC 문서open_in_new