WATS Wallet logoWATS Wallet
기술7분 분량

Bundler와 UserOperation: ERC-4337 트랜잭션은 어떻게 작동하는가

ERC-4337 흐름—UserOperation, 대체 멤풀, bundler, EntryPoint 컨트랙트, paymaster—을 명확하고 기술적으로 정확하게 짚어보고, 이들이 어떻게 맞물리는지 설명합니다.

ERC-4337 빠른 요약

ERC-4337은 계정 추상화를 위한 이더리움 표준입니다. 즉, 기반 프로토콜을 전혀 변경하지 않고도, 외부 소유 계정(EOA)이 늘 가져왔던 것과 동일한, 동작을 개시하고 그 비용을 지불하는 일급(first-class) 능력을 스마트 컨트랙트 계정에 부여하는 방법입니다. ERC-4337은 합의 계층을 수정하는 대신, 궁극적으로 일반적인 이더리움 트랜잭션을 통해 정산되는 상위 수준 객체와 오프체인 인프라의 병렬 시스템을 도입합니다. 기초부터 알고 싶다면 계정 추상화란 무엇인가 설명이 그 동기를 다루고, ERC-4337이란 무엇인가가 전체 표준을 정리합니다. 이 글은 메커니즘을 확대해서 봅니다. 시스템을 통과하는 객체들과 그것을 처리하는 주체들입니다. ERC-4337은 EVM 표준이라는 점에 유의하세요. 이는 이더리움과 EVM 호환 체인에 적용되며, Solana나 TON 같은 비EVM 체인에는 적용되지 않습니다.

UserOperation이란 실제로 무엇인가

ERC-4337의 핵심 객체는 UserOperation입니다. 표면적으로는 트랜잭션처럼 보이지만, 서명된 의도 선언으로 이해하는 편이 낫습니다. "내 계정이 하고자 하는 일은 이것이고, 이를 검증하고 지불하기 위한 매개변수는 이러하다." UserOperation은 발신 계정, nonce, 실행할 calldata, 가스 한도, 수수료 매개변수, 선택적 paymasterAndData 필드, 그리고 서명 같은 필드를 실어 나릅니다.

일반 트랜잭션과의 핵심 차이는 누가 그리고 무엇이 서명하느냐입니다. 통상적인 이더리움 트랜잭션은 고정된 ECDSA 방식을 사용하는 EOA의 개인키로 서명되어야 하며, 바로 그 계정이 가스를 지불합니다. UserOperation은 발신자 자신의 스마트 컨트랙트 계정 로직에 의해 검증되며—이는 계정이 정의하는 어떤 서명 방식, 다중 키 규칙, 승인 정책이든 구현할 수 있습니다—네이티브 가스로 스스로 비용을 지불할 필요가 전혀 없습니다. 바로 그 유연함이 핵심입니다. 프로토콜이 아니라 계정이 유효한 동작이 무엇인지 결정합니다.

이들이 거주하는 대체 멤풀

UserOperation은 아직 트랜잭션이 아니기 때문에 일반적인 이더리움 트랜잭션 멤풀에 들어가지 않습니다. 대신 별도의 대체 멤풀(흔히 alt-mempool이라 부릅니다)로 브로드캐스트됩니다. 이는 ERC-4337 객체 전용의 P2P 네트워크입니다. 지갑과 디앱은 여기에 UserOperation을 제출하고, 이를 소비하는 인프라는 기반 계층 멤풀이 아니라 이 네트워크를 청취합니다. 이 분리는 계정 추상화 트래픽을, 실제 트랜잭션으로 패키징되는 순간까지 합의에 중요한 경로에서 떼어놓습니다.

bundler의 역할

