교육 참고용이며 투자 조언이 아닙니다. 투자로 인해 손실이 발생할 수 있습니다.
직접 답변
계정 추상화는 계정의 인가 및 실행 규칙을 프로그래밍 가능하게 만듭니다. 이더리움에서 ERC-4337은 합의 트랜잭션 유형을 바꾸지 않고 이를 구현합니다. 지갑은 전용 RPC 인프라를 통해 UserOperation 을 보내고, 번들러는 하나 이상의 오퍼레이션을 특정 버전의 EntryPoint 로 향하는 일반 트랜잭션에 묶으며, 스마트 계정은 자체 오퍼레이션을 검증하고 실행합니다. 복구, 패스키, 세션 키, 지출 한도, 일괄 처리, 수수료 후원은 이 흐름 위에 구축되는 계정 또는 서비스 기능이지 ERC-4337이 자동으로 보장하는 사항이 아닙니다.
이는 컨트랙트가 메시지 서명을 검증하는 방법을 표준화한 ERC-1271이나 외부 소유 계정(EOA)이 코드에 실행을 위임할 수 있게 하는 EIP-7702와 구별됩니다. 이 메커니즘들은 함께 작동할 수 있지만 하나의 인터페이스, nonce, 배포 또는 보안 모델을 공유하지 않습니다. 계정 추상화는 자격 증명, Gas 비용, 컨트랙트 위험을 없애지 않으며 정확한 체인과 구현을 확인해야 할 필요도 제거하지 않습니다.
ERC-4337의 7단계 흐름
- 환경을 고정합니다.
chainId, 스마트 계정 구현과 업그레이드 통제, 팩토리, EntryPoint 버전, 주소와 배포된 코드 해시, 번들러 지원 여부, 체인의 EIP-7702 활성화 여부를 확인합니다. 한 EntryPoint 릴리스나 체인에서 유효한 주소가 보편적인 상수인 것은 아닙니다. - 버전에 맞는 오퍼레이션을 구성합니다. 현재 논리 필드에는
sender,nonce,factory,factoryData,callData,callGasLimit,verificationGasLimit,preVerificationGas,maxFeePerGas,maxPriorityFeePerGas, 선택적 페이마스터 필드와signature가 포함됩니다. 온체인에서 EntryPoint는 패킹된 표현을 받습니다. 대상 호출은 범용 대상 필드가 아니라 계정이 정의한callData안에 인코딩됩니다. - 인가를 올바른 도메인에 결속합니다.
userOpHash는 서명을 제외한 오퍼레이션을 포함하고 EntryPoint와 체인에 결속되어 해당 도메인 사이의 재사용을 막습니다. 계정의validateUserOp가 소유자, 다중 서명, 패스키, 세션 또는 기타 정책을 검사합니다. ERC-1271의isValidSignature는 별도의 컨트랙트 서명 인터페이스이며, 선택적 애그리게이터는 집계 서명을 검증할 수 있습니다. EIP-7702 인가 튜플은 UserOperation과 별도로 제공됩니다. - 수수료 부담 능력을 입증합니다. 계정은 EntryPoint 잔액으로 선납할 수 있고, 페이마스터는 자체 예치금을 재원으로 조건부 지급 책임을 수락할 수 있습니다. 페이마스터는 사용자를 후원하거나, 토큰을 청구하거나, 허용 목록이나 할당량을 적용하고
postOp를 실행할 수 있지만, ERC-4337은 이러한 상업 규칙을 정하지 않습니다. 스테이크와 예치금은 다릅니다. 스테이크는 검증 및 평판 규칙을 지원하고 예치금은 Gas를 지급합니다. - ERC-7769 RPC를 통해 추정하고 제출합니다. 번들러는 수신 시점, 선택 전, 번들 구성 시점마다 검증합니다. ERC-7562는 검증 단계의 연산 코드와 스토리지 접근을 제한하고 서비스 거부 행위에 대응하는 평판 통제를 지원합니다. 이 시뮬레이션은 수용 여부와 수수료 안전을 검사합니다. 업무 실행 결과를 예측하려면 별도의 전체 호출 시뮬레이션이 필요합니다.
- 번들러가
handleOps를 호출합니다. EntryPoint는 실행 전에 허용된 배포, 계정 및 페이마스터 검증, 선납 확인, 선택적 집계를 수행합니다. 검증 실패 시 해당 오퍼레이션은 실행되지 않습니다. 그러나 수용 후 대상 호출이 되돌려지고 Gas를 소비할 수 있습니다. 한 계정의 일괄 처리 안에서 호출이 원자적으로 모두 되돌려지는지, 부분 성공을 허용하는지는 계정 실행 코드가 결정합니다. - 영수증과 상태를 대조합니다. UserOperation 영수증, 기초 번들 트랜잭션, EntryPoint 이벤트, 계정 배포, 대상 이벤트, 실제 Gas, 토큰 청구, 환불 및 최종 잔액을 맞춥니다. 이후 nonce 레인, 소유자 및 복구 설정 변경, 세션 키 해지, 모듈, 구현 업그레이드, 대체 번들러와 페이마스터, 리오그, 마이그레이션 또는 EIP-7702 재위임을 모니터링합니다.
네 가지 계산 예시
- 단순화한 Gas 한도. 한 오퍼레이션이 실행 Gas로
120,000, 계정 검증 Gas로90,000, 페이마스터 검증 Gas로45,000, 사전 검증 Gas로40,000, 페이마스터 사후 처리 Gas로30,000을 배정하면 합계는120,000 + 90,000 + 45,000 + 40,000 + 30,000 = 325,000 gas입니다.maxFeePerGas = 30 gwei일 때 단순화한 상한은325,000 × 30 gwei = 0.009750 ETH입니다. 실제 과금 대상 사용량이210,000 gas, 실제 Gas 가격이22 gwei라면 비용은0.004620 ETH입니다. EntryPoint 버전 규칙, 미사용 Gas 페널티, L1 데이터 수수료, 롤업 가격 정책이 금액을 추가하거나 분류를 바꿀 수 있으므로 이는 예산 원장이지 보편적인 선납 공식이 아닙니다. - 병렬 nonce 레인.
192-bit key와64-bit sequence를 사용할 때 키7과 시퀀스42는nonce = (7 << 64) | 42 = 129127208515966861354 = 0x7000000000000002a로 인코딩됩니다. 성공적으로 포함된 후 그 레인이 기대하는 다음 시퀀스는43이며42를 재사용하면 실패합니다. 다른 키는 독립적인 시퀀스를 가질 수 있지만 계정 로직과 번들러 규칙을 따라야 합니다. - 페이마스터 처리 능력. 페이마스터에
0.50 ETH가 예치되어 있고 수락한 오퍼레이션마다 최대0.03 ETH보증이 필요하다고 가정합니다.floor(0.50 / 0.03) = 16건을 처리할 수 있으며0.48 ETH를 예약하고0.02 ETH를 남깁니다. 열일곱 번째 건에는 더 많은 예치금이나 더 작은 보증액이 필요합니다. 페이마스터 스테이크는 이 수수료 예치금을 대체할 수 없습니다. - 수용 후 실행 되돌림. 한 오퍼레이션이 최대
0.0060 ETH를 예약했고 검증에는 성공했지만 대상 실행이180,000 gas × 25 gwei = 0.0045 ETH를 소비한 뒤 되돌려졌다고 가정합니다. 대상 상태 변경은 취소되지만 계정 또는 페이마스터는 여전히0.0045 ETH를 부담하며, 미사용0.0015 ETH는 해당 정산 및 페널티 규칙의 적용을 받습니다. 따라서 번들러 시뮬레이션 성공이 업무상 성공, 포함 또는 최종성을 보장하지는 않습니다.
위험과 통제
- 잘못된 체인, EntryPoint 주소, 릴리스 또는 배포 코드 해시는 오퍼레이션을 무효화하거나 잘못 전달할 수 있습니다.
- 체인 또는 EntryPoint 도메인 결속이 빠진 서명은 재실행을 허용할 수 있습니다.
- 팩토리, 카운터팩추얼 주소, 초기화 데이터 또는 배포 솔트가 바뀌거나 잘못 계산될 수 있습니다.
- EIP-7702 위임이 EOA를 광범위한 계정 권한을 가진 악성 또는 취약 코드에 연결할 수 있습니다.
- 초기화 프런트러닝이나 반복 초기화로 계정을 탈취하거나 손상시킬 수 있습니다.
- 프록시 업그레이드나 EIP-7702 재위임이 기존 스토리지 레이아웃과 충돌할 수 있습니다.
- 업그레이드 관리자나 모듈 관리자가 침해되면 계정 동작을 교체할 수 있습니다.
- 소유자, 다중 서명, 패스키 또는 ERC-1271 검증 결함이 탈취를 인가하거나 자금을 잠글 수 있습니다.
- 복구 임계값, 지연, 가디언 및 취소 경로가 실패하거나 장악될 수 있습니다.
- 세션 키가 의도한 대상, 토큰, 금액, 기간 또는 함수 범위를 초과할 수 있습니다.
- nonce 레인이 충돌하거나 건너뛰거나 재실행되거나 종속 오퍼레이션을 막을 수 있습니다.
- 애그리게이터 중단이나 서명 집계 결함이 유효한 오퍼레이션을 중단시킬 수 있습니다.
- 번들러는 검열하거나, 오프라인이 되거나, 서로 다른 로컬 정책을 적용하거나, 대체 멤풀 규칙을 거부할 수 있습니다.
- 공개 UserOperation 흐름은 의도를 노출하여 프런트러닝, 상관관계 분석, MEV를 초래할 수 있습니다.
- 검증 후 상태 변화로 인해 번들 구성 시점에 오퍼레이션이 무효가 될 수 있습니다.
- 페이마스터 정책이 서비스를 거부하거나, 예치금이 소진되거나,
postOp가 실패할 수 있습니다. - 토큰 표시 Gas 청구에는 환율, 허용량, 스프레드 및 서비스 가산금 위험이 포함될 수 있습니다.
- Gas를 과소 추정하면 되돌림이 발생할 수 있고, 한도를 과도하게 설정하면 예약 또는 페널티 노출이 커질 수 있습니다.
- 계정의 일괄 처리 의미론이 사용자가 원한 원자적 되돌림 대신 부분 성공을 허용할 수 있습니다.
- 대상 프로토콜 결함, 악성 프런트엔드, 체인 리오그 및 약한 최종성은 계정 추상화의 통제 범위 밖에 남습니다.
흔한 오해
- “계정 추상화는 개인 키를 없앤다.” 프로그래밍 가능한 자격 증명 정책을 바꿀 뿐, 동작을 인가할 자격 증명은 여전히 필요합니다.
- “페이마스터가 있으면 Gas가 무료다.” 네이티브 Gas는 여전히 지급되며 사용자, 후원자 또는 서비스가 결국 비용을 부담합니다.
- “번들러 시뮬레이션은 성공을 보장한다.” 수용 시뮬레이션은 실행, 포함 또는 최종성을 보장하지 않습니다.
- “ERC-1271, ERC-4337, EIP-7702는 같은 인터페이스다.” 각각 서명, 트랜잭션 흐름, 위임이라는 다른 문제를 해결합니다.
- “모든 체인, 지갑, EntryPoint는 호환되고 더 안전하다.” 지원 여부, 버전, 배포, 코드, 모듈 및 통제를 따로 확인해야 합니다.