티스토리 뷰

web3 세계에 대한 사용자 경험을 개선하기 위해 ERC-4337 표준이 탄생했다. 기존 EOA기반 지갑(예: 메타마스크)을 사용하는 것과 스마트 지갑을 사용하는 것이 사용자 입장에서 어떤 차이점으로 다가올지 정리해보겠다.

 

개인적인 생각으로 web3 초심자(일반적인 사용자)가 소셜로그인/이메일 로그인으로 계정 추상화 기반의 스마트 지갑을 사용할 경우 경험할 수 있는 편의성은 크게 다음과 같다고 생각한다.

  • 익숙한 UI를 통해 지갑 생성
  • 손쉬운 지갑 복구
  • 가스비 대납

개인지갑으로 많이 사용하는 메타마스크의 경우 브라우저에 확장으로 설치하고 지갑을 만들어야 한다. 이 과정은 몇 분이내로 끝난다. 하지만 컴퓨터에 익숙치 않다면 브라우저에 확장을 설치하는 이 과정마저도 어려울 수 있다. 이에 반해 사이트에서 이메일과 소셜 로그인으로 지갑을 생성하는 것은 익숙하고 빠르다. 사이트에 접속 후 이메일 입력 후 otp 코드를 받고 인증하면 스마트 지갑 생성이 끝난다.

 

또한 계정 관리 및 백업을 위해 시드문구를 오프라인으로 안전하게 보관해야 하는데, 엄청난 규모의 자산을 운용하는게 아니라면 귀찮아서 그 누가 오프라인에 보관하려 하겠는가? 캡처하거나 메모장에 옮겨적는 것이 대부분일 것이다.(나의 경우만 하더라도 캡처화면으로 폴더에 저장한다.) 노트북을 새로 장만하고 브라우저에 다시 메타마스크를 설치하는 경우도 생각해보자. 이때 시드문구 또는 개인키를 찾지 못할 경우 지갑 복구는 영영 불가하다. 이에 반해 스마트 계정은 키(비밀번호)를 분실하거나 도난 당한 경우 계좌를 동결하고 소셜 복구 기능을 지원할 수 있다. 스마트 지갑은 개인키 중심의 단일 실패 지점을 없애고, 사용자의 부담 관리를 줄여준다.

 

스마트 지갑은 트랜잭션 수수료 지불 방식에도 변화를 가져온다. 기존 EOA 지갑 사용시에는 각 체인마다 고유의 네이티브 토큰으로 가스비를 지불해야 했다(이더리움은 ETH로, 폴리곤은 POL). 스마트 지갑은 실제 가스비를 네이티브 토큰으로 지불하는 paymaster를 설정하고, ERC-20 토큰(예: usdt, usdc)로 가스비를 지불할 수 있다. 또는 스폰서쉽 트랜잭션으로 아예 가스비를 지불하지 않고 트랜잭션을 제출할 수 있다. 

 

EOA지갑과 AA기반 스마트 지갑을 이용하는 사용자 흐름을 보면서 설명해보겠다.

 

먼저 EOA기반 지갑(예 : 메타마스크)을 사용하는 경우 사용자가 겪는 흐름은 다음과 같다. 

위 EOA 사용자 흐름에서 제일크게 다가오는 불편함은 시드/개인 키 분실 시 복구 불가와 tx 서명 승인 팝업창이 매 액션마다 뜨는것이다. 스마트 지갑은 이러한 불편함을 어떻게 해소했을까?

 

다음은 스마트 지갑(AA) 사용 시 사용자가 겪는 흐름이다. 스마트 지갑은 기존 EOA 지갑에서 일어나는 일들을 뒤로 숨겨서 사용자의 web3 경험을 단순화 한다.

사용자 경험 개선 사항을 보면 앞서 언급했던 EOA 지갑 사용시 불편하게 느낄만한 2가지인 개인키/시드문구 보관과 서명 팝업창을 각각 소셜 복구와 세션키 옵션으로 해결했음을 확인할 수 있다. 

 

web3 사용자 경험을 단순화한 스마트 지갑 뒤에는 복잡한 AA인프라(Bundler, EntryPoint, Paymaster)가 동작하고 있다. 스마트 지갑 사용 시 사용자가 제출한 트랜잭션(UserOp)을 AA인프라가 어떻게 처리하는지 간단하게 시퀀스 다이어그램으로 알아보자. ERC-4337 구조에 대한 숙지가 안되었다면 요기로

 

먼저 paymaster가 없는 경우이다.

1-3번은 사용자가 실행할 동작을 담은 UserOp을 만들고, 이걸 네트워크에 대신 제출해줄 Bundler에게 보내는 과정이다. 여러 사용자들로부터 수 많은 UserOp을 받은 Bundler는 각각을 시뮬레이션을 돌린 후 묶어서 번들화(packedUserOperation)한다. 이때 시뮬레이션은 EntryPoint 컨트랙트의 simulateValidation 함수를 rpc 메서드 요청을 통해 로컬에서 돌린다.

 

이후 네트워크에 배포되어 있는 싱글톤 컨트랙트인 EntryPoint의 handleOps를 호출함으로써 트랜잭션을 제출한다. 다음으로 EntryPoint가 사용자 스마트 지갑의 검증 루프와 실행 루프를 돌며 UserOp을 실행한다. 마지막으로 사용자가 EntryPoint가 스마트 지갑으로 부터 선취 해갔던 금액과, 스마트 지갑이 EntryPoint에 맡겨둔 자금으로 Bundler가 제출했던 가스비를 정산해준다. 5번 과정에서 EntryPoint가 스마트 지갑으로부터 가스비를 선취해갔으므로, UserOp 실행에 대한 가스비는 사용자가 지불하는 형태이다.

 

다음으로 Paymaster가 붙은 경우를 시퀀스 다이어그램으로 살펴보자. 이때 Paymaster가 사용자의 가스비를 전액 대납해주는 경우와 사용자가 ERC-20 토큰(예: USDT, USDC)으로 가스비를 지불하는 크게 2가지 상황으로 나눌 수 있다.

 

먼저 Paymaster가 사용자의 가스비를 전액 대납 해주는 상황을 살펴보자.

Paymaster가 가스비를 전부 대납하기 때문에, EntryPoint는 smart account로부터 어떠한 수수료도 선취하지 않는다. 이후 Bundler에게 정산되는 가스비는 EntryPoint의 Paymaster deposit에서 차감된다. 

 

다음으로 paymaster를 이용해 사용자가 usdc또는 usdt로 가스비를 지불하는 상황을 살펴보자.

postOp단계에서 paymaster가 사용자로부터 actualGasCost만큼 usdc를 징수한다. 이후 bundler에게 가스 정산은 EntryPoint.balanceOf(paymaster)로부터 차감되어 이루어진다.


References

계정 추상화: 과거, 현재, 미래

 

계정 추상화: 과거, 현재, 미래

계정 추상화 탐구: 핵심 개념 및 응용

metamask.io

ERC-4337: 계정 추상화

 

ERC-4337: 계정 추상화

개요 (Abstract) 합의 계층 프로토콜을 변경하지 않고도 계정 추상화를 가능케 하는 제안 새로운 프로토콜 기능 또는 새로운 트랜잭션 유형을 도입하는 대신, UserOperation이라는 상위 계층 수도-트랜

piatoss3612.tistory.com

ERC-4337: Account Abstraction Using Alt Mempool

 

ERC-4337: Account Abstraction Using Alt Mempool

Account abstraction without consensus-layer protocol changes, instead relying on higher-layer infrastructure.

eips.ethereum.org

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/09   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함