티스토리 뷰

반응형

ERC-4337 계정 추상화 핵심 구조와 스마트 컨트랙트 지갑 동작 원리

 

ERC-4337 계정 추상화는 이더리움 블록체인의 합의 계층(Consensus Layer)을 변경하지 않고 상위 애플리케이션 계층에서 스마트 컨트랙트 지갑을 네이티브처럼 사용할 수 있도록 설계된 표준 프로토콜입니다. 기존의 단일 개인키 기반 외부 소유 계정(EOA)이 가진 복잡성과 사용성 한계를 극복하기 위해 등장했습니다.

이 프로토콜의 핵심은 새로운 트랜잭션 유형을 강제하는 대신 의사 트랜잭션 객체인 UserOperation을 도입하고, 싱글톤 EntryPoint 컨트랙트와 오프체인 번들러(Bundler), 가스 대납 모듈인 페이마스터(Paymaster)를 결합하여 임의의 서명 체계와 가스비 대납, 트랜잭션 일괄 처리를 가능하게 만드는 데 있습니다.

 

ERC-4337 계정 추상화 개요: EOA 한계 극복과 기본 아키텍처

 

 

 

이더리움의 전통적인 EOA(Externally Owned Account)는 개인키(ECDSA)를 직접 보유한 사용자만이 트랜잭션을 발생시키고 ETH로 직접 가스비를 지불해야만 하는 구조적 제약을 안고 있었습니다. 이는 키 분실 시 자산 회수 불가, 복잡한 트랜잭션 서명, 초보자 진입 장벽 등의 문제로 이어졌습니다.

ERC-4337 계정 추상화는 합의 엔진 하드포크 없이 이 문제를 해결합니다. 사용자는 트랜잭션을 직접 전송하는 대신 실행하고자 하는 작업 명세를 담은 'UserOperation' 구조체를 생성하여 전용 대체 멤풀(Alt Mempool)로 브로드캐스트합니다. 이후 번들러가 이 작업들을 묶어 단일 트랜잭션으로 EntryPoint에 제출함으로써 컨트랙트 지갑이 동작하게 됩니다.

 

핵심 데이터 구조: UserOperation과 PackedUserOperation 필드 비교

 

 

 

사용자가 생성하는 UserOperation은 온체인 제출 시 가스 최적화를 위해 패킹된 형태인 PackedUserOperation으로 변환되어 처리됩니다. 각 필드는 계정 식별, 가스 한도, 검증 로직 및 페이마스터 연동 정보를 포함합니다.

ERC-4337 계정 추상화 핵심 구조와 스마트 컨트랙트 지갑 동작 원리

 

구분 필드 UserOperation (오프체인) PackedUserOperation (온체인) 역할 및 비트 구조
sender / nonce address, uint256 address, uint256 작업 실행 컨트랙트 계정 주소 및 2차원 논스 값
계정 초기화 factory, factoryData initCode (bytes) 미생성 지갑의 팩토리 주소와 호출 데이터 결합
가스 제한 파라미터 verificationGasLimit, callGasLimit accountGasLimits (bytes32) 검증(16바이트)과 실행(16바이트) 가스 한도 패킹
가스 가격 파라미터 maxPriorityFeePerGas, maxFeePerGas gasFees (bytes32) 우선순위(16바이트)와 최대 가스비(16바이트) 결합
페이마스터 연동 paymaster 및 3개 세부 가스/데이터 필드 paymasterAndData (bytes) 수수료 대납 컨트랙트 주소 및 검증 데이터 통합
서명 데이터 signature (bytes) signature (bytes) 계정 소유자 서명 (userOpHash 검증용)

특히 보안 상의 재생 공격(Replay Attack)을 차단하기 위해 서명(signature) 검증 시 체인 ID(chainid)와 EntryPoint 컨트랙트 주소를 keccak256(abi.encode(userOp.hash(), entryPoint, block.chainid)) 형태로 해싱하여 무결성을 보장합니다.

 

EntryPoint 싱글톤과 192비트 Key 기반의 2차원 Nonce 메커니즘

 

 

 

EntryPoint는 번들러로부터 패키지화된 UserOperation 배열을 전달받아 handleOps 및 handleAggregatedOps 함수를 통해 원자적으로 처리하는 싱글톤(Singleton) 신뢰 컨트랙트입니다.

ERC-4337 계정 추상화 핵심 구조와 스마트 컨트랙트 지갑 동작 원리

 

기존 이더리움의 단일 선형 Nonce는 트랜잭션이 엄격히 순차적으로만 처리되어 병렬 트랜잭션 처리나 커스텀 로직 적용에 한계가 있었습니다. ERC-4337은 uint256 크기의 논스를 두 개 영역으로 분할하여 이를 해결합니다.

  • 192비트 'key': 지갑 개발자가 임의의 사용자 정의 로직이나 독립적인 트랜잭션 채널을 설계할 수 있는 영역
  • 64비트 'sequence': 동일한 key 내에서 EntryPoint에 의해 순차적이고 단조롭게 1씩 증가하며 검증되는 순서 값

지갑은 getNonce(address sender, uint192 key) 메서드를 통해 온체인 논스를 조회하며, 프로토콜 수준의 트랜잭션 해시 고유성을 유지하는 동시에 지갑 애플리케이션 단에서 유연한 비동기 트랜잭션 처리를 구현할 수 있습니다.

 

스마트 컨트랙트 계정(Account) 인터페이스와 CREATE2 초기 배포

 

 

 

