저자: 빅터-크리스티안 플로레아, 아웃라이어 벤처스, 0xjs@골든 파이낸스 번역
소개
블록체인 기술은 오래 전부터 존재해왔고 시장은 지난 10년간 기하급수적으로 성장했지만, 현재의 높은 진입 장벽을 해결하는 것이 네이티브 암호화폐 거래를 주류 개념으로 전환하는 것이 시장 확장의 핵심입니다. 다행히 계정 추상화와 같은 새로운 패러다임은 일반 사용자가 블록체인 기술을 시작하고 사용하는 과정을 간소화함으로써 암호화폐의 대중적 채택을 촉진할 수 있습니다.
EVM 개발자를 대상으로 하는 ERC-4337 계정 추상화 구현은 관리되지 않는 지갑을 스마트 컨트랙트로 생성하여 간편한 지갑 복구, 서명 없는 거래, 팀 지갑과 같은 기능을 사용할 수 있게 해줍니다. 이 표준의 핵심 혁신은 스마트 계정을 독립적으로 생성할 수 있어 별도의 외부 소유 계정(EOA)이나 컨트랙트 계정 없이도 거래가 가능하다는 점입니다. 스마트 계정은 사용자가 수행하는 작업을 나타내는 유저 오퍼레이션을 사용합니다. 이러한 사용자 작업은 단일 진입점을 통해 번들링, 검증 및 실행되므로 계정과 자금을 관리할 때 다양한 사용자 지정이 가능합니다.
세이프, 니어 월렛, 아젠트, 블로토와 같은 혁신가들은 이미 이 새로운 스마트 컨트랙트 기능을 활용하고 있으며, ERC-4337은 표준화를 위한 엔드포인트이지만 아직 해야 할 일이 남아있습니다. 이 분야의 주요 업체들은 특정 요구와 다양한 블록체인 생태계에 적합한 계정 추상화 변형을 설계했으며, 그 결과 선택할 수 있는 SDK와 라이브러리의 종류가 다양해졌습니다.
계정 추상화 사용 사례
기술적인 측면을 살펴보기 전에 계정 추상화를 통해 특히 비네이티브 사용자의 웹 3.0 진입 경험을 개선하는 데 도움이 되는 가장 흥미로운 사용 사례를 간략하게 살펴보겠습니다.
1. 지갑 복구
암호화폐 업계에서 가장 큰 과제 중 하나는 보안이며, 사용자는 수탁자에 의존하거나 키를 보호해야 합니다. 스마트 계정 공간에서는 도우미나 개인 키에 의존할 필요가 없다는 점에서 기존 모델과 보안이 다릅니다. 스마트 계정 소유자는 여러 단체(디바이스, 개인 또는 타사 서비스)를 지갑 관리자로 지정할 수 있습니다.
이 혁신적인 기능은 보호자가 거래에 서명하여 새로운 액세스 자격 증명을 할당할 수 있어 자격 증명 분실에 직면한 사용자에게 강력한 안전망을 보장합니다. 중요한 것은 이 복구 프로세스가 자산에 대한 사용자의 제어권과 소유권을 우선시하여 보안과 접근성 사이의 미묘한 균형을 유지한다는 점입니다. 이 정교한 프레임워크는 훨씬 더 뛰어난 복원력과 사용자 제어 기능을 갖춘 디지털 자산 관리의 새로운 시대를 예고합니다.
2. 대량 거래
탈중앙화 거래소에서 토큰 거래는 일반적으로 두 개의 개별 거래가 포함되며, 각 거래는 개인 키 서명을 통해 사용자의 승인을 받아야 하지만 복잡한 웹3.0 거래는 세 번 이상의 승인이 필요할 수 있습니다. 스마트 계좌는 사용자가 여러 거래를 일괄 처리할 수 있는 획기적인 솔루션을 도입하여 사용자의 비용을 낮추고 웹 2.0 애플리케이션에서 기대하는 방식으로 DeFi 거래를 간소화합니다. 이러한 특정 사용 사례의 좋은 예로, 앰비어 월렛은 AA를 활용해 사용자의 트랜잭션을 일괄 처리할 수 있도록 지원합니다. 작업 수행 비용은 외부 소유 계정(EOA)을 사용하는 것보다 높지만, 여러 트랜잭션이 수행될 때 트랜잭션당 가격은 훨씬 낮습니다.
3. 스폰서 사용자 트랜잭션
계정 추상화에는 스폰서 트랜잭션의 가스비 전용 스마트 컨트랙트인 페이마스터 개념도 도입되었습니다. 이는 사용자 지갑에 있는 모든 토큰을 거래 수수료로 받을 수 있고, 은행 카드를 사용하여 법정화폐로 결제하거나 전체 금액을 보조할 수 있는 새로운 수준의 맞춤화를 디앱에 도입하여 사용자 경험을 개선하고 불필요한 마찰 지점을 제거하여 사용자에게 원활한 경험을 제공할 수 있게 해줍니다. 좋은 예로 지갑이 없더라도 이메일을 통해 암호화폐를 보낼 수 있는 작은 프로토콜인 Arcana Network의 SendIt을 들 수 있으며, ERC4337을 활용하여 거래 수수료를 후원하고 새로운 스마트 컨트랙트 계정을 생성할 수 있습니다. 이 특정 사용 사례의 또 다른 중요한 사용 사례는 아래와 같이 사용자가 법정 화폐 카드를 사용하여 온체인 가스 요금을 지불할 수 있도록 하는 Visa의 제안입니다.
계좌 추상화를 통한 디지털 트레이딩 재고
< span style="font-size: 14px;">계정 추상화를 통한 디지털 거래의 재고
4. 자동화된 거래
디앱의 모든 거래를 수동으로 시작하거나 서명해야 하는 EOA와 달리 스마트 계정은 자동화의 가능성을 도입합니다. 스마트 계정을 통해 사용자는 특정 토큰에 대한 액세스, 지출 한도, 기간, 가스 한도, 특정 작업에 대한 사전 정의 트리거 등 다양한 매개변수를 설정할 수 있습니다. 예를 들어, 사용자가 다음 한 시간 동안 15분마다 DEX가 대신 거래소를 실행하도록 허용하고 싶을 때 한 번만 서명하면 이후에는 자동으로 거래가 실행되도록 설정할 수 있습니다. 이러한 종류의 실행은 TWAP 거래를 제공하는 탈중앙화 거래소인 CowSwap에서 볼 수 있으며, 필요한 사용자 작업을 일정 시간 동안 실행되는 부분으로 분산합니다. 스마트 계좌 자동화의 잠재력은 사실상 무한하며, 사용자에게 기존 EOA의 한계를 뛰어넘는 수준의 맞춤화와 효율성을 제공합니다.
기술 구성 요소
자체적인 사내 구성 요소를 출시하거나(그림 1), SDK 또는 라이브러리를 사용하고 해당 분야의 다른 플레이어가 유지 관리하는 기존 인프라를 활용하는 등 다양한 방법으로 기술을 활용할 수 있습니다. 시작하기 위한 다양한 옵션을 나열했으며, 특정 솔루션 사용의 추가 사용 사례와 이점을 살펴보겠습니다.
계정 추상화를 활용할 때 어떤 구현을 선택하든 그 핵심 요소를 이해하는 것이 중요합니다. 사용자 작업은 스마트 컨트랙트 계정에서 거래하려는 사용자의 의도를 나타내는 트랜잭션과 유사한 객체입니다. 기존 트랜잭션과 달리 사용자 작업은 별도의 메모리 풀로 향하는 엔트리포인트, 번들러, 페이마스터, 애그리게이터와 같은 추가 필드를 도입합니다. 특히 사용자 작업은 인텐트 기반이므로 사용자가 기존 입력의 특수성에서 벗어난 결과 중심 트랜잭션에 대한 메타데이터를 포함할 수 있습니다.
다음 핵심 구성 요소인 번들러는 UserOperations를 지원하는 데 핵심적인 역할을 하는 특수한 유형의 이더넷 노드입니다. 사용자 작업은 대체 메모리 풀을 능동적으로 모니터링하는 번들러 네트워크로 연결됩니다. 이러한 번들러는 여러 사용자 작업을 단일 트랜잭션으로 결합한 다음, 사용자를 대신해 블록체인에 패키징하여 제출합니다. 이 서비스에 대한 대가로 보상을 받습니다. 이는 ERC-4337 기능 구현의 핵심 요소인 웹 3.0의 각 참여자가 자신의 외부 소유 계정(EOA)을 가질 필요성을 없애는 데 의의가 있습니다.
사용자 작업은 사용자 작업의 유효성 검사 및 실행을 수행하는 싱글톤 스마트 컨트랙트인 엔트리포인트 컨트랙트로 전송됩니다. 검증 과정에는 지갑에 잠재적인 최대 가스 사용량을 감당할 수 있는 충분한 자금이 있는지 평가하는 것이 포함되며, 이는 사용자 작업의 가스 필드에 의해 결정됩니다. 충분한 자금이 없는 트랜잭션은 거부됩니다. 스마트 콘트랙트는 트랜잭션을 실행하고 스마트 콘트랙트 계정(SCA)에서 자금을 차감한 후 적절한 양의 네이티브 토큰으로 번들러에게 가스를 상환합니다.
개발자가 사용자를 대신하여 가스 수수료를 후원하거나 네이티브 토큰 이외의 다양한 토큰을 사용하여 수수료를 지불할 수 있도록 하려는 경우도 있습니다. 이를 위해 가스비 결제 정책을 관리하도록 설계된 페이마스터라는 컨트랙트를 활용할 수 있습니다. 이렇게 하면 사용자가 블록체인과 상호작용하기 위해 네이티브 블록체인 토큰을 보유해야 할 필요성을 효과적으로 제거할 수 있습니다.
다른 AA 도구 소개
1. SDK 없는 솔루션
위와 같이 설명합니다. 타사 AA 솔루션에 의존하고 싶지 않다면, 직접 설정을 실행하고 관련된 스마트 컨트랙트와 프로세스를 완전히 제어하고 호스팅할 수 있습니다. 이더리움의 경우 여러 솔루션이 제안되고 있으며, 스마트 계정 컨트랙트, 엔트리 포인트 컨트랙트, 페이마스터 측면에서 가장 인기 있는 솔루션은 eth-infinitism입니다. 이러한 컨트랙트를 배포하고 올바르게 자금을 조달하는 것 외에도, 사용자 행동을 수신하고 이를 엔트리 포인트 컨트랙트로 리디렉션하는 번들러를 실행해야 합니다. 개발자를 돕기 위해 커뮤니티 회원들은 간단한 npm 패키지를 사용하여 하드햇 환경에서 로컬로 계정 추상화를 설정하는 솔루션을 개발했습니다.
개발자가 직접 모든 인프라를 설정하는 데는 많은 작업이 필요하기 때문에 대부분의 사람들은 즉시 사용 가능한 솔루션을 제공하고 개발자로부터 모든 복잡성을 추상화하는 다양한 라이브러리와 회사에 의존하기로 선택합니다.
2. Pimlico와 permissionless.js
자바스크립트 라이브러리를 활용하여 애플리케이션에 계정 추상화를 추가하려는 경우 가장 효과적인 솔루션은 permissionless.js입니다. viem을 기반으로 구축되며 개발자는 Pimlico에서 제공하는 AA 제품군, 번들러, 번들러 기능을 활용할 수 있습니다. viem을 기반으로 구축되며 개발자는 핌리코가 제공하는 AA 제품군, 번들러 및 페이마스터 API를 사용하여 고도로 사용자 정의 가능한 모듈식 애플리케이션을 구축할 수 있으며, 모두 20개 이상의 EVM 호환 체인을 지원합니다. 스마트 계정과 트랜잭션 데이터가 생성되었다고 가정했을 때, Permissionless.js와 Pimlico의 계정 추상화 SDK를 사용하여 트랜잭션을 전송하는 방법은 다음과 같습니다:
const txHash = await smartAccountClient. sendTransaction({
to: "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
value: parseEther("0.1"),
maxFeePerGas. gasPrices.fast.maxFeePerGas,
maxPriorityFeePerGas: gasPrices.fast.maxPriorityFeePerGas,
});
3. Alchemy 계정 키트
Alchemy의 계정 키트는 가장 개발자 친화적인 계정 추상화 도구 중 하나입니다. 다른 솔루션과 마찬가지로, Alchemy는 aa-sdk 외에도 간단한 스마트 계정 인터페이스인 라이트 계정 솔루션, 번들러 API, 자체 페이마스터 스마트 컨트랙트를 활용하여 개발자가 사용자 행동을 후원하거나 사용자가 가스 결제 시 ERC-20을 사용할 수 있도록 하는 가스 매니저 솔루션을 제공합니다. 가스 결제 시 ERC-20 토큰. 스마트 계정과 트랜잭션 데이터가 생성되었다고 가정했을 때, Achemy의 계정 툴킷을 사용하여 트랜잭션을 전송하고 트랜잭션 해시를 검색하는 방법은 다음과 같습니다:
const userOperation = await smartAccountClient. sendUserOperation({
uo: {
target: "0xTARGET_ADDRESS",
data: uoCallData,
},
});
const txHash = await smartAccountClient.waitForUserOperationTransaction(uo);
4. Biconomy SDK
Biconomy SDK는 계정 추상화를 통한 구축에 있어 가장 많은 기능을 제공합니다. 이를 통해 개발자는 다양한 기능을 사용자 정의하고, 스마트 컨트랙트 계정에 대한 다중 서명 구성을 설정하고, 번들러 및 페이마스터 서비스를 제공할 수 있습니다. 이 기능은 고도로 모듈화되어 있으며 경쟁사에 비해 고유한 기능을 갖추고 있습니다. 개발자는 일련의 제약 조건으로 뒷받침되는 게이트웨이를 생성하여 서명자가 각 트랜잭션에 서명할 필요 없이 특정 SCA 트랜잭션이 발생할 수 있도록 할 수 있습니다. 이 특별한 기능은 사용자 경험을 향상시키고 사용자가 완전한 웹2.0 여정을 진행하는 동안 백그라운드에서 블록체인에서 작동하는 애플리케이션의 토대를 마련합니다. Biconomy의 AA 솔루션은 2,500만 건의 메타 트랜잭션을 처리하고 280만 명의 사용자를 웹3.0 공간으로 끌어들이는 데 도움을 준 SDK로, 이 분야에서 가장 인기 있는 솔루션 중 하나입니다. 스마트 계정과 트랜잭션 데이터가 생성되었다고 가정했을 때, Biconomy SDK를 사용하여 트랜잭션을 전송하고 트랜잭션 해시를 검색하는 방법은 다음과 같습니다:
const userOpResponse = await smartWallet.sendTransaction({
to: toAddress,
data: transactionData,
});
const { transactionHash } = await userOpResponse. waitForTxHash();
결론
요약하면, 계정 추상화라는 개념은 오래 전부터 존재해 왔지만 개발자가 이를 대규모로 채택하는 데 도움이 되는 문서와 도구는 여전히 제한되어 있습니다. 그럼에도 불구하고 계정 추상화는 웹3 개발의 가장 큰 이정표 중 하나이며 새롭고 흥미로운 사용 사례를 위한 토대를 제공합니다.
현재 계정 추상화 기능을 사용하려면 주로 타사에 의존해야 하지만, 모듈화 패러다임과 생태계의 탈중앙화로 인해 점점 더 많은 개발자가 이러한 도구 중 일부를 애플리케이션에 통합하고 심지어 직접 스마트 컨트랙트 및 오프체인 유틸리티를 구축하는 데까지 나아가고 있습니다. 을 구축하여 이 흥미로운 신기술을 활용하고 있습니다. 사용자 진입을 간소화하고 암호화폐의 대중화에 기여해야 할 필요성은 여전히 크며, 계정 추상화는 현재 이러한 필요성을 충족하는 최고의 도구로, 프로젝트가 사용자 모르게 블록체인 기술을 활용할 수 있게 해줍니다.