bundler는 의도를 온체인 현실로 바꾸는 오프체인 주체입니다. 그 일은 네 부분으로 나뉩니다. 첫째, 대체 멤풀에서 UserOperation을 수집합니다. 둘째, 각각을 시뮬레이션하고 검증합니다. 즉, 시뮬레이션된 컨텍스트에서 계정의 검증 로직을 실행하여 서명이 유효한지, nonce가 올바른지, 계정(또는 그 paymaster)이 비용을 감당할 수 있는지 확인하는 동시에, 동작이 지불할 수 없는 자원을 소비하지 못하도록 하는 규칙을 강제합니다. 셋째, 하나 이상의 유효한 UserOperation을 단일 일반 이더리움 트랜잭션에 담습니다. 넷째, 자신의 EOA에서 그 트랜잭션을 네트워크에 제출하며, 기반 계층 가스를 선지급하고 온체인에서 상환받기를 기대합니다.

bundler는 가스를 선지급하고 포함에 대한 수수료를 벌어들이므로, 계정 추상화 트래픽을 위한 특화된 블록 빌더처럼 행동합니다. 그것을 보호하는 것은 시뮬레이션-및-검증 단계입니다. bundler는 자신에게 상환하지 못할 동작은 묶지 않습니다.

EntryPoint 컨트랙트

모든 것은 EntryPoint라는 단일한 정본 스마트 컨트랙트로 수렴합니다. bundler의 트랜잭션은 UserOperation 배열과 함께 EntryPoint를 호출하는 것입니다. 그러면 EntryPoint는 엄격한 2단계 루프를 실행합니다. 검증 단계에서는 각 동작에 대해 발신 계정의 검증 함수를(그리고 지정된 경우 paymaster의 검증 함수를) 호출하여 서명, nonce, 지불 약정을 온체인에서 재확인합니다. 배치 내 모든 동작이 검증된 후에야 실행 단계로 넘어가, 각 동작의 calldata를 해당 계정으로 디스패치하여 실제로 전송, 스왑, 또는 기타 동작을 수행합니다.

이 분리는 중요합니다. 상태를 변경하는 작업이 실행되기 전에 배치의 지불 보증이 확립되도록, 그리고 EntryPoint가 한 번에 여러 동작에 걸쳐 가스를 정확하게 회계 처리할 수 있도록 검증과 실행이 분리됩니다.

paymaster가 자리하는 곳

paymaster는 계정을 대신해 UserOperation의 비용을 지불하기로 합의하는 선택적 컨트랙트입니다. UserOperation이 paymaster 데이터를 포함하면, EntryPoint는 검증 단계 동안 그 paymaster에게 해당 동작을 후원할 것인지 그리고 어떤 조건으로 할 것인지 묻습니다. paymaster는 무조건 수락(진정한 가스리스 후원)할 수도 있고, 대가를 받고 수락할 수도 있습니다. 가장 유용하게는, 네이티브 가스 대신 ERC-20 토큰으로 사용자에게 청구하는 것입니다. 이 구성 요소에 대한 더 깊은 설명은 paymaster란 무엇인가를 참고하세요. paymaster는 흐름 속에서 "사용자가 무엇으로 지불하는가"를 "네트워크가 무엇으로 지급받는가"로부터 분리하는 고리입니다.

가스와 실패는 어떻게 처리되는가

ERC-4337에서 가스는 계층적입니다. bundler는 외부 트랜잭션에 대해 실제 ETH를 지불하고, EntryPoint는 각 UserOperation의 검증 및 실행 가스를 선언된 한도에 대비해 계측하며, 책임이 있는 쪽—계정 또는 그 paymaster—은 청구액을 감당할 만큼 스테이킹하거나 예치해 두어야 하고, 이를 EntryPoint가 마지막에 정산합니다. 실패는 검증 우선 설계로 봉쇄됩니다. 동작이 온체인 검증 중 실패하면 그것은 단순히 제외되어 확정될 수 없으며, bundler의 오프체인 시뮬레이션이 제출 전에 이를 잡아내도록 되어 있습니다. 동작이 검증을 통과했으나 실행이 되돌려지면(revert), 실행의 효과는 롤백되는 한편 이미 소비된 가스는 여전히 회계 처리되어 지불됩니다. 그래서 bundler는 정직한 작업에 대해 보상받지 못하는 일이 없습니다. 이것이 bundler가 그토록 신중하게 시뮬레이션하는 이유입니다. 그리핑에 대한 그들의 보호책은 자신에게 상환하지 못할 것은 무엇도 포함하지 않는 것입니다.