스마트 컨트랙트 계정은 IAccount 인터페이스의 validateUserOp 함수를 구현해야 합니다. 호출자가 신뢰하는 EntryPoint 컨트랙트인지 검증하고, 유효하지 않은 서명 시 SIG_VALIDATION_FAILED를 반환해야 합니다. 또한 부족한 가스 예치금(missingAccountFunds)을 EntryPoint에 즉시 납부해야 합니다.

지갑을 최초로 생성할 때는 CREATE2 opcode를 사용하는 팩토리 컨트랙트를 통해 배포 순서와 상관없이 결정론적(deterministic) 주소를 산출합니다. 사용자는 온체인에 지갑이 배포되기 전이라도 entryPoint.getSenderAddress() 정적 호출을 통해 가설 주소를 미리 확보하고 자금을 수취할 수 있습니다.

 

가스비 대납을 위한 Paymaster 구조와 스테이킹 기반 DoS 방어책

 

 

 

Paymaster는 최종 사용자가 ETH를 직접 보유하지 않아도 dApp 서비스 제공자가 가스비를 대신 지불하거나, 사용자가 ERC-20 토큰으로 가스 수수료를 결제할 수 있도록 지원하는 핵심 보조 컨트랙트입니다. '선결제(pre-charge) 및 실제 사용 후 환불(refund)' 모델로 구동됩니다.

ERC-4337 계정 추상화 핵심 구조와 스마트 컨트랙트 지갑 동작 원리

 

페이마스터는 validatePaymasterUserOp 및 postOp(PostOpMode mode, ...) 인터페이스를 구현해야 합니다. PostOpMode는 opSucceeded(작업 성공), opReverted(작업 실패 후 가스 청구), postOpReverted(후속 처리 실패로 전체 롤백)의 3가지 상태로 세분화됩니다.

악의적인 페이마스터가 DoS 공격을 감행하는 것을 막기 위해 평판(reputation) 시스템과 스테이킹 규정이 적용됩니다. EntryPoint의 addStake(unstakeDelaySec), unlockStake(), withdrawStake() 함수를 통해 진입점에 담보 자금을 스테이킹해야만 스토리지 제약 없이 대량의 작업을 안전하게 처리할 수 있습니다.

 

번들러 시뮬레이션 검증 절차와 AA 에러 코드 체계

 

 

 

번들러는 UserOperation을 멤풀에 수용하기 전 EntryPointSimulations 코드를 통해 simulateValidation(userOp) 호출을 로컬에서 실행합니다. 이 과정에서 유효하지 않은 작업은 즉시 필터링되어 블록 빌더의 DoS 공격 노출을 방지합니다.

  1. 오프체인 시뮬레이션 격리: 타임스탬프, 블록 번호 등 실행 시점 가변 정보 접근 차단 및 계정별 독립 스토리지 격리 (ERC-7562 opcode 제약)
  2. 실행 전 사전 추적: 최대 가스로 debug_traceCall을 실행하여 프리컴파일 및 스토리지 접근 규칙 위반 여부 확인
  3. 표준 에러 진단 코드: AA1(계정 생성 실패), AA2(계정 검증 실패 - validateUserOp), AA3(페이마스터 검증 실패) 형태로 실패 원인 엔티티 식별

추가로 IAggregator 인터페이스를 활용하는 서명 집계자(Aggregator)를 도입하면, 여러 UserOperation의 서명을 BLS 등의 단일 집계 서명(aggregateSignatures)으로 통합하여 온체인 검증 비용과 블록 공간 소비를 대폭 절감할 수 있습니다.

ERC-4337 계정 추상화는 기존 이더리움 합의 계층을 변경하지 않고 상위 인프라(EntryPoint, Bundler, Paymaster)의 유기적인 결합만으로 Web3 사용자 경험을 획기적으로 개선하는 기술적 토대입니다. 개인키 분실 위험, 가스비용 지불 장벽 등 EOA의 근본적인 한계를 스마트 컨트랙트 로직으로 극복할 수 있게 됨에 따라 차세대 지갑 인프라의 표준으로 자리매김하고 있습니다.

다만 EntryPoint라는 싱글톤 신뢰 지점에 보안 위험이 집중되는 구조인 만큼, 진입점 컨트랙트의 엄격한 감사와 함께 ERC-7562 기반의 DoS 방지 규칙을 철저히 준수하는 생태계 구현이 향후 대중화의 핵심 과제가 될 것입니다.

공식 제휴 가이드

이더리움(ETH) 거래 및 시장 대응을 준비 중이신가요?

이더리움(ETH) 거래를 준비 중이라면 관련 거래소의 거래 수수료와 진행 중인 혜택 조건을 함께 확인해 보세요. 공식 제휴 링크를 통해 신규 가입 및 KYC 인증 완료 시 거래 수수료 할인과 웰컴 보너스 혜택이 적용됩니다. 실제 거래를 시작하기 전 공식 가이드에서 세부 지급 조건과 적용 절차를 먼저 확인하시기 바랍니다.

[안내: 본 안내는 제휴 링크를 포함하고 있으며, 가입 및 이용 조건 충족 시 소정의 파트너 혜택이 발생할 수 있습니다. 모바일 앱 이용자는 APK 설치 가이드를 참고하세요.]

[투자 유의 안내] 본 글은 단순 정보 제공을 목적으로 하며 특정 가상자산에 대한 투자 권유나 자문이 아닙니다. 암호화폐 거래는 높은 가격 변동성과 원금 손실 위험을 수반하므로 모든 투자 판단과 책임은 투자자 본인에게 있습니다.

반응형