1. 들어가며
2. 블록체인의 UX 문제와 계정 추상화(Account Abstraction)의 대두
2-1. 낮은 수준의 UI/UX와 셀프 커스터디에 따른 부담은 일반 유저들의 Web3 진입을 방해
2-2. 이를 해결하기 위한 방안으로 계정 추상화를 제시
3. ERC4337, 계정 추상화를 가장 심플하게 구현할 해결책
3-1. ERC4337은 하드포크 없이도 계정 추상화를 구현할 수 있는 제안
3-2. ERC4337을 구성하는 주요 컴포넌트: UserOperations, Bundler, Entrypoint, SCW, Paymasters, Aggregator
4. ERC4337의 최대 수혜자는 롤업일 것으로 전망
4-1. UserOperations는 롤업에서 가장 높은 활성도를 보이는 중
4-2. ERC4337관련 온체인 활동이 롤업에서 활발히 일어나는 주된 이유는 높은 가스비 때문
4-3. 블록체인의 UX는 롤업 생태계를 중심으로 빠르게 개선될 것
5. 맺으며
1. 들어가며
EthCC 이벤트 이후 ‘블록체인이 대중화되려면 인프라와 디앱 중 어느 섹터가 발전해야 하는가?’에 대한 담론이 대두되고 있다. 현재 Web3 시장에는 실제 사용자들을 보유하고 있는 지속가능한 디앱 서비스가 부족한 것이 사실이며, 인프라 대비 서비스 영역에 대한 고민이 상대적으로 덜 이루어진 것도 맞다. 이러한 측면에서 봤을 때, 이제는 인프라가 아닌 서비스에 집중해야 한다는 주장도 타당하다.
그러나, 이와 별개로 블록체인 기술은 여전히 발전해야 할 부분들이 많이 남아있고, 이러한 인프라의 발전이 선행되어야만 수 억 명의 사용자가 이용할 수 있는 킬러 서비스가 탄생할 수 있다는 것이 필자의 견해이다. 현재 Web3 시장에서는 확장성과 개발 환경의 개선을 최우선 과제로 삼고 있으나, 사용자 입장에서는 블록체인 서비스의 UI/UX도 못지 않게 중요한 요소이다. 이러한 문제를 해결하기 위한 방안으로 이더리움 진영에서는 계정 추상화(Account Abstraction, 이하 AA)에 주목하기 시작했고, 많은 논의와 시행착오 끝에 ERC4337라는 프로토콜 개선안이 로드맵에 채택 및 추진되었다. 본 리포트는 AA의 개념부터 ERC4337의 구조와 의의를 살펴보고 활용 영역을 모색한다.
2. UX 문제점과 계정 추상화(Account Abstraction)의 대두
2-1. 낮은 수준의 UI/UX와 셀프 커스터디에 따른 부담은 일반 유저들의 Web3 진입을 방해
사용자 입장에서 Web3 서비스가 번거롭고 어렵게 느껴지는 주 요인은 크게 1) 낮은 수준의 UI/UX와 2) 셀프 커스터디(self custody)에 따른 부담이 있다. 먼저, 블록체인 서비스의 사용자 경험 수준이 낮은 이유는 단순히 속도 문제도 있지만 블록체인이 기본적으로 사용자들에게 외부 소유 계정 (EOA, Externally Owned Account)*를 사용하게끔 설정되어 있기 때문이다.
EOA는 프로그래밍(코드 실행)이 불가능하고 정해진 방식으로만 사용할 수 있기 때문에 제약 사항이 많을 뿐더러 수월하게 사용하기 위해서는 블록체인에 대한 지식을 필요로 한다. 예로, EOA는 트랜잭션을 반드시 하나 씩 실행해야 하고 매 트랜잭션마다 개인 키로 서명해야 하기에 NFT를 구매하는 간단한 프로세스조차 시간이 오래 걸린다 (아래 그림 참고). 더불어, 지갑내 가스비로 지불할 ETH를 보유하고 있지 않으면 아무리 전송과 같은 단순한 트랜잭션이라도 실행할 수 없다. 이는 카카오/네이버/구글 계정을 통해 원클릭으로 회원 가입하고 다양한 어플과 연동하여 간편하게 서비스를 즐길 수 있는 Web2 환경과 크게 대비된다. 즉, Web2 서비스 방식이 익숙한 사용자들에게 Web3 서비스가 번거롭고 사용하기 복잡하다고 느껴지는 것이 당연하다.
*EOA - 블록체인 계정은 EOA와 CA(Contract Account)로 나뉜다. EOA는 외부 소유 계정의 준말로, 트랜잭션 발행, 메시지 서명(검증), 스마트 컨트랙트를 실행할 때 사용하는 계정이다. 메타마스크, 코인베이스, 팬텀 등 지갑 서비스를 이용하는 모든 사용자들은 EOA를 사용하고 있다. EOA는 개인 키(private key)로 관리할 수 있고, 개인 키 소유자만이 해당 EOA에 대한 접근 권한이 있다. 반대로, 개인 키가 외부에 노출될 경우 타인에게 권한이 넘어갈 수 있다. 마찬가지로, 개인 키를 분실하면 복구할 수 있는 방법이 없기 때문에 지갑 사용자들은 개인 키 혹은 시드 구문(seed phrase)를 분실하거나 타인에게 노출하지 않도록 각별한 주의가 필요하다. 반면, CA는 스마트 컨트랙트의 형태로 배포된 이더리움 계정으로, 내장된 코드의 논리대로 작동하며 개인키가 존재하지 않는다. 따라서, CA는 스스로 트랜잭션 발행하지 못하고 반드시 EOA나 다른 컨트랙트로부터 관련 데이터를 수신해야 트랜잭션을 실행할 수 있다.
두 번째는 셀프 커스터디에 따른 부담이다. 은행 계좌의 경우, 비밀번호가 생각이 나지 않아도 본인 인증을 통해 손쉽게 복구/변경할 수 있다. 카드를 분실하면 실시간 ARS와 같은 CS를 통해 1분 만에 카드 동결 및 재발행이 가능하다. 그러나 EOA 사용자가 개인 키를 분실하면 이를 복구할 수 있는 방법은 없다. 개인 키/시드 구문을 온라인으로 기록하면 해킹 위험이 있어 이를 반드시 종이에 적어둬야 한다. 시드 구문을 안전하게 보관하더라도, Web3 사용자들은 하루에도 수십 번 씩 피싱/스캠/사기 위험에 노출된다. 즉, 아무리 전문가일지언정 방심하면 전재산이 날라갈 수 있다. 그것이 설령 본인의 잘못이 아닌 프로젝트의 과실이어도 말이다. 참고로, 2022년 기준 크립토 시장내 해킹 피해 규모는 무려 $3.8B에 육박한다.
2-2. 이를 해결하기 위한 방안으로 계정 추상화를 제시
컴퓨터 프로그래밍에서 추상화란 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 낼 때 사용되는 용어로, 뒷편 시스템의 기술적 복잡함을 단순한 API 혹은 기타 하이 레벨 인터페이스 뒤에 숨기는 것을 의미한다. 이러한 측면에서, 블록체인 네트워크에서 AA는 1) 프로토콜 관점에서 계정 타입이 이더리움 프로토콜에 보이지 않는 것 2) 사용자 관점에서는 이더리움 계정과 상호 작용하면서 발생하는 복잡한 기술적 프로세스가 상위 수준 인터페이스 뒤에 가려지는 것을 의미한다. 이를 가능케 하는 방법은 EOA와 CA를 하나의 SCW(Smart Contract Wallet, Smart Account로 불리기도 함)으로 추상화하는 것인데, SCW는 로직 실행이 가능한 CA에 EOA의 트랜잭션 발행과 승인 기능을 추가한 지갑으로, Web3 서비스 사용의 복잡성을 줄이는 다양한 기능들을 계정에 추가할 수 있다는 장점이 있다. 단, 여기서 주의해야 할 부분은 계정이 프로토콜로부터 추상화되더라도 사용자로부터 추상화되지는 않는다. 여전히 1) 자금을 수령할 지갑 주소와 2) 그 자금에 대한 접근 권한을 가진 개인 키가 존재하며, 사용자들은 개인 키를 통해 지갑을 관리해야 한다.
그렇다면 AA 도입 시 구체적으로 어떠한 기능들을 구현할 수 있을까? SCW는 CA와 유사하게 내장된 코드에 따라 임의의 로직을 실행할 수 있어 사용자의 편의에 맞는 기능들을 직접 설계할 수 있는데, 잠재적인 활용 사례들은 다음과 같다:
- 송금 한도 설정: 계좌이체 송금 한도를 설정하는 것과 동일하다. 한도를 초과하는 금액을 송금하고 싶은 경우 검증 프로세스를 강화할 수 있다.
- 키 변경 및 계정 동결: 카드를 분실하면 계좌를 동결하고 재발급 신청하듯, 서명 키를 분실하면 계정을 동결하고 키를 새로 발급받을 수 있다.
- 세션 키(session keys): 설정한 기간 동안 자동으로 트랜잭션을 서명할 수 있는 기능이다. 블록체인 게임, 특히 fully on-chain 게임에서 더더욱 유용하게 활용될 것으로 보인다.
- 자동 결제: 자동 이체 기능과 유사한 기능이다. 해당 기능이 활성화되면 Web3 시장에도 구독 서비스가 크게 성장할 것으로 예상된다.
- 다중 서명 (MPC지갑과 차이 존재): 트랜잭션 서명 권한을 신뢰할 수 있는 주체(친구, 가족, 서비스 제공자, 본인이 보유하고 있는 기타 지갑 등)에게 분배하여 Web2 방식의 MFA(Multi Factor Authentication) 기능을 구현할 수 있다. 이는 마치 MPC(Multi Party Computation) 지갑과 유사한 듯 보이나, MPC 지갑은 키를 분산하여 보관하고 서명 시 이를 공유하여 합치는 오프체인 솔루션인 반면, 다중 서명 기능은 블록체인 상의 스마트 컨트랙트 코드를 통해 키 관리를 자동화하는 온체인 솔루션이다. 두 기술은 오프체인과 온체인이라는 뚜렷하게 반대되는 지점에 놓여있기 때문에 서로 상호보완적인 관계라고 볼 수 있으며 향후 두 기술의 장점을 혼합한 솔루션도 개발할 수 있을 것이다.
- 네트워크 수수료(가스비) 대납: Paymaster 서비스 제공자들이 고객의 가스비를 대납/스폰서해주는 기능이다. Paymaster과 관련한 구체적인 내용은 섹션 3-2를 참고하길 바란다.
- 구독 시스템: 자동 결제 기능과 가스비 대납 기능을 혼합한 구독 서비스를 설계하여 오프체인 방식으로 구독료를 받는 대가로 사용자들의 가스비를 대납해주는 방식이 있겠다.
- ERC20 토큰으로 가스비 지불: ETH가 아닌 기타 ERC20 자산으로 네트워크 수수료를 지불할 수 있는 기능이다.
- 소셜 복구: 개인 키 및 시드 구문을 분실했을 경우 이를 소셜 계정, 혹은 기타 본인 인증 방식으로 복구해주는 기능이다.
- 멀티콜(multicall): 다수의 트랜잭션을 마치 하나로 묶어 한 번의 서명으로 모두 처리 및 승인해주는 기능이다.
3. ERC4337, 계정 추상화를 가장 심플하게 구현할 해결책
AA를 도입하기 위한 이더리움 진영의 노력은 2017년으로 거슬러 올라간다. 비탈릭 부테린을 중심으로 EIP86, EIP2938 (EIP2718 타입 트랜잭션, NONCE
, PAYGAS
Opcode 추가), EIP3074 (AUTH
, AUTHCALL
Opcode 추가하여 EOA권한을 스마트 컨트랙트에 위임), EIP5003 (AUTHSURP
Opcode 추가) 등 AA를 도입하기 위한 다양한 방안들이 논의되었다. 그러나 위 제안들은 컨센서스 레이어 프로토콜 변경을 필요로 하여 그동안 우선순위에서 계속 밀려났다. 이후 2021년, 이더리움 진영은 하드포크 없이 계정 추상화를 구현할 수 있는 방법을 찾아냈고 그렇게 탄생한 것이 ERC4337이다. EIP4337 발표 이후 AA는 이더리움 진영내에서 본격적으로 주목을 받기 시작했으며 그로부터 2년이 지난 지금, 계정 추상화를 도입하기 위한 준비가 상당히 진전된 상황이다.
3-1. ERC4337은 하드포크 없이도 계정 추상화를 구현할 수 있는 제안
ERC4337은 이더리움의 합의 레이어 프로토콜을 변경하지 않고 Entrypoint
컨트랙트를 사용하여 계정 추상화를 달성하고자 하는 업그레이드 제안이다. ERC4337은 하위 레이어의 트랜잭션 타입을 변경하고 새로운 프로토콜 기능을 추가하는 대신 UserOperation
라고 하는 상위 레이어의 유사 트랜잭션 객체(pseudo-transaction object)를 도입하고 이를 위한 별도의 멤풀을 구축한다 (아래 그림 참고). 이후 사용자들은 트랜잭션 서명 및 검증을 위한 기타 데이터와 함께 사용자의 의도가 적혀 있는 UserOperation
을 멤풀에 전송하고, 번들러(bundler)라고 하는 주체가 UserOperation
을 모아 단일 트랜잭션으로 구성하여 이더리움 블록에 포함시키는 방식이다 (롤업 시퀀서와 유사한 역할).
출처: Vitalik Buterin
3-2. ERC4337을 구성하는 주요 컴포넌트: UserOperations, Bundler, Entrypoint, SCW, Paymasters, Aggregator
조금 더 구체적으로 살펴보면, ERC4337는 총 4개의 주요 컴포넌트(UserOperation, Bundler, Entrypoint, Contract Account)와 2개의 선택적 컴포넌트(Paymasters, Aggregator)로 이루어져 있으며 각 컴포넌트끼리 서로 유기적으로 상호작용하여 AA을 구현한다.
출처: Blocto
UserOperations
사용자의 의도(intent)를 나타내는 유사 트랜잭션 객체(pseudo-transaction object)이다. UserOperation
은 SCW가 제출한 스마트 컨트랙트 호출을 실행하는데 필요한 여러 가지 명령어(instruction)와 추가적인 데이터를 포함할 수 있으며, 사용자의 요청에 따라 디앱 서비스에서 생성한다. UserOperation
은 ERC4337 타입 트랜잭션의 시작점이라고 볼 수 있다.
다만, UserOperation
을 일반적인 트랜잭션과 헷갈려서는 안된다. UserOperation
은 일반 트랜잭션과 크게 세가지 측면에서 차이가 있다.
- 전용 멤풀:
UserOperation
는 일반적인 트랜잭션들을 호스팅하는 전통적인 공개 멤풀(mempool)로 전송되지 않고 별도의UserOperation
전용 상위 레벨 메모리 풀로 전송된다. - 유연한 검증 방식: 일반 트랜잭션은 개인 키 서명(signature)을 통해 트랜잭션을 검증해야 하는 반면, UserOperations는 검증 방식을 어카운트별로 프로그래밍할 수 있다.
- 추가 필드값: 아래 그림과 같이 일반적인 트랜잭션에 포함되는 “sender”, “to”, “calldata”, “maxFeePerGas”, “maxPriorityFee”, “signature”, “nonce”값 외에도 추가적인 필드들이 존재한다.
출처: ERC4337
UserOperation을 위한 SDK를 개발하고 있는 프로젝트는 대표적으로 Biconomy, ZeroDev, Etherspot 등이 있다. Jiffyscan, Blocknative에서는 UserOperation 전용 익스플로러를 출시했으며 StackUp도 ERC4337 UserOperations을 위한 JS 라이브러리를 제공하거나 ERC4337 방식으로 ERC20 토큰을 전송하는 방법을 알려주는 등 UserOperation
상용화를 위해 힘쓰고 있다.
Bundlers
번들러는 UserOperation
전용 멤풀을 모니터링하고 UserOperation
의 유효성을 검사한 뒤 이를 하나의 일반 트랜잭션으로 구성하여 이더리움 블록에 포함시키는 주체이다 (롤업 시퀀서와 유사한 역할을 수행). 번들러는 프라이빗 멤풀에서 UserOperation을 선별한 뒤 EntryPoint 컨트랙트에 제출하여 유효성을 검증한다. 이때 사용자들이 트랜잭션을 생성할 때 지불하는 가스 수수료의 일부를 인센티브로 수취한다. 이후 번들러는 해당 트랜잭션을 이더리움 블록에 포함시킨다. 이러한 이유로 번들러는 주로 블록 빌더 본인이거나 블록 빌더와 함께 작업한다. 계정 추상화가 상용화되면 번들러는 이론상으로 EOA가 필요한 유일한 주체일 것이다.
2023년 7월 기준 Bundler Client를 서비스 중인 프로젝트는 Pimlico(Alto), Alchemy(Rundler), Biconomy, Stackup, Infinitism, Etherspot(Skandha), Silius(전 AA-bundler), Candide(Voltaire)을 포함하여+1,000개가 넘는다. 그 중 Pimlico, Alchemy, Biconomy가 순서대로 68.8%, 16.9%, 8.2%의 시장점유율을 차지하고 있으며, UserOperation 수가 7월을 기점으로 급증함에 따라 번들러 매출도 7, 8월에 각각 $2.2K, $19.5K를 기록했다. Pimlico가 폭발적인 퍼포먼스를 보여주고 있는 이유는 Pimlico 번들러 솔루션을 사용하는 웹3 소셜 미들웨어 Cyberconnect V3가 $CYBER 에어드랍을 진행하 에어드랍 헌터들이 대거 유입되었기 때문으로 보인다.
한편, 현재 Bundler Client마다 각자 프라이빗 멤풀을 사용하고 있어 UserOperation들이 파편화되어 있는 상황이나, UserOperation을 한눈에 확인할 수 있는 퍼블릭 P2P 통합 멤풀이 활발히 개발되고 있으며 이르면 2023년 10월 즈음에 출시될 것으로 예상된다.
EntryPoint
EntryPoint는 ERC4337 표준과 호환되는 SCW와 Paymasters를 위한 싱글톤(Singleton) 컨트랙트로, UserOperation을 검증하고 실행하는 역할을 수행한다. 싱글톤이라는 단어에서 유추할 수 있듯 EntryPoint 컨트랙트는 체인마다 하나씩 존재한다. 이더리움의 최초 EntryPoint 컨트랙트는 이더리움 재단에서 개발하고 OpenZeppelin에서 코드 감사를 받았으며 올해 3월에 출시했다. 이후 커뮤니티의 피드백을 받아 4월 12일 업데이트된 EntryPoint 0.6.0 컨트랙트를 출시했다 (이더스캔 링크).
아래 그림은 EntryPoint에서 번들러가 전송한 UserOperations를 어떤 식으로 처리하는지 보여준다. 기본적으로 EntryPoint 컨트랙트는 두 단계의 프로세스를 수행한다.
- 검증 루프(Verification loop): 스마트 컨트랙트 및 Paymaster 컨트랙트를 확인하여 UserOperation의 유효성을 검증한다. 이때, EntryPoint는 SCW 혹은 Paymaster 컨트랙트 둘 중 하나라도 UserOperation의 가스비를 지불할 수 있는지도 함께 확인한다. 만약 SCW와 Paymaster 컨트랙트 둘 다 가스비를 지불할 수 있는 여유 자금이 없다고 판단되면, EntryPoint는 해당 트랜잭션을 거부한다.
- 실행 루프(Execution loop): 각 UserOperation의
callData
를 SCW에 전송한다. EntryPoint 컨트랙트가 UserOperation에 명시된 calldata를 통해 계정을 호출하고 UserOperation을 실행한다. 이후 트랜잭션 가스비를 지불하기 위해 SCW 혹은 Paymaster 컨트랙트에서 ETH 자금을 출금하고 번들러에게 제공한다. 여기서 번들러는 검증 루프만 확인하며,callData
실행 여부를 확인하지는 않는다.
EntryPoint 트랜잭션 프로세스, 출처: ERC4337
Smart Contract Wallet/Smart Account/Contract Account
유저들이 사용하는 어카운트다. ERC4337를 지원하려면 어카운트에 ValidateUserOp과 op 실행 함수를 추가해야 한다 (ValidateUserOp는 UserOperation을 input으로 받는 함수로, UserOperation의 서명과 논스값을 검증한다. op 실행 함수는 SCW가 calldata를 통해 받은 지침(instruction)을 기반으로 어떠한 행동을 해야 하는지 가이드라인을 제공한다). 아직 시장에서 충분히 검증된 SCW 라이브러리는 존재하지 않으나, 다양한 주체들이 SDK를 개발하고 있는 상황이다. 대표적으로 알려진 것은 다음과 같다 (Stakup docs 참고):
- SimpleAccount.sol - 단일 ECDSA서명을 검증하는 어카운트. ETH Infinitism (이더리움 재단의 AA팀)에서 개발함
- BLSAccount.sol - BLS서명을 검증하는 어카운트. ETH Infinitism (이더리움 재단의 AA팀)에서 개발함
- GnosisAccountFactory - 이더리움 재단에서 개발한 ERC4337 스타일 Gnosis Safe
- Candide Wallet - 소셜 복구 기능을 갖춘 Gnosis Safe 포크
- ZeroDev Kernel - ZeroDev에서 개발한 모듈러 스마트 어카운트. 2023년 4월에 코드 감사 받음
- Blocto: Paymaster, Bundler, Aggregator 등 ERC4337 호환성을 갖춘 SCW. 자체 지갑과 SDK 둘 다 제공할 예정.
- Biconomy: SCW가 풀스택 AA SDK에 포함되어 있음. SCW외에도 Paymaster와 Bundler SDK를 제공.
- Permissive - 온체인 검증 과정을 관리하는 프레임워크로, Gnosis Safe 및 Rhinestone과 호환 가능함. 초기 버전은 출시된 상황
- Soul Wallet - Soul Wallet을 위한 ERC4337 어카운트 라이브러리
전체 체인 기준 SCW 수는 7, 8월에만 각각 290K, 144K개 생성되는 등 최근 두 달간 급증하는 추세를 보이고 있으며 그 중 90% 이상을 Zerodev가 배포하는 등 압도적인 시장점유율을 차지하고 있는 상황이다. Zerodev가 지배적인 점유율을 차지하고 있는 이유는 Pimlico 케이스와 마찬가지로 Cyberconnect V3가 Zerodev 솔루션을 사용하고 있기 때문이다.
Paymasters (Optional)
Paymaster는 ERC4337 기반 수수료 로직을 처리하는 스마트 컨트랙트로, 사용자들의 가스비 대납부터 ERC20 토큰으로 가스비를 지불하는 방식까지 다양한 방법으로 설계할 수 있다. Paymaster는 일반적으로 UserOperation 가스비를 대납해주는 주체가 운영하며 EntryPoint에서 언급했던 검증 루프(verification loop) 과정에서 UserOperation을 받아들일지 말지 결정한 뒤 실행 루프(execution loop)에서 수수료 로직을 처리한다. 다만, UserOperations, Bundler, EntryPoint, SCW와 달리 Paymaster는 ERC4337 트랜잭션을 실행하는데 있어 필수적으로 도입해야 하는 컴포넌트는 아니다.
현재 Pimlico, StackUp, ZeroDev, Biconomy, Blocto 등 약 80여 곳에서 Paymaster 서비스를 출시한 상황이며 Paymaster별 가스비를 대납한 UserOperation 수 기준 번들러와 마찬가지로 Plimlico가 시장점유율 1위를 달리고 있다. 이들이 대납한 가스비 규모는 8월 17일 기준 $200K를 초과했다.
그 외에도 최근 글로벌 전자결제 처리 1위 기업 VISA가 Paymaster 서비스를 Goerli 테스트넷에 배포했다고 발표했다. 이는 온체인 전자결제 시장을 선점하기 위한 시도로 해석되며, 가상자산 시장에 대한 VISA의 입장을 엿볼 수 있는 대목이기도 하다. VISA Paymaster 서비스를 이용할 경우 사용자들은 온체인 활동에 필요한 가스비(수수료)를 일반적인 온라인 결제와 동일하게 VISA 카드(오프체인)로 간편하게 지불할 수 있을 것으로 보인다. VISA는 Paymaster 서비스 구축 과정에서 ETH Infinitism에서 개발한 Paymaster 샘플 컨트랙트를 활용했는데, Paymaster 사용 시 구체적인 트랜잭션 사이클은 다음과 같다 (아래 그림 참고):
- 사용자가 트랜잭션의 의도(calldata)와 최대 지불 비용(가스비 관련 파라미터)에 관한 정보가 담긴 UserOperation을 생성한다.
- 사용자 지갑이 UserOperation과 VISA 카드 자격 증명(credentials)을 오프체인 Paymaster 웹서비스에게 전달한다. 이 과정에서 Paymaster 웹서비스는 사용자에게 청구할 비용을 계산하고 제공받은 credentials를 기반으로 카드 결제를 승인할지 결정한다.
- Paymaster 웹서비스가 유효 기간이 설정된 디지털 서명을 사용자 지갑으로 전송한다.
- 지갑이 웹서비스로부터 수령한 디지털 서명과 온체인 주소를 UserOperation의 Paymaster 파라미터에 추가하고 이를 Paymaster 컨트랙트로 전송한다.
- Paymaster 컨트랙트가 데이터를 확인하고 이상 없으면 UserOperation을 실행한다. 디지털 서명이 잘못되었거나 유효 기간이 만료되는 등 잘못된 정보가 주어지면 트랜잭션을 거부한다.
VISA Paymaster 결제 과정, 출처: VISA
ETH Infinitism팀의 Paymaster 스니펫(snippet), 출처: 깃헙
Aggregator (Optional)
Aggregator는 다수의 UserOperation 서명을 하나의 디지털 서명으로 합쳐주는 스마트 컨트랙트다. Aggregator는 여러 개의 서명을 하나로 결합함으로써 calldata 비용을 절약하는데 도움을 준다.
4. ERC4337의 최대 수혜자는 롤업일 것으로 전망
4-1. UserOperations는 롤업에서 가장 높은 활성도를 보이는 중
Sixdegree Labs에 따르면 2023년 8월 17일 기준 전체 생성된 UserOperations 수는 91.7만 건, AA 기능이 탑재된 지갑 수는 38만 개다. 그 중 90% 이상의 트랜잭션과 지갑이 최근 두 달 사이에 생성되었는데, 계정 추상화에 대한 관심이 올 여름을 기점으로 폭발적으로 증가하고 있음을 알 수 있다.
ERC4337 관련 온체인 활성도가 급증한 데에는 EntryPoint 컨트랙트 배포, SCW SDK 출시, 번들러 및 Paymaster 서비스 출시 등 인프라가 비약적으로 발전한 까닭도 있겠으나, 그보다는 앞서 언급했듯 7월 26일 발표했던 CyberConnect V3 에어드랍에 따른 영향이 지배적이다. 실제로 CyberConnect V3 온체인 활성도는 7월 26일 에어드랍 소식과 8월 15일 에어드랍 클레임 시기 전후로 급증하는 모습을 보였다 (아래 그림 참고). 이러한 측면에서, 최근 급등세는 단기적인 움직임일 가능성이 매우 높으며 AA가 개화했다고 말하기에는 다소 이르다고 판단한다. 다만, chain agnostic한 통합 소셜 ID, 소셜 복구 기능, 가스비 대납 & 구독 (Paymasters) 시스템 도입, 수수료 지불의 수단으로 $CYBER 사용하는 등 프로토콜내 AA 관련 기능들을 많이 포함하고 ERC4337의 포문을 열었다는 측면에서 CyberConnect의 행보는 매우 유의미하다고 판단하며, 장기적으로는 인프라가 발전함에 따라 새로운 use case들이 기하급수적으로 증가할 것으로 기대하고 있다.
한편, 한 가지 흥미로운 점은 대부분의 온체인 활동이 베이스 레이어가 아닌 롤업과 L2체인 위에서 일어나고 있다는 것이다. 5월에 이르러 이더리움 베이스 레이어에서 발생한 UserOperations 수의 비중은 전체 대비 1% 채 되지 않지 않으며 폴리곤과 옵티미즘이 ERC4337 시장에서 지배적인 점유율을 차지하고 있다.
4-2. ERC4337관련 온체인 활동이 롤업에서 활발히 일어나는 주된 이유는 높은 가스비 때문
대부분의 ERC4337 관련 온체인 활동들이 롤업에서 일어나는 이유는 가스비 때문이다. ERC4337 트랜잭션(UserOperation)은 EOA가 아닌 컨트랙트 지갑을 사용하기 때문에 지갑을 생성하거나 토큰을 전송할 때 일반적인 트랜잭션 대비 가스비가 높게 발생하고, 그 결과 베이스 레이어에서는 사용자들이 감당할 수 없을 정도로 수수료가 크게 증가할 수 있다. Stackup에서 제공한 아래 표를 살펴보면, 베이스 레이어에서 ERC4337 트랜잭션을 생성할 때 지불해야 하는 예상 가스비는 EOA 대비 적게는 1.4배, 많게는 4배 이상 차이가 난다. 또한, EOA는 무료로 지갑을 생성할 수 있는 반면 ERC4337 지갑을 신규 생성하려면 대략 385K gas가 발생한다.
그러나 아무리 ERC4337 트랜잭션이 가스를 많이 소모하더라도 롤업에서는 비용 부담이 크게 낮아질 수 있다 (아래 그림 참고). ERC4337이 베이스 레이어보단 롤업 환경에서 활성화될 수밖에 없는 이유다.
4-3. 블록체인의 UX는 롤업 생태계를 중심으로 빠르게 개선될 것
일각에서는 트랜잭션 배칭(batching)과 서명 결합(Signature aggregation) 기술이 고도화된다면 베이스 레이어에서도 ERC4337 트랜잭션을 충분히 사용할 수 있을 것이라는 주장이 제기되고 있다. 위 주장이 틀린 것은 아니나, 이 경우 가스비가 저렴해지는 것은 롤업도 마찬가지다. 이와 관련하여 비탈릭 부테린도 데이터 압축(예: 옵티미즘 Bedrock 업그레이드)과 ERC4337 서명 결합 기술이 롤업의 가스비를 최대 7배 낮출 수 있을 것이라고 언급한 바 있다. 무엇보다, 올해 말 예정되어 있는 덴쿤 업그레이드를 통해 EIP4844(프로토-댕크샤딩)이 도입되어 롤업을 위한 별도의 데이터 저장 공간인 블롭(blob)이 생긴다면 UserOperations 비용은 매우 저렴해질 것으로 예상한다 (EIP4844이 롤업 경제에 끼치게 될 영향에 대해 구체적으로 이해하고 싶은 독자들은 ‘야 (EIP)4844, 너지?’ 리포트를 참고하길 바란다). 따라서, ERC4337은 향후에도 롤업에서 가장 적극적으로 활용될 가능성이 높으며, 이러한 측면에서 블록체인의 UX는 롤업 생태계를 중심으로 빠르게 개선될 것으로 판단한다.
출처: Vitalik Buterin
5. 맺으며
ERC4337은 하드포크 없이 계정 추상화를 도입하여 블록체인의 최대 pain point 중 하나인 사용자 경험을 획기적으로 개선하고자 하는 업그레이드 사항이다. ERC4337이 본격적으로 도입되면 블록체인 서비스들도 Web2에 가까운 UX를 구현하고 새로운 비즈니스 모델과 유스케이스들을 구축할 수 있을 것으로 기대된다. ERC4337를 UX혁신의 핵이라고 표현한 이유이기도 하다.