WATS는 이를 어떻게 활용하는가

EVM 체인에서 WATS는 이 흐름 중 정확히 한 조각에 의존합니다. 바로 ERC-4337 paymaster입니다. WATS Hot Wallet에서 전송, 스왑, 또는 스테이킹을 하면, paymaster가 당신의 수수료를 체인의 네이티브 가스가 아니라 ATS로 청구되게 해줍니다. 거래하기 위해 ETH, BNB, 또는 다른 어떤 가스 토큰도 보유할 필요가 없습니다. ATS는 LayerZero OFT이므로 단일 ATS 잔액이 EVM, Solana, TON 전반의 수수료를 감당하며(비EVM 체인에서는 동등한 fee-payer가 paymaster의 역할을 합니다), 징수된 ATS는 100,000,000개에서 30,000,000개 하한선을 향해 소각됩니다. WATS는 완전히 논커스터디얼로 유지되며—당신이 자신의 키를 보유합니다—ERC-4337 + OFT 단일 토큰 수수료를 네이티브 가스 대신 부과하고 그 소각까지 결합한 최초이자 유일한 지갑입니다. 전체 그림은 ATS 수수료 모델이 어떻게 작동하는지를 참고하세요.

자주 묻는 질문

UserOperation과 일반 이더리움 트랜잭션의 차이는 무엇인가요?

일반 트랜잭션은 고정된 ECDSA를 사용하는 외부 소유 계정에 의해 서명되고 해당 체인의 네이티브 토큰으로 자신의 가스를 지불합니다. UserOperation은 발신자 자신의 스마트 컨트랙트 계정 로직에 의해 검증되는 상위 수준 의도 객체로, 커스텀 규칙을 사용할 수 있으며, 네이티브 가스로 스스로 비용을 지불할 필요가 없습니다—paymaster가 수수료를 부담할 수 있습니다. UserOperation은 또한 표준 트랜잭션 멤풀이 아니라 별도의 대체 멤풀을 통해 이동합니다.

ERC-4337 bundler는 실제로 무엇을 하나요?

bundler는 대체 멤풀에서 UserOperation을 수집하고, 각각을 시뮬레이션하고 검증하여 서명, nonce, 지불 가능 여부를 확인한 뒤, 유효한 것들을 EntryPoint 컨트랙트를 호출하는 단일 일반 이더리움 트랜잭션에 담습니다. 자신의 계정에서 그 트랜잭션을 제출하며, 기반 계층 가스를 선지급하고 온체인에서 상환받기를 기대합니다. 신중한 시뮬레이션이 bundler를, 자신에게 되갚지 못할 동작을 포함하는 일로부터 보호합니다.

ERC-4337로 ETH가 아닌 토큰으로 가스 수수료를 지불할 수 있나요?

예, paymaster를 사용할 때 가능합니다. paymaster는 UserOperation을 후원할 수 있는 선택적 컨트랙트로, 네이티브 가스를 청구하는 대신 ERC-20 토큰으로 지불을 받고 실제 네트워크 수수료를 별도로 정산할 수 있습니다. 이것이 지갑이 당신에게 체인의 네이티브 가스 토큰을 보유하지 않고도 거래하게 해줄 수 있는 방식입니다. ERC-4337과 그 paymaster는 EVM 전용이며, Solana와 TON 같은 비EVM 체인은 동등한 fee-payer 또는 릴레이어로 유사한 결과를 달성합니다.