
지난 몇 년간 이더리움 주변에서 시간을 보낸 적이 있다면, "계정 추상화(account abstraction)"라는 표현을 들어봤을 것이다 — 종종 ERC-4337이라는 코드명과 함께 등장한다. 학술적으로 들리지만 그 이면의 아이디어는 진정으로 실용적이다. 즉, 당신의 이더리움 지갑은 단일 개인 키와 받아들이거나 말거나 식의 인터페이스가 아니라, 당신이 커스터마이즈할 수 있는 작은 소프트웨어 조각처럼 동작해야 한다는 것이다.
이 글에서는 ERC-4337이 실제로 무엇을 바꾸는지, 그것이 도입한 네 가지 새로운 전문 용어(UserOperation, EntryPoint, Bundler, Paymaster), 실제로 어떤 것을 가능하게 하는지, 그리고 SSP의 멀티시그 접근 방식과 어떻게 연결되는지를 설명한다. 스마트 컨트랙트에 대한 사전 지식은 필요 없다 — 암호화폐 지갑이 내부적으로 어떻게 작동하는지에 대한 호기심만 있으면 된다.
ERC-4337이 해결하려 한 문제
계정 추상화 이전에는 모든 이더리움 지갑이 이른바 외부 소유 계정(externally-owned account) — 즉 EOA였다. EOA는 매우 단순하다. 하나의 개인 키가 하나의 주소를 통제하고, 그 주소가 수행하는 모든 행동은 정확히 그 키로 서명되어야 한다.
이 단순함에는 날카로운 모서리가 따라온다.
- 복구 불가. 키를 잃으면 자금을 잃는다. "비밀번호를 잊으셨나요" 같은 링크도, 당신을 보증해 줄 신뢰할 만한 연락처도, 시간 잠금 해제도 없다. 키가 곧 계정이다.
- 묶음 처리 불가. 토큰을 승인한 다음 스왑하고 싶다고? 그것은 두 개의 별개 트랜잭션, 두 개의 별개 서명, 두 개의 별개 gas 지불이다. "이것들을 함께 하든가 둘 다 하지 말든가"라고 말할 방법이 없다.
- 네이티브 멀티시그 없음. 여러 명의 서명자를 원한다면 컨트랙트(예: Safe, 이전의 Gnosis Safe)를 배포한 다음, EOA가 그 컨트랙트로 트랜잭션을 보내게 해야 했다. 컨트랙트는 멀티시그였지만, 세상과 상호작용하는 계정은 여전히 그 아래의 단일 키 EOA였다. 사용자 경험은 일반 지갑에 비해 언제나 2등 시민이었다.
- gas는 항상 ETH로, 항상 송신자가 지불. 어떤 dApp도 당신의 gas를 대신 낼 수 없었다. USDC로 gas 지불도 없었다. 예외도 없었다.
개발자들은 정교한 컨트랙트 패턴으로 이러한 제약을 수년간 우회해 왔다. ERC-4337은 마침내 그들에게 표준화된 탈출구를 제공했다 — 이더리움의 베이스 프로토콜에 어떤 변경도 요구하지 않으면서 말이다.
ERC-4337이 도입하는 것
ERC-4337은 이더리움 자체가 프로토콜 수준에서 어떻게 작동하는지를 바꾸지 않는다 — 그것이 바로 영리한 트릭이다. 대신, 함께 작동하여 "스마트 컨트랙트 지갑을 1등 시민으로" 시뮬레이션하는 네 가지 새로운 역할을 전적으로 유저 스페이스에서 정의한다. 이 네 단어만 알면 표준 전체가 머릿속에서 정렬된다.
UserOperation. AA 지갑에서 원시 트랜잭션을 대체하는 새로운 "서명된 의도(signed intent)" 객체이다. EOA가 단일 키로 서명된 트랜잭션을 생성하는 반면, AA 지갑은 UserOperation을 생성한다 — "이 계정이 X를 하길 원하고, 여기 승인이 있고, 여기 지불 방법이 있다"고 말하는 구조화된 요청이다. UserOperation은 가령 "Alice에게 100 USDC를 전송하고, 이 두 기기의 서명으로 승인되었으며, dApp이 gas를 부담할 것"이라고 말할 수 있다.
EntryPoint 컨트랙트. 이더리움에 배포된 단일의, 표준적이고, 감사받은 스마트 컨트랙트로, UserOperations를 받아 어떤 AA 지갑에서 왔든 그 규칙에 따라 검증하고 결과 액션을 실행하는 방법을 안다. 모든 AA 지갑은 동일한 EntryPoint와 통신하며, 그것이 이 표준을 표준답게 만든다.
Bundler. 오프체인 행위자(전문화된 일종의 릴레이어라고 생각하라)로, 공용 mempool에서 UserOperations를 듣고, 여러 개를 함께 묶어 그 묶음을 단일 이더리움 트랜잭션으로 EntryPoint에 제출한다. Bundler는 네트워크에 실제 gas를 지불하고, 자신이 묶은 UserOperations로부터 환급받는다.
Paymaster. 사용자를 대신해 gas를 지불하겠다고 자원할 수 있는 선택적 컨트랙트이다. Paymaster는 "dApp이 당신의 gas를 지불한다"거나 "ETH 대신 USDC로 gas를 지불한다"를 가능하게 하는 존재다. Paymaster가 없으면 사용자의 AA 지갑이 자체 gas를 지불하고, 있으면 Paymaster가 개입한다.
이게 전체 어휘다. 나머지는 모두 장식이다.
계정 추상화가 실제로 가능하게 하는 것
위 네 가지 조각은 그것들이 무엇을 풀어내는지 보기 전까지는 추상적으로 들린다.
- gas 후원. dApp은 신규 사용자들이 무언가를 하기 전에 ETH를 확보할 필요가 없도록 그들의 gas를 대신 지불할 수 있다. 이는 온보딩에 있어 엄청난 변화다 — 신규 사용자는 먼저 법정화폐-ETH 온램프를 거치지 않고도 가입하고, NFT를 민팅하고, 첫 거래를 할 수 있다. Argent, Safe, ZeroDev 모두 오늘날 후원 흐름을 지원한다.
- 소셜 복구. 당신은 지갑을 구성하여, 만약 당신이 기본 키를 잃었을 때 "가디언"(친구, 가족, 금고 안의 하드웨어 기기)들의 정족수가 당신을 대신해 키를 교체할 수 있도록 할 수 있다. 복구 로직은 당신의 지갑 컨트랙트 안에 있다 — 중앙화된 수탁자가 당신의 돈을 보관하지 않지만, 단일 기기가 고장 나도 당신의 돈이 영구히 사라지지는 않는다.
- 세션 키. dApp은 당신의 지갑에 권한이 제한된 키를 요청할 수 있다. 하나의 애플리케이션과 하나의 액션 집합에 한정되고, 몇 시간 동안 유효하다. 당신은 메인 키로 한 번 서명해 세션을 허가하면, 그 후 dApp은 클릭마다 당신에게 묻지 않고 자기 샌드박스 안에서 행동할 수 있다. 게임 스튜디오들이 이 패턴을 매우 좋아한다.
- 묶음 액션. "이 토큰을 승인하고 그리고 스왑하라"가 하나의 서명, 하나의 UserOperation, 하나의 실행이 된다. 어떤 단계라도 실패하면 전체 묶음이 되돌려진다 — 더 이상 일관성 없는 상태에 갇힌 반쯤 끝난 트랜잭션은 없다.
- 커스텀 서명 체계. 패스키, 하드웨어 인클레이브, 또는 2-of-3 임계값 방식을 사용하는 지갑을 원하는가? 검증 로직은 지갑 컨트랙트 안에 있으므로, EOA 표준인 secp256k1 ECDSA뿐만 아니라 원하는 어떤 암호 기법이든 사용할 수 있다.
이것이 SSP의 멀티시그 모델과 어떻게 연결되는가
SSP Wallet은 동일한 많은 목표들에 도달하기 위해 다른 길을 택한다. SSP는 2-of-2 BIP48 멀티시그를 사용한다 — 두 개의 독립적인 키, 두 개의 독립적인 기기에 있으며, 어떤 트랜잭션이든 서명하려면 둘 다 필요하다. ERC-4337과 BIP48 멀티시그는 공통된 문제 — 어떤 단일 기기도 단일 장애점이 되어서는 안 된다 — 에 접근하는 서로 다른 메커니즘이다.
몇 가지 솔직한 비교:
- 공통점. 둘 다 고전적인 단일 서명 지갑의 "키 하나, 기회 하나" 실패 모드를 제거한다. 한 요소를 잃어도 다른 것으로 복구할 수 있다. 한 요소를 침해당해도(노트북의 멀웨어, 분실된 휴대폰), 공격자는 여전히 혼자서는 자금을 움직일 수 없다.
- 차이점. BIP48은 Bitcoin에 뿌리를 둔 멀티시그 표준으로, SSP가 지원하는 체인들 — Bitcoin, Ethereum, Litecoin 및 여러 기타 — 전반에 걸쳐 각 체인의 네이티브 멀티시그 프리미티브를 사용해 작동한다. ERC-4337은 이더리움 전용이며 스마트 컨트랙트 계층에 있어서, BIP48이 네이티브로 갖고 있지 않은 기능들(gas 후원, 세션 키)과 함께 제공되지만, 그 대가로 이더리움에만 국한된 범위와 컨트랙트 실행 오버헤드를 안고 있다.
- 오늘날 SSP의 위치. SSP는 BIP48 모델 위에 구축되었다. ERC-4337 지갑과 SSP 스타일 멀티시그는 적이 아니다 — 그것들은 상호 보완적인 도구이며 — 원칙적으로 BIP48 멀티시그 키는 AA 지갑 내부의 서명자로 사용될 수 있다. 그것은 현재 SSP의 주요 경로는 아니며, 우리는 출시하지 않은 통합을 약속하기보다는 오늘의 제품에 대해 명확하게 말하는 편을 선호한다.
만약 "AA 지갑을 써야 할까, 하드웨어 멀티시그를 써야 할까?"를 두고 저울질하고 있다면, 솔직한 답은 그것들이 서로 다른 트레이드오프로 겹치는 문제를 해결한다는 것이며 — 올바른 답은 당신이 어떤 체인을 신경 쓰느냐에 달려 있다.
솔직한 트레이드오프
계정 추상화는 진정한 한 걸음 전진이지만, 공짜는 아니며, 그렇지 않다고 말하는 사람은 뭔가를 팔고 있는 것이다.
- gas 비용이 더 높다. 모든 UserOperation은 EntryPoint와 당신의 지갑 컨트랙트에서 컨트랙트 코드를 실행한다. 이는 EOA가 서명한 트랜잭션보다 엄밀히 더 많은 계산이며, 곧 더 많은 gas를 의미한다. Bundling이 그 일부를 분산시키지만, 액션 하나당 기준으로 보면 일반적으로 EOA보다 더 많이 지불하게 된다.
- 복구는 복구 컨트랙트 만큼만 좋다. 소셜 복구와 가디언 체계는 강력한 기능이며 — 동시에 새로운 공격 표면이기도 하다. 복구 로직의 버그, 또는 너무 작게 판명된 가디언 집합은, EOA 키를 잃는 것만큼이나 치명적일 수 있다. 감사받은 지갑 구현을 고수하라.
- Paymaster는 신뢰 관계를 만든다. "dApp이 gas를 낸다"는 멋지게 들리지만, Paymaster가 당신의 UserOperations를 본다는 것을 의미하며, 원칙적으로 특정 트랜잭션의 후원을 거부할 수 있다. 그것은 "당신이 자기 gas를 내고, 아무도 당신을 막을 수 없다"와는 다른 신뢰 모델이다.
- 규모에서의 검증이 덜 되었다. EOA들은 10년이 넘는 기간 동안 수조 달러를 안전하게 지켜왔다. ERC-4337은 2023년 3월에 가동을 시작했고 아직 성숙해지는 중이다. 고가의 콜드 스토리지에는 보수적인 답(하드웨어 지갑, 멀티시그, 감사받은 컨트랙트)이 여전히 더 긴 실적을 갖고 있다.
더 깊이 들어가기
스마트 컨트랙트 없이 다중 키 보안이 어떻게 작동하는지에 대한 SSP 측 관점을 보려면, 2-of-2 멀티시그란 무엇인가?를 읽어보라.
UserOperation 구조체, EntryPoint 인터페이스, 그리고 각 설계 결정 뒤의 추론을 포함한 정식 기술 명세는 EIP 자체가 1차 출처이다: https://eips.ethereum.org/EIPS/eip-4337.