ERC4337, UX 혁신의 핵

user-image
김재원 (포뇨)
Research Team Lead/
Xangle
2023.08.21

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을 구현한다.