SevenX Ventures: 한 문장으로 이해하는 계정 추상화 - ERC4337이 이더리움 계정의 진화를 어떻게 가져오는가?
저자: Rui
많은 사람들이 말하듯이, 계정 추상화(AA) 기술, 특히 ERC-4337은 자가 관리 지갑의 사용자 경험을 근본적으로 변화시킬 것으로 기대되며, 대규모 채택을 위한 확장을 가능하게 합니다. 그러나 2023년 5월이 다가오면서, 우리는 이 표준이 아직 초기 단계에 있으며 기회와 위험이 공존한다는 것을 인식해야 합니다.
*업그레이드의 빠른 발전에 따라, 이 문서의 내용은 곧 구식이 될 수 있으며, 이 문서는 개인적인 견해에 기반하고 있습니다.
TL;DR
ERC4337:
AA 표준은 아직 초기 단계에 있지만, 많은 혁신적인 구축자들이 이를 더욱 발전시키기 위해 노력하고 있습니다. 생태계의 지원과 MetaMask와 같은 대형 제품의 보급이라는 큰 배경 속에서, 우리는 AA가 발전 속도를 가속화하고 흥미로운 결과를 낳을 것으로 예상할 수 있습니다.
L2:
AA의 채택은 L2 솔루션에서 다릅니다. 더 큰 L2(예: Optimism 및 Arbitrum)는 본래 AA를 지원하지 않지만, ZKSync와 Starknet는 지원합니다.
Bundler 서비스:
- 우리가 AA에 긍정적이라면, 모든 이더리움 호환 EVM 동등 L2가 원주율 AA를 지원하지 않기 때문에 Bundler 서비스는 네트워크에서 AA를 지원하는 필수 조건입니다.
- 오픈 소스 특성으로 인해 Bundler 서비스는 비독점적이며, 이는 수익화의 길을 어렵게 만듭니다. 네트워크의 안전성과 안정성을 보장하기 위해서는 다양한 Bundler 서비스가 필요합니다.
- 개인 Bundler는 특정 요구에 맞춰 프라이버시, 보안 및 기타 기능을 맞춤화하여 수익을 창출할 수 있습니다.
Paymaster 서비스:
- Paymaster 서비스는 상대적으로 집중화되어 있으며( Bundler 서비스와 비교하여), 계약은 오픈 소스지만 백엔드는 폐쇄적입니다.
- Paymaster 서비스는 수익 모델을 가지고 있으며, 법정 화폐 예치, 환전, 브릿지, 자동 결제, 세션, 후원 수수료 등과 결합하여 결제 시나리오를 강화하여 dApp의 유용성을 높일 수 있습니다.
AA 지갑 및 SDK:
- AA 지갑은 제품 관점에서 평가할 수 있으며, 여기에는 키 관리 시스템, 소셜 복구, 가스 요금 후원, 멀티 체인 계정 동기화 및 지원되는 블록체인 등이 포함됩니다.
- AA의 장점은 원활한 로그인 경험을 제공하는 것뿐만 아니라(웹3 인증은 호스팅 방식으로 구현 가능) 복잡하고 맞춤화된 체인 상의 상호작용에서 dApp에 많은 이점을 제공할 수 있습니다.
- BD는 이 전투의 핵심입니다. 대부분의 지갑은 Defi, GameFi를 목표로 하며 생태계 지원을 얻고 대형 dApp을 설득하며 돌파구를 찾기 위해 노력하고 있습니다.
- 수익화 모델은 더 깊이 탐구할 필요가 있습니다. To Business(To B) 모델은 많은 수익을 올리지 못할 수 있으며, 자신의 사용자를 축적하지 못할 수 있지만, To Customer(To C) 모델은 높은 가치의 시나리오를 찾아 규모에 기반하여 수익을 창출해야 합니다. 통합된 교환 및 브릿지 기능은 수익을 창출할 수 있지만, 핵심은 지속 가능한 모델을 찾는 것입니다.
암호화 지갑 이해하기
분류
이더리움 네트워크에는 두 가지 유형의 계정이 존재합니다: 외부 계정(Externally Owned Account, EOA) 지갑, 예를 들어 MetaMask와 계약 계정(Contract Account, CA), 예를 들어 Safe입니다.
EOA 지갑과 계약 지갑 간의 주요 차이점은 제어 방식에 있습니다. EOA 지갑은 개인 사용자가 개인 키를 통해 제어하지만, 계약 지갑은 스마트 계약에 의해 제어됩니다. EOA 지갑은 더 간단하고 개인 암호화폐 보유량을 관리하는 데 사용되지만, 계약 지갑은 더 복잡한 규칙을 가질 수 있으며 특정 목적에 사용될 수 있습니다.
고충
EOA 지갑 사용자는 개인 키 보호에 주의해야 합니다. 개인 키에서 발생하는 모든 오류나 부주의는 자금 손실을 초래할 수 있으므로 EOA 지갑의 사용 비용이 비교적 높고 위험도 큽니다. 경험이 풍부한 암호화폐 사용자조차도 한 번의 실수나 부주의로 인해 계정에 대한 제어를 잃을 수 있습니다. 복잡한 작업, 가스 요금을 건너뛰거나 가스 요금 대납이 불가능하며 지갑 기능이 제한적이라는 점은 사용자에게 문제를 일으킵니다.
스마트 계약 지갑은 일부 문제에 대한 해결책을 제공하지만, 이더리움은 현재 모든 작업을 ECDSA로 보호된 EOA의 거래에 패키징해야 합니다. 이는 추가 거래 수수료를 발생시키고 21000 가스 비용을 더 소모하게 되며, 잠재적인 중앙 집중화 위험과 복잡한 작업이 뒤따릅니다: 사용자는 두 개의 계정을 관리하고 별도의 EOA에 ETH를 예치하여 가스 요금을 지불해야 하며, 또는 중앙 집중화된 중계 시스템에 의존해야 합니다.
이러한 고충은 AA 새로운 표준인 ERC-4337을 탄생시켰습니다.
ERC4337 제안
CA의 문제
현재 이러한 문제는 계약 지갑으로 해결할 수 있지만, 이더리움은 모든 것을 ECDSA로 보호된 EOA의 거래에 패키징해야 하며, 이는 다음과 같은 결과를 초래합니다:
- 추가 거래 수수료: 각 사용자 작업은 EOA에 의해 시작되어야 하므로 추가로 21000 가스 비용이 소모됩니다.
- 복잡성 및 중앙 집중화: 사용자는 별도의 EOA에 ETH를 예치하여 가스 요금을 지불하고 두 계정의 잔액을 관리해야 하며, 또는 중계 시스템에 의존해야 하며, 이러한 중계 시스템은 일반적으로 중앙 집중화되어 있습니다.
수년 동안, 사람들은 이더리움 기반 블록체인에서 계정 추상화를 구현하려고 여러 번 시도했습니다, 예를 들어 EIP-86 및 EIP-2938. 그러나 이러한 방법은 모두 합의 계층을 수정해야 하므로 작동하지 않았습니다.
4337 메커니즘
ERC-4337은 UserOperation이라는 더 높은 수준의 의사 거래 객체를 도입하여 계정 추상화를 구현하며, 이는 롤업 개념과 유사합니다. 다행히도 이 표준은 합의 계층을 변경하지 않고도 계정 추상화를 구축할 수 있게 해줍니다.
EIP 4337의 모듈화 설계는 스마트 계약 지갑의 계정 추상화 기능을 여러 포트로 나누었습니다:
Bundler:
- Bundler는 EOA입니다. 모든 거래가 EOA에 의해 시작되어야 하므로, Bundler가 있으면 사용자는 EOA 개인 키를 생성하고 기억하지 않고도 스마트 계약 지갑 거래를 트리거할 수 있습니다.
- Bundler의 역할: UserOperation을 검증하고, UserOperation 객체 집합을 단일 "번들 거래"로 패키징합니다. 검증된 UserOperation 내용을 공용 또는 개인 메모리 풀에 방송합니다.
- Bundler는 다음과 같은 방법으로 경제적 이익을 얻을 수 있습니다: UserOperation을 실행한 후, 최고 우선 수수료와 실제 가스 비용 간의 차액을 수익으로 가져갑니다. 일반 거래의 중계기와 유사하게, Bundler는 번들 거래 내의 UserOperation을 정렬하여 MEV를 얻을 수 있습니다.
진입점:
- 진입점은 모든 Bundler가 UserOperation을 실행하기 위해 호출해야 하는 전역 계약입니다. 진입점은 Bundler와 스마트 계약 지갑 간의 중개 역할을 합니다.
- handleOp로 검증 및 실행: handleOp 함수는 UserOperation을 입력 매개변수로 사용하여, 먼저 체인에서 UserOperation을 검증하고 지정된 스마트 계약 지갑 주소로 서명되었는지 확인하며, 지갑이 Bundler에 대한 보상을 위한 충분한 가스 비용을 가지고 있는지 확인합니다. 검증이 성공하면 함수 서명에 따라 입력 매개변수를 실행합니다. 스마트 계약 지갑에 예치된 토큰은 Bundler에 가스 비용을 지불합니다: Bundler가 EOA를 사용하여 handleOp를 트리거할 때 가스 비용이 발생합니다. 스마트 계약 지갑은 자신의 잔액으로 가스 비용을 지불하거나 Paymaster에 지불을 요청할 수 있습니다. 실패할 수 있는 경우: 가스 비용 부족, 검증 단계 실패; 충분한 가스 비용이 있더라도 UserOperation 실행 단계가 실패할 수 있습니다, 예를 들어 런타임 오류. 실행이 성공하든 실패하든, 진입점 계약은 Bundler에 가스 비용을 지불하여 handleOp 기능을 트리거합니다. 진입점 계약은 스마트 계약 지갑이 담보로 토큰을 추가하거나 인출할 수 있는 기능을 제공합니다.
스마트 지갑:
스마트 계약 지갑의 주 계약은 UserOperation의 검증 및 실행 단계를 분리합니다. 이를 분리함으로써 Bundler는 체인 외부에서 UserOperation을 검증하여 악의적인 거래를 필터링할 수 있으며, 가스 비용을 지불할 필요가 없습니다.
validateOp 함수에서 검증 단계를 정의합니다: validateOp를 처음 호출할 때, Bundler는 체인 외부에서 검증을 시뮬레이션하고 UserOperation의 서명을 검증하며 스마트 계약 지갑이 충분한 가스 잔액을 가지고 있는지 확인합니다; 두 번째 validateOp 호출은 진입점 계약에서 UserOperation을 실행하기 전에 체인에서 검증을 수행합니다.
Paymaster:
- Paymaster는 스마트 계약 지갑의 가스 추상화 논리를 정의하며, ERC20 동질화 토큰을 사용하여 이더리움 가스 비용을 지불하고 가스 비용이 없는 거래를 포함합니다.
- Paymaster는 dApp에 의해 배포된 스마트 계약으로, Paymaster의 validatePaymasterOp를 트리거할 수 있습니다.
지갑 공장:
- 지갑 공장은 스마트 계약 지갑을 생성하는 공공 계약입니다. initCode에 지갑 공장 주소와 새로운 스마트 계약 지갑의 매개변수가 삽입되면, Bundler는 해당 매개변수를 가진 스마트 계약을 생성하기 위해 적절한 Wallet Factory를 트리거합니다. 인기 있는 Wallet Factory 코드는 철저히 검토되므로, Wallet Factory를 사용하여 지갑을 생성하는 것이 더 안전합니다.
- Wallet Factory는 진입점에서 ETH를 스테이킹해야 하며, UserOperations에 대해 양호한 서비스를 지속적으로 제공해야 Bundler로부터 더 많은 트래픽을 얻을 수 있습니다.
- 사용자는 initCode로 채워진 UserOperation을 제출하여 Bundler에 CA 지갑 생성을 요청할 수 있습니다.
- 사용자는 특정 맞춤 매개변수를 가진 Wallet Factory를 선택하여 CA 지갑을 맞춤화할 수 있습니다.
서명 집계기:
- 서명 집계기는 여러 거래의 서명을 바이트로 집계하여 거래를 더 빠르게 검증하고 실행할 수 있도록 합니다. 서로 다른 스마트 계약 지갑은 서로 다른 서명 알고리즘을 사용하므로, 먼저 동일한 서명 알고리즘으로
UserOperations
를 집계해야 합니다. - 가스 비용 절감: 체인 상의 암호화 계산은 많은 가스 비용을 소모하므로, 집계 서명 솔루션(예: BLS)은 체인에서 검증할 때 가스 비용을 절감할 수 있습니다.
- Bundler는 여러 서명 집계기 계약을 사용하여 여러 집계 서명을 생성하며, 한 번에 하나의
UserOperations
만 검증하는 것이 아닙니다. - Bundler는
UserOperation
배열, 집계 서명 및 집계기 주소를 진입점에 전달하며, 각UserOperation
그룹 회의는 해당 서명 집계기의validateSignature
함수를 호출합니다. - 검증이 통과하면, Bundler는 스마트 계약 지갑에서 이
UserOperation
세트를 실행합니다. - 집계기는 진입점 계약에서 이더리움을 스테이킹하고, 양호한
UserOperation
서비스 기록을 유지해야 합니다.
AA의 장점
- 가스 추상화:
가스 추상화는 무가스 거래를 포함하며, 임의의 ERC20 토큰을 사용하여 가스 비용을 지불합니다. 이 논리는 Paymaster 계약에서 또는 중계기를 통해 실행될 수 있습니다. AA의 경우, 많은 스마트 계약 지갑이 EIP 4337 호환 Paymaster 계약을 구현할 수 있으며, 진입점 계약에서 토큰을 스테이킹하여 사용자가 가스 비용을 지불하는 데 도움을 줄 수 있습니다.
- 소셜 복구:
개인 키가 분실되거나 유출된 경우, 사용자는 새로운 키를 합법적인 지갑 소유자로 승인할 수 있습니다. 소셜 로그인 및 소셜 복구 논리는 일반적으로 지갑의 주 계약에서 정의됩니다. 이메일, 다중 서명, MPC 또는 SWIE(이더리움 로그인 사용)와 같은 다양한 방법을 사용할 수 있습니다.
- 거래 배치:
거래 배치는 스마트 계약 지갑만의 기능으로, 지갑 사용자가 단일 체인 거래에서 여러 거래를 실행할 수 있도록 합니다.
- 크로스 체인 브릿지 및 연결 브릿지 통합:
현재 많은 지갑이 제3자 공급업체와 협력하여 법정 화폐 충전 및 인출 경로와 크로스 체인 브릿지를 지갑에 통합하고 있습니다. 이러한 충전 경로와 크로스 체인 브릿지는 가스 추상화의 결제 계약(Paymaster)과 추가 통합될 수 있습니다.
- 모듈화 설계:
AA의 가장 큰 장점 중 하나는 모듈화 서비스로, Bundler, Paymaster 및 기타 부분을 유연하게 조합할 수 있다는 것입니다.
AA의 단점
- 수수료(아마도) 상대적으로 높음:
ERC-4337을 사용하여 간단한 송금을 수행하는 비용은 전통적인 지갑(일반적으로 EOA로 불림)을 사용하는 것보다 훨씬 높습니다, 왜냐하면 전자는 계약을 호출해야 하기 때문입니다.
그러나 롤업 네트워크에서 ERC-4337을 사용하여 간단한 송금을 수행하는 것은 EOA보다 더 저렴할 수 있습니다, 왜냐하면 서명을 집계하여 메인넷의 데이터 양을 줄일 수 있기 때문입니다.
- 현재 최종 확정되지 않은 표준:
확장된 거래 확장성은 공격 벡터 증가, 새로운 표준으로의 이전 시 발생할 수 있는 알려지지 않은 오류 또는 보안 위험, 모든 거래가 적절히 서명되고 검증되도록 보장하기 위해 강력하고 안전한 전역 진입점 계약이 필요하는 등의 도전 과제를 초래합니다.
Layer 2
✅ 및 ❌는 원주율 AA를 지원하는지 여부를 나타냅니다.
Optimism: ❌
Optimism 버전 1에는 스마트 계약 지갑의 계정 추상화를 구현하기 위한 세 개의 OVM 작업 코드가 있습니다. 그러나 일관성과 보안을 고려하여 버전 2에서는 이러한 작업 코드가 제거되었으며, 계정 추상화를 지원한다는 공식 성명이 없습니다.
Arbitrum: ❌
현재 Arbitrum에서 몇 가지 스마트 계약 지갑이 구축되고 있지만, 계정 추상화를 지원한다는 공식 성명이 없습니다.
Starknet: ✅
Starknet은 검증 및 실행 기능을 가진 스마트 계약 계정만 있으며, 모든 계정은 서명을 검증하고 가스 비용을 보장하기 위해 이러한 기능을 구현해야 합니다. Starknet은 검증 기능이 외부 계약 상태를 호출하는 것을 금지하여 실행되지 않은 거래를 방지합니다. 그러나 Starknet은 이더리움과 약간 다르며, UserOperations, Paymaster와 유사한 거래 비용 추상화 프로토콜이 부족하고, 새로운 계약을 생성하기 위해 토큰 잔액이 있는 계정이 필요합니다. 또한, 검증된 거래가 실패하면 Starknet의 정렬자는 가스 비용을 청구할 수 없지만, 이더리움은 가능합니다.
zkSync: ✅
zkSync는 EOA와 계약 계정을 구분하지 않습니다. 그 계정 모델은 EIP 4337과 유사하며, 독립적인 validateTransaction 및 executeTransaction 함수를 포함합니다. Paymaster 인터페이스는 validateAndPayForPaymasterTransaction 및 postOp 함수를 포함합니다. 그러나 두 가지는 여전히 차이가 있으며, 검증 과정에서 배포된 외부 계약 및 외부 저장소를 호출하는 능력이 있습니다. Paymaster는 거래 검증 중에 외부 저장소를 호출할 수도 있습니다.
AA 인프라:
현재 Stackup, Etherspot, Candide, Infinistism, Pimlico와 같은 몇 가지 우수한 프로젝트가 인프라 구축을 시도하고 있습니다.
Bundler 서비스:
구축자:
- Stackup의 Golang 구현
- Candide의 Python 구현
- Infinitism의 TypeScript 구현
- Etherspot의 Skandha --- TypeScript 구현
일부 합의:
- 공익 서비스
대다수의 Bundler의 오픈 소스 특성은 비독점적이고 비경쟁적입니다. 모든 RPC 엔드포인트는 오픈 소스 코드를 복사하여 Bundler를 실행할 수 있습니다.
- 수익화 어려움
Bundler를 실행하는 RPC 엔드포인트가 API 키를 통해 서비스 사용료를 청구하더라도, Bundler 서비스는 Paymaster와 같은 다른 인프라보다 수익화가 더 어렵습니다, 왜냐하면 Paymaster는 제3자 충전 공급업체 또는 DeFi 프로토콜 집계 공급업체와 협력하여 수수료 차액을 쉽게 벌 수 있기 때문입니다.
- 중요한 인프라
UserOperation을 검증하고 실행하기 위해 가능한 한 많은 Bundler가 필요하여 더 나은 분산화를 실현해야 합니다. 현재 제3자 Bundler 서비스 제공업체는 Stackup과 eth-infinitism뿐이므로, 우리는 이러한 Bundler 서비스 제공업체가 더 필요합니다.
- 메커니즘
Bundler는 메시지를 전달하고 사용자 작업을 전파하며, 이는 공유 메모리 풀과 유사하며 구체적인 사항에 대해 합의할 필요가 없습니다. Bundler는 쓰레기 정보를 필터링하는 중요한 기능을 가지고 있으며, 경제적 이유로 인해 Bundler는 메모리 풀의 안전성을 보장하기 위해 가능한 한 많은 모니터링을 원합니다.
Bundler 서비스의 차별점:
- Bundler 서비스는 일반 인프라일 수도 있고, 지갑을 위해 특별히 구축될 수도 있습니다. 지갑 프로젝트는 가장 기본적인 Bundler를 우선 구축할 수 있으며, 제3자 공급업체는 다양한 시나리오를 위해 모듈화된 Bundler를 구축해야 합니다.
- 이더리움 노드와 유사하게, Bundler 서비스는 단일 실패 지점을 방지하고 생태계에 이익을 주기 위해 다양한 프로그래밍 언어로 구현됩니다.
- Bundler 서비스는 개인 메모리 풀과 공공 메모리 풀을 지원하며, 개인 메모리 풀에 대한 맞춤형 옵션을 제공합니다.
Paymaster 서비스
- Bundler 서비스에 비해 Paymaster 서비스는 상대적으로 중앙 집중화되어 있으며, 계약은 오픈 소스지만 백엔드는 폐쇄적입니다.
- Paymaster 서비스는 수익 모델을 가지고 있으며, 법정 화폐 예치, 환전, 브릿지, 자동 결제, 세션, 후원 수수료 및 기타 기능과의 결합을 통해 dApp의 유용성을 개선할 수 있습니다.
AA 지갑 및 SDK:
제품 평가
- 키 관리 시스템:
- 다중 서명 논리(안전): 2/3 및 3/5와 같은 다중 서명 논리만 구현 가능;
- 간단한 권한 관리(순서): 키에 가중치를 설정한 다음 계정 작업에 대한 임계값을 설정할 수 있습니다.
- 역할 기반 권한 관리(Unipass): 키에 가중치와 역할을 설정할 수 있습니다. 서로 다른 역할은 서로 다른 작업을 수행할 수 있습니다. 각 역할에도 해당 임계값이 있습니다. 이 임계값을 초과하면 해당 역할의 권한을 수행할 수 있습니다.
- 소셜 복구 방법
- 가스 요금 후원: 자체 중계기를 구축하거나 Bundler + Paymaster 설정
- 멀티 체인 계정 동기화
- 멀티 체인 주소 통합
- 지원되는 블록체인
비즈니스
- 비즈니스 모델: To b/ To B+To C / ToC
- dApps와의 협력: 각 체인에서 스테이블코인 또는 DeFi와 같은 대형 인프라형 dApp과 협력
- 실용성: NFT 마켓플레이스, 런치패드 등 통합
- 외부 지원: 이더리움 재단 또는 기타 유명 벤처 캐피탈 기관의 지원