크립토 지갑은 키 관리, 계정, 인터페이스라는 세 가지 핵심 레이어로 구성된다. 각 레이어는 고유한 과제와 혁신을 통해 전반적인 지갑 사용 경험을 형성하고 있다.
키 관리 방식은 단순 프라이빗 키 기반 EOA에서 더욱 정교한 솔루션으로 발전하고 있다. SSS는 키를 여러 조각으로 나누고, TSS는 키 재구성 없이 다중 서명을 가능하게 하며, TEE는 하드웨어 수준의 보안을 제공한다. Privy, Particle Network, Turnkey 등이 각각의 접근 방식들을 구현 사례를 제시하고 있다.
계정 추상화는 복잡한 계정 구조를 프로그래밍 가능한 인터페이스로 전환하여 블록체인과의 상호작용을 훨씬 쉽게 만들고 있다. Abstract의 글로벌 월렛이 보여주듯이, 가스비 없는 거래, 소셜 계정 복구, 맞춤형 보안 설정 등을 통해 일반 사용자도 블록체인 기술을 쉽게 이용하는 방안을 제시하고 있다.
체인 추상화는 서로 다른 블록체인들의 존재를 사용자로부터 숨김으로써 크로스체인 상호작용의 복잡성을 해결하고 있다. One Balance의 신뢰할 수 있는 계정 시스템은 탈중앙화와 보안성을 유지하면서도, 사용자가 여러 체인에서 자산을 관리하고 어떤 토큰으로도 결제할 수 있는 방법을 보여준다.
여지껏 데스크톱 중심으로 개발된 크립토의 개발 환경에서 나아가 모바일 친화적인 인터페이스는 크립토의 대중화를 위한 핵심 요소가 되고 있습니다. Zora와 같은 플랫폼들은 블록체인의 복잡성은 감추면서도 정교한 모바일 경험을 제공하고 있다.
지갑 개발의 미래는 보안성을 유지하면서도 복잡성을 줄이는 데 초점을 맞추고 있습니다. 단일 프라이빗 키에서 벗어나 소셜 로그인을 도입하고, 블록체인의 핵심 가치는 유지하면서도 Web2 앱 수준의 사용자 경험을 제공하는 것이 더 넓은 범위의 사용자를 유입시키기 위한 과제로 남아있다.
지갑은 크립토 어플리케이션에 있어서 단순한 하나의 기능을 넘어 사용자 여정 전반을 담당하는 핵심적인 역할을 수행한다. 대부분의 크립토 어플리케이션에서 사용자 여정은 지갑을 설치하는 것에서 시작하며, 온보딩 단계를 지난 이후에도 주요 행동마다 트랜잭션을 검증하기 위해 지갑과 상호작용을 거쳐야 한다.
또한 지갑은 사용자의 전환 비용을 높이는 가장 큰 요인 중 하나로 작용한다. 새로운 지갑을 만들고 거기에 자산을 보충하는 과정은 사용자로 하여금 많은 수고와 노력, 그리고 위험에 대한 감수를 필요로 한다. 그만큼 새로운 지갑으로 사용자를 온보딩하기 위해서는 많은 고객 획득 비용(CAC)이 소요되지만, 반대로 한번 온보딩된 사용자가 이탈하지 않도록 하는 락인 효과로도 작용한다.
하지만 이처럼 높은 중요도에도 불구하고, 크립토 어플리케이션은 오랫동안 최악의 UX를 가진 것으로 비판받아왔다. 특히 처음 크립토 어플리케이션을 사용하는 단계에서 사용자들은 프라이빗 키와 퍼블릭 키, 시드 문구 등 익숙하지 않은 개념들로 인해 진입에 큰 어려움을 겪는다. 블록체인이 구축한 신뢰 없는 환경을 누리기 위해서는 그에 걸맞은 불편함을 계속 감수해야만 하는 것일까?
다행히도 오랜 염원에도 불구하고 더딘 발전 속도를 보이던 지갑 스택은 최근 크립토 어플리케이션의 혁신이 가속화되고 사용자 경험에 대한 중요성이 증가하면서 발전이 가속화되는 양상을 보이고 있다. 특히 소셜 로그인이나 생체 인증과 같은 친숙한 인증 방식의 도입, 계정 추상화를 통한 가스비 스폰서십, 모바일에 최적화된 UI/UX 등을 통해 Web2 수준에 근접한 사용자 경험을 제공하려는 시도가 늘어나고 있다.
블록체인의 지갑을 구성하는 주요 기술적 인프라 레이어는 크게 3가지로 나눌 수 있다:
키 관리: 사용자가 키를 생성하고 저장하며 복구하는 전반적인 과정을 다룬다. 여기에는 기술 스택 선택, 암호 생성 방식, 키 접근 방식 등이 포함된다. MPC, SSS 등을 포함해 소셜 로그인이나 모바일 환경에서의 Passkey 활용 등이 대표적인 키 관리를 위한 솔루션의 예시이다.
계정: 블록체인 네트워크에서 사용자를 식별하고 자산을 관리하는 계정의 구현 방식을 다루는 레이어다. 가장 기본적인 형태인 EOA부터 스마트 컨트랙트 기반의 SCA(Smart Contract Account)까지 다양한 형태가 있다. 각 계정 타입은 가스비 대납, 다중 서명, 트랜잭션 제한 등 서로 다른 기능을 제공할 수 있으며, 이는 지갑이 수행할 수 있는 기능과 활용성을 결정한다.
인터페이스: 사용자가 블록체인과 상호작용하기 위해 직접적으로 접하는 인터페이스 레이어를 의미한다. 브라우저 익스텐션, 모바일 앱, 웹 인터페이스 등 다양한 형태로 구현될 수 있으며, 트랜잭션 서명, 자산 관리, 디앱 연결 등 실제 사용자의 행동이 이루어지는 접점을 제공한다. 메타마스크와 같은 외부 지갑과의 연동 인터페이스나 Privy, Dynamic과 같은 임베디드 월렛 형태가 대표적인 예시다.
각각의 레이어들은 고유한 특성과 의사 결정 변수를 지니고 있으며, 이들이 어떻게 구현되고 조합되느냐에 따라 전체적인 지갑의 사용자 경험이 결정된다. 이번 글에서는 지갑의 각 레이어를 구성하는 요소와 최근의 주요 구현 사례들을 살펴보며, 사용자 친화적인 크립토 어플리케이션을 위한 지갑 구축에 필요한 요소들을 탐구해보고자 한다.
Source: WebAuthn and Passkey, Key Management for Daily Crypto Users
키 관리 레이어에서 결정해야 하는 의사 결정 트리에는 크게 키 생성과 저장, 그리고 인증 방식에 따른 3가지 레이어로 나뉠 수 있다.
키 생성 (Key Generation): 어떤 방식으로 키가 생성되고 트랜젝션의 사이닝에 이용되는 지에 따른 구분을 의미한다. 가장 일반적으로 프라이빗 키를 이용한 방식이 사용되고 있으나, 최근 MPC나 SSS 등을 통해서 여러 주체가 키의 생성 및 서명에 참여하는 방식으로 보안과 편의성을 강화하는 방식의 적용이 보편화되고 있다.
저장 (Storage): 생성된 키나 키 조각을 어디에 보관할지를 결정한다. 이는 보안성, 접근성, 비용, 탈중앙화 정도 등 다양한 요소의 영향을 받는다. AWS와 같은 중앙화된 클라우드 서버를 활용하는 방식부터, 탈중앙화 스토리지나 개별 저장 공간을 사용하는 방식, 더 나아가 하드웨어 월렛까지 각기 다른 특성을 가진 다양한 옵션이 존재한다.
인증 (Authentication): 사용자가 스스로를 인증하고 키에 접근하기 위한 방법을 의미한다. EOA를 사용하는 기존 지갑에서는 비밀번호 방식이 가장 일반적으로 사용되었으나, 사용자 경험의 중요성과 모바일 친화적인 어플리케이션이 더욱 많이 등장하면서 소셜 로그인이나 Passkey와 같은 인증 방식이 널리 활용되고 있다.
이처럼 키 관리의 각 영역에는 어플리케이션의 목적, 구현 복잡도, 비즈니스 요구사항에 따라 수많은 설계 요소가 존재하며, 이에 따라 다양한 방식으로 구현될 수 있다. 현재 시장에 존재하는 솔루션들을 구분 짓는 가장 큰 특징은 키의 생성과 인증 방식에 있다. 이는 보안과 사용성이라는 두 가지 핵심 요소를 어떻게 조화롭게 구현하느냐의 문제와 직결되기 때문이다.
Source: Wallets and architectures, part 2: Walking the decision tree
전통적으로 암호화폐의 지갑을 관리하는 방식은 개인이 모든 권한과 책임을 가지고 프라이빗 키를 저장 및 이를 통해 인증하는 방식(i.e. EOA)이었다. 단일 프라이빗 키를 사용자가 직접 관리하는 방식은 아직도 널리 통용되고는 있지만, 처음 크립토 지갑을 접하는 사용자에게 높은 진입장벽을 형성할 뿐 아니라, 보안이 취약한 개인에 의해서 관리되기 때문에 해킹의 위협에 취약하고 분실 시 복구가 어렵다는 단점이 있다.
최근의 키 관리 솔루션들은 크게 세 가지 방식으로 발전하고 있다. SSS(Shamir's Secret Sharing)를 통해 키를 여러 조각으로 나누어 관리하는 방식, MPC(Multi-Party Computation)를 활용한 다자간 서명 방식, 그리고 TEE(Trusted Execution Environment)를 이용한 보안 실행 환경 기반의 방식이다. 각각의 접근 방식은 서로 다른 장단점을 가지고 있으며, 이어지는 내용에서 각 방식의 특징과 구현 사례를 자세히 살펴보고자 한다.
SSS는 1970년대에 최초로 고안된 비밀 공유 알고리즘으로, 하나의 비밀키를 여러 개의 조각으로 나누어 관리하는 방식이다. 이는 단일 개인이나 기관이 전체 키를 보관함으로써 발생할 수 있는 위험을 분산시키는 동시에, 필요할 때 키의 복구나 사용이 가능하도록 하는 것이 핵심이다. SSS에서는 전체 키 조각 중 정해진 수 이상의 조각이 모여야만 원래의 키를 재구성할 수 있으며, 그 이하의 조각으로는 키에 대한 어떠한 정보도 얻을 수 없다는 특징이 있다.
실제 구현에 있어 SSS는 사용자의 디바이스에서 프라이빗 키를 생성하고 이를 여러 조각으로 분할한 뒤, 이 조각들을 사용자와 서비스 제공자 등 여러 주체에게 분산하여 저장한다. 트랜잭션 서명이 필요한 경우에는 필요한 수의 키 조각을 모아 일시적으로 원래의 키를 재구성하여 사용하게 된다. 이러한 방식은 키의 보안성을 높이면서도 기존 블록체인 시스템과의 호환성을 유지할 수 있다는 장점이 있다.
장점:
검증된 안정성: 수십 년간 사용되어 온 비밀 공유 알고리즘으로, 충분한 검증을 거쳤으며 다수의 오픈소스 구현체가 존재한다.
유연한 키 분할: 필요한 만큼의 조각 수와 복구에 필요한 최소 조각 수를 자유롭게 설정할 수 있다.
모듈성: 개별 키 조각의 저장 방식을 시스템 전체의 변경 없이도 독립적으로 업그레이드할 수 있다.
확장성: 대부분의 연산이 클라이언트 측에서 이루어지기 때문에 사용자 수가 증가해도 성능 저하가 적다.
단점:
키 재구성 과정의 취약성: 트랜잭션 서명을 위해 키를 재구성하는 순간에 단일 실패 지점이 존재하여 보안상 취약점이 발생할 수 있다.
검증의 한계: 키 조각의 삭제나 초기 키 생성의 정확성을 암호학적으로 검증하기 어렵다.
복잡한 구현: 안전한 키 분할과 재구성을 위해서는 복잡한 구현 과정이 필요하며, 특히 클라이언트 측 환경의 보안이 중요하다.
Case Study: Privy
Source: Sharing the secret
SSS 기반의 지갑 솔루션을 제공하는 대표적인 사례로 Privy를 꼽을 수 있다. Privy의 임베디드 월렛은 보안성이 확보된 독립된 iframe 내에서 동작하며, 암호학적으로 안전한 난수 생성기(CSPRNG)를 통해 니모닉을 생성한다. 이 니모닉으로부터 지갑의 퍼블릭 키(월렛 주소)와 프라이빗 키가 생성된다.
이후 생성된 프라이빗 키는 SSS 알고리즘을 통해 세 개의 조각으로 분할된다:
디바이스 조각 (Device Share): 사용자의 디바이스에 저장되며, 브라우저 환경에서는 로컬 스토리지에 보관된다.
인증 조각 (Auth Share): 암호화되어 Privy 서버에 저장되며, 사용자가 로그인할 때 복구된다.
복구 조각 (Recovery Share): Privy의 키 관리 시스템이나 사용자가 직접 보관할 수 있다.
이때 완전한 프라이빗 키는 메모리에서만 일시적으로 존재하며 어떤 형태로도 영구 저장되지 않는다. 또한 키를 복구하기 위해서는 최소 두 개의 조각이 필요하도록 설계되어 있다. 이는 다양한 시나리오에서 유연한 키 복구를 가능하게 하는데, 구체적으로 다음과 같은 상황에 따른 조합이 가능해진다:
디바이스 조각 + 인증 조각: 가장 일반적인 사용 방식으로, 사용자가 소셜 계정 등 기존의 로그인 방식으로 Privy 서버에 인증하면 인증 조각이 복호화되어 키를 재구성할 수 있다.
디바이스 조각 + 복구 조각: Privy 서버에 접근할 수 없거나 기존 로그인 수단(예: 소셜 계정)을 잃어버린 경우에도 복구 조각을 통해 키에 접근할 수 있다.
인증 조각 + 복구 조각: 새로운 디바이스에서 계정에 접근해야 하는 경우, 이 두 조각을 결합하여 새로운 디바이스 조각을 생성할 수 있다.
Privy의 유연한 복구 메커니즘은 다양한 상황에서도 사용자가 자신의 지갑에 안전하게 접근할 수 있도록 보장하며, 동시에 충분한 보안성도 유지할 수 있다는 장점이 있다.
TSS는 다자간 연산(MPC)의 한 형태로, 여러 참여자가 하나의 공유된 비밀에 대한 서명을 분산하여 생성하고 이를 결합하여 암호화 작업을 수행하는 방식이다. SSS와 달리 TSS에서는 키를 재구성하는 과정 없이 각 참여자가 가진 서명 조각을 결합하여 작업을 수행할 수 있다는 것이 큰 특징이다.
TSS는 여러 노드가 연산에 참여하는 대규모 네트워크 방식부터, 사용자와 서비스 제공자 간의 단순한 이중 서명 방식까지 다양한 형태로 구현될 수 있다. 참여자들은 비밀 키를 직접 알 필요 없이 서명 생성에 참여할 수 있으며, 이를 통해 키의 보안성을 높이면서도 유연한 서명 프로세스를 구현할 수 있다.
장점:
향상된 보안성: 키를 재구성하는 과정이 없어 SSS의 단일 실패 지점 문제를 해결할 수 있다.
유연한 구조: 참여자 수와 필요한 서명 수를 자유롭게 설정할 수 있어 다양한 신뢰 모델을 구현할 수 있다.
단점:
기술적 성숙도: 비교적 최근에 실용화된 기술로, 검증된 구현체가 적고 대규모 운영 사례가 부족하다.
확장성 제약: TSS 기반 시스템은 참여자 간 통신이 필요해 처리 속도가 느리며, 특히 이더리움의 ECDSA에서는 더욱 비효율적일 수 있다.
구현 복잡성: 여러 참여자 간의 통신과 조정이 필요해 구현이 복잡하고 운영 비용이 높을 수 있다.
요약하자면 TSS는 SSS의 단일 실패 지점 문제를 해결할 수 있는 강력한 대안으로 주목받고 있지만, 현재는 성능과 구현의 복잡성 문제로 인해 다소 부족한 확장성을 가지고 있다는 제약이 있다.
Case Study: Particle Network
Source: Particle Network Docs
Particle Network는 MPC-TSS 기술을 활용하여 사용자 친화적인 지갑 솔루션을 제공하는 대표적인 사례다. 특히 2/2 TSS 방식을 도입하여 프라이빗 키의 생성부터 저장, 사용에 이르는 전 과정에서 키가 단일 장소에 집중되지 않도록 설계되었다.
Particle Network의 TSS 구현에서는 두 개의 독립적인 키 조각이 생성되어 서로 다른 위치에 분산 저장된다. 한 조각은 사용자의 로컬 환경에 저장되고, 다른 한 조각은 Particle의 신뢰 실행 환경(TEE)에 보관된다. 중요한 점은 각각의 조각만으로는 전체 키에 대한 어떠한 정보도 얻을 수 없으며, 서명 생성 시에도 키를 재구성하지 않고 두 조각을 결합하여 작업을 수행한다는 것이다.
추가적인 보안 계층으로 사용자는 마스터 비밀번호를 설정할 수 있는데, 이는 로컬에 저장된 키 조각을 암호화하는 데 사용된다. 이를 통해 소셜 로그인만으로는 달성하기 어려운 보안성을 확보하면서도, 다른 기기에서도 안전하게 지갑을 복구할 수 있게 된다.
현재 Particle Network는 솔라나와 EVM 기반 체인들 모두에 대해 MPC 기반의 서명을 지원한다. 이를 통해 Particle Network는 체인의 종류에 구애받지 않으면서도 안전하고 사용하기 쉬운 비수탁형 키 관리 시스템을 제공하고 있다.
TEE는 앞서 살펴본 SSS나 MPC와는 완전히 다른 접근 방식을 취한다. TEE는 보안이 확보된 독립적인 실행 환경(엔클레이브)에서 프라이빗 키와 관련된 모든 작업을 수행하는 방식이다. 이러한 신뢰성은 Intel SGX나 AWS Nitro Enclaves와 같은 플랫폼을 통해 하드웨어와 소프트웨어 수준에서 보장된다.
TEE 기반 시스템에서는 권한이 부여된 코드가 격리된 CPU와 메모리 자원을 가진 원격 엔클레이브에서 실행되기 때문에, 외부에서의 모니터링이나 간섭을 받지 않는다. 엔클레이브는 작업이 올바르게 수행되었음을 증명하는 인증서를 생성할 수 있으며, 이를 통해 사용자는 자신의 비밀키가 안전하게 처리되고 있음을 검증할 수 있다. 이는 키 관리에 있어 단순하면서도 강력한 플랫폼을 제공한다. SSS나 TSS와 같이 복잡한 키 분할이나 다자간 연산이 필요하지 않으면서도, 하드웨어 수준의 보장을 통해 안전한 키 관리가 가능하다.
장점:
강력한 보안성: 하드웨어 수준의 격리를 통해 높은 수준의 보안을 제공한다.
검증 가능성: 모든 작업이 의도된 대로 수행되었음을 암호학적으로 증명할 수 있다.
효율적인 성능: TSS와 달리 네트워크 통신이 적어 비교적 빠른 처리가 가능하다.
단점:
하드웨어 의존성: 특정 하드웨어나 벤더에 대한 의존도가 높아 중앙화 또는 검열의 위험이 있다.
보안 취약점: 엔클레이브 자체의 보안 이슈가 발생할 경우 전체 시스템이 위험해질 수 있다
TEE는 하드웨어 기반의 보안을 통해 키 관리 문제에 대한 실용적인 해결책을 제시한다. SSS보다 단순하고 TSS보다 효율적인 구현이 가능하지만, 하드웨어 플랫폼에 대한 의존성은 주의해야 할 요소다.
Case Study: Turnkey
Source: Turnkey Docs
Turnkey는 모든 보안 중요 작업을 TEE 내에서 처리하는 것을 핵심 보안 정책으로 삼고 있다. 이들의 시스템에서는 키 생성, 서명, 정책 엔진 등 보안에 민감한 모든 서비스가 보안 엔클레이브 내에서 실행된다.
Turnkey의 아키텍처는 크게 두 부분으로 구성된다:
Host: 일반적인 AWS 가상 머신으로, 네트워크 트래픽을 수신하고 엔클레이브를 호출하는 기본적인 어플리케이션이 실행된다. 이는 엔클레이브와 외부 시스템 사이의 완충 지대 역할을 하며, 엔클레이브 운영에 관한 메트릭스와 기타 운영 정보를 수집하는 계층으로 작동한다.
Enclave: 외부와의 연결이 완전히 차단된 환경으로, 오직 호스트와의 가상 시리얼 연결과 자체 보안 보조 프로세서만을 가진다. AWS에서는 이를 Nitro Security Module(NSM)이라 부른다. 이 환경에서는 Turnkey의 엔클레이브 운영 체제인 QuorumOS(QOS)와 그 위에서 동작하는 보안 어플리케이션이 실행된다.
이러한 구조를 통해 Turnkey는 자사와 사용자들에게 모든 보안 중요 시스템이 정확히 의도된 대로만 동작한다는 것을 증명할 수 있다. 엔클레이브는 영구 저장소나 대화형 접근, 외부 네트워킹이 없는 고도로 제한된 컴퓨팅 환경에서 동작하며, 이를 통해 최고 수준의 보안성을 제공한다.
블록체인 기술이 발전하고 더 많은 사용자들에게 도달하면서, 기술의 복잡성을 단순화하고 추상화하는 과정이 필요해지고 있다. 특히 지갑은 사용자가 블록체인과 상호작용하는 핵심 인터페이스로서, 프라이빗 키 관리, 가스비 지불, 트랜잭션 서명 등 생소한 개념들을 처리해야 하는 진입 장벽이 존재한다.
이러한 기술의 추상화 과정은 우리가 사용하는 대부분의 IT 기술에서도 찾아볼 수 있다. 우리는 인터넷을 사용할 때 TCP/IP 프로토콜이나 DNS 시스템을 이해할 필요가 없고, 스마트폰으로 통화를 할 때도 GSM이나 LTE 통신 방식을 알 필요가 없다. 복잡한 기술이 성숙기에 접어들수록, 그 내부 구조는 사용자에게 보이지 않게 추상화되는 것이다.
이번 장에서는 지갑의 사용자 경험을 개선하기 위한 두 가지 핵심적인 추상화 개념을 살펴본다. 첫째는 계정 추상화(Account Abstraction)로, 복잡한 블록체인 계정 구조를 단순화하고 프로그래밍 가능하게 만드는 방식이다. 둘째는 체인 추상화(Chain Abstraction)로, 여러 블록체인 네트워크 간의 상호작용을 자연스럽게 만드는 접근 방식이다.
기존의 EOA는 사실상 특별한 기능이 따로 존재하지 않는, 말 그대로 주소이자 서명 수단에 불과했다. 한 마디로 계정 레벨에서 프로그래밍 가능한 기능을 부여할 수 있을 만한 수단이 존재하지 않았다. 하지만 계정 추상화의 개념이 처음으로 소개된 이후 계정 차원에서 사용자의 편의를 위한 기능적인 요소들이 제시되기 시작했다.
계정 추상화의 개념이 처음으로 대두된 직후에는 블록체인이 가진 불편한 사용자 경험을 해소할 수 있는 강력한 이니셔티브로 큰 기대를 받았다. 하지만 복잡한 구현과 비싼 가스비 그리고 보편적인 EOA와 연동되지 않는다는 한계로 인해 상용적인 솔루션으로 자리잡기 까지는 예상보다 많은 시간이 소요되었다.
하지만 계정 추상화도 이제는 기대감의 정점과 환멸의 계곡 단계를 지나 상용화에 점차 가까워지는 단계로 접어든 것으로 보인다. 특히나 최근에 등장하는 소비자 대상 어플리케이션들의 경우, 라이트한 유저 입장에서 더 이상 지갑의 존재를 거의 알아차리지 못한 채로 사용할 수 있는 수준에 도달한 경우도 어렵지 않게 접할 수 있다. 이는 기존 크립토 사용자 층을 넘어 일반 사용자의 채택을 앞당길 수 있다는 점에서 매우 고무적이다.
계정 추상화는 이제 특수한 기능을 넘어 크립토 전반에 걸쳐 보급이 일어나고 있다. 점차 더 많은 롤업들이 계정 추상화를 프로토콜 레벨에서 통합해 최적화된 사용자 경험을 제공하고자 시도하고 있으며, WaaS(Wallet as a Service)들 또한 점차 완성도 높은 임베디드 지갑을 선보이고 있다. 또한 다가오는 이더리움 Pectra 업그레이드는 EIP-7702를 통해 메인넷 차원에서 기존 EOA를 마치 스마트 컨트랙트 계정(SCA)처럼 사용할 수 있는 스펙을 포함시키기도 했다.
Case Study: Abstract
Source: Abstract Global Wallet
Abstract는 모든 어플리케이션에서 공통으로 사용할 수 있는 범용 임베디드 지갑인 Abstract Global Wallet (AGW)을 출시했다. AGW는 단순히 특정 어플리케이션에서만 사용할 수 있는 지갑이 아닌, Abstract 플랫폼의 모든 어플리케이션에서 사용할 수 있는 통합 지갑 솔루션이다. 이는 사용자가 어느 한 어플리케이션에서 로그인한 계정으로 다른 어플리케이션의 데이터와 자산에도 자유롭게 접근할 수 있어야 한다는 필요성에서 시작되었다.
Abstract는 기존 EOA 지갑보다 더 높은 수준의 보안성과 유연성을 제공하는 스마트 컨트랙트 지갑을 생성하기 위해 네이티브 계정 추상화(Native Account Abstraction)를 도입했다. 이는 모든 계정을 스마트 컨트랙트로 처리하여 동일한 트랜잭션 생명주기를 따르도록 하는 방식이다. 기존 이더리움에서는 EOA와 스마트 컨트랙트 계정이 병렬적으로 존재하여 서로 다른 방식으로 처리되었지만, Abstract의 네이티브 계정 추상화에서는 모든 계정이 동일한 방식으로 처리되므로 기존 EOA를 가진 사용자와 새롭게 AA 지갑을 생성하는 사용자 모두 최적의 사용자 경험을 누릴 수 있다는 장점을 가지고 있다.
AGW는 EOA와 AA를 통해 생성되는 SCA의 통합을 위해 2단계 계정 생성 프로세스를 도입했다. 먼저 사용자가 이메일, 소셜 로그인, 패스키 등 익숙한 방식으로 로그인하면 백그라운드에서 EOA 지갑이 생성된다. 그 다음 이 EOA 주소를 승인된 서명자로 등록하여 스마트 컨트랙트 지갑이 배포된다. 이러한 방식은 기존 블록체인 지갑의 복잡한 생성 과정을 사용자에게 노출시키지 않으면서도, 블록체인의 장점을 그대로 활용할 수 있게 해준다.
Abstract의 네이티브 계정 추상화는 zkSync의 표준을 따르고 있으며, 그 핵심 요소는 다음과 같다:
IAccount 표준 인터페이스: 모든 스마트 컨트랙트 계정이 필수적으로 구현해야 하는 메서드를 정의한다. 이를 통해 계정의 동작 방식을 표준화하고 일관성을 확보한다.
DefaultAccount 변환: MetaMask와 같은 EOA 지갑도 트랜잭션 처리 과정에서 자동으로 IAccount를 구현한 DefaultAccount로 변환된다. 이를 통해 기존 EOA도 SCA의 고급 기능을 활용할 수 있다.
페이마스터 지원: 모든 계정이 다른 계정의 가스비를 대신 지불하거나 ETH 대신 다른 ERC-20 토큰으로 가스비를 지불할 수 있다. 이를 통해 새로운 사용자의 진입 장벽을 크게 낮출 수 있다
이러한 구조를 통해 Abstract는 사용자가 EOA 생성부터 스마트 컨트랙트 지갑 배포까지의 과정을 의식하지 않고도 자연스럽게 고급 기능을 활용할 수 있도록 만들었다. 사용자는 이메일이나 소셜 로그인과 같은 친숙한 방식으로 계정을 생성하면, 백그라운드에서 자동으로 EOA가 생성되고 이를 승인된 서명자로 등록한 스마트 컨트랙트 지갑이 배포된다. 초기화가 완료된 후에는 다중 서명 설정, 트랜잭션 한도 설정, 계정 복구 메커니즘 등 스마트 컨트랙트 지갑의 다양한 기능을 자유롭게 활용할 수 있다.
Source: Cross-app ecosystem
네이티브 계정 추상화와 더불어, AGW는 컨슈머 어플리케이션을 위한 체인이라는 목표에 걸맞게 더 나은 사용자 경험을 제공하기 위해 Privy가 제공하는 앱간 범용 지갑(Cross App Wallet)을 도입했다. 앱에서 자체적으로 생성되는 임베디드 월렛은 소셜 로그인 등 만을 통해서 계정을 생성하고 번거로운 키 관리를 필요로 하지 않아 편리한 사용자 경험을 제공하지만, 단일 지갑을 통한 어플리케이션 간의 호환성을 달성할 수 없고 사용자가 여러 군데에 파편화된 자산을 관리해야 한다는 단점이 존재했다. AGW의 설계, 더 일반적으로 앱간 통합 지갑(Cross-app Wallet)은 사용자가 어느 한 어플리케이션에서 로그인한 계정으로 다른 어플리케이션의 데이터와 자산에도 자유롭게 접근할 수 있어야 한다는 필요성에서 시작되었다.
범용 임베디드 지갑의 구현은 얼핏 단순해 보이지만, 실제로는 보안 모델을 구축하는 과정에서 복잡한 고려 사항들이 존재한다. 예를 들어 특정 앱에서만 사용하는 지갑은 해당 앱에만 영향을 미치는 제한된 보안 리스크를 가지지만, 여러 앱에서 공통으로 사용되는 지갑은 한 개발자의 행동이 사용자가 사용하는 모든 앱에 영향을 미칠 수 있어 더욱 신중한 설계가 필요하다. 그러나 복잡한 구현의 어려움에도 불구하고 범용 지갑은 사용자 경험 측면에서 다음과 같은 확실한 이점을 제공한다:
간편한 온/오프램프: 한 번만 자산을 예치하면 모든 앱에서 사용할 수 있다
통합된 자산 관리: 앱의 개발자나 사용자가 모든 앱 내에 분산되 자산을 한눈에 파악할 수 있다
유연한 자산 이동: 사용자가 여러 앱에 걸쳐 자산을 자유롭게 이동하고 활용 가능
계정 추상화에서 한발 더 나아가 최근 각광받고 있는 개념 중 하나로 체인 추상화(Chain Abstraction)가 있다. 기존 계정 추상화가 단일 체인 내에서 사용자 경험을 증진시키기 위한 솔루션이었다면, 체인 추상화는 여러 체인에 걸쳐 있는 자산을 브릿징 과정 없이 원활하게 사용하게 하는 데 중점을 두고 있다. 간단히 말하면 체인 추상화의 목표는 사용자가 어떤 체인을 사용하는 지 모르게 하는 데에 있다. 체인 추상화는 특히나 모듈러 블록체인의 도입이 가속화되면서 점차 파편화되고 복잡해지고 있는 온체인 환경의 문제점을 해결하기 위한 돌파구를 제시한다.
Source: Chain Abstraction vs Account Abstraction
엄밀히 말하면 체인 추상화는 계정 추상화의 확장 또는 발전의 개념이라고 보기는 어렵다. 체인 추상화는 EIP-4337과 같이 특정한 기술 스펙이라기 보다는 체인이라는 개념 자체를 추상화할 수 있는 어플리케이션, 계정, 또는 프로토콜 레벨에서 이루어지는 방법론을 지칭하는 좀 더 광범위한 용어라고 해석하는 것이 맞을 것이다.
체인 추상화를 통해 개선될 수 있는 블록체인의 주요 사용자 경험은 크게 세 가지 측면에서 살펴볼 수 있다. 첫째, 다중 체인의 잔액을 하나로 통합 관리할 수 있어 사용자는 본인의 자산이 어떤 체인에 위치하는지 신경 쓰지 않고도 하나의 계정으로 모든 블록체인에서 자유롭게 거래를 수행할 수 있다. 두 번째로 어떤 체인의 어떤 토큰으로도 결제가 가능한 유연한 결제 시스템을 구현할 수 있다. 솔버들이 모든 토큰이나 코인을 결제 수단으로 받아들이고 브릿징과 가스비 지불을 백엔드에서 처리하기 때문에 사용자는 더 이상 브릿징 과정을 신경 쓸 필요가 없다. 물론 이와 같은 방식은 중앙화된 어플리케이션을 사용하면 얼마든지 간단하게 추상화할 수 있는 범주에 있지만, 체인 추상화를 이용하는 방법은 개인의 소유권과 보안을 타협하지 않으면서도 이런 기능을 구현 가능하게 하는 데에 의의를 두고 있다.
Case Study: One Balance
Source: Credible Accounts and Credible Stack
이번 글에서는 체인 추상화를 구현한 사례로 원밸런스(One Balance)를 소개한다. 원밸런스는 체인 추상화의 방법론과 구조를 제시한 CAKE 프레임워크를 고안한 프론티어 리서치 팀에서 출시한 프로젝트다. 원밸런스는 체인 추상화를 달성하기 위해 기존의 EOA와 SCA의 장점을 결합한 '신뢰할 수 있는 계정(Credible Account)'이라는 새로운 개념을 제시했다.
신뢰할 수 있는 계정은 EOA, SCA 등 기존 계정 형식의 확장된 형태로, 블록체인 간의 합의 과정 없이도 신뢰할 수 있는 보증을 제공한다. 신뢰할 수 있는 계정은 사용자가 선택한 보안 머신 상에 존재하며, 어떤 메시지에 서명할지 혹은 하지 않을지에 대한 신뢰할 수 있는 약속을 제공한다. 이 계정은 SCA와 동일한 보증을 제공하므로 가스 추상화, 소셜 복구, 권한 정책, 최신 인증 방식과 같은 계정 추상화의 모든 사용자 경험상의 이점을 함께 제공한다.
특히 신뢰할 수 있는 계정은 여러 체인에 걸쳐 임의의 수의 하위 계정을 생성하고 해당 체인의 모든 상태를 관리할 수 있다. 이더리움, 솔라나, 비트코인과 같은 서로 다른 체인에서부터 ERC20, NFT, DAO, DeFi 프로토콜 등에 이르기까지 모든 체인, 스마트 컨트랙트나 자산 종류와 호환된다는 특징이 있다.
원밸런스의 체인 추상화 시스템은 다음 두 가지 핵심 요소를 기반으로 한다:
리소스 잠금(Resource Lock): 리소스 잠금은 특정 조건이 충족되거나 만료 시간이 될 때까지 상태를 에스크로하겠다는 사용자의 신뢰할 수 있는 약속이다. 이는 스마트 컨트랙트에 자금을 예치하거나 ERC20 승인을 발행하는 것과 유사하지만, 온체인 완결성을 기다릴 필요 없이 계정 내에서 처리된다는 장점이 있다. 예를 들어 이더리움의 USDC로 솔라나의 NFT를 구매하는 크로스체인 요청의 경우, 사용자는 특정 블록 높이까지 USDC를 잠그고 NFT 구매를 완료하겠다는 약속을 하게 된다. 이러한 방식은 사용자가 이중 지출이나 요청 실행 중 트랜젝션을 취소함으로써 솔버가 피해를 입는 것을 방지할 수 있게 한다.
신뢰할 수 있는 보장 시스템(Credible Commitment Machines): 신뢰할 수 있는 보증 시스템은 사용자의 크로스체인 거래를 안전하게 실행하기 위한 핵심 인프라다. 이 시스템은 특별한 보안 환경을 갖춘 컴퓨터에서 운영되며, 두 가지 주요 기능을 수행한다. 첫째, 사용자가 설정한 리소스 잠금이 유효한지 검증하고, 둘째, 잠금 조건이 충족되었을 때 이를 정확히 이행하는 것을 보장한다. 예를 들어, 사용자가 이더리움의 USDC로 솔라나의 NFT를 구매하려는 경우, 이행 보증 시스템은 사용자가 실제로 해당 USDC를 보유하고 있는지 확인하고, NFT 구매가 완료되었을 때 잠긴 USDC가 정확히 판매자에게 전달되도록 보장한다. 이 모든 과정은 미리 정의된 규칙에 따라 자동으로 실행되며, 거래에 참여하는 모든 당사자가 신뢰할 수 있는 방식으로 처리된다. 이행 보증 시스템은 신뢰 실행 환경(TEE), 다중 서명(MPC), 스마트 컨트랙트 계정(SCA)과 프로토콜 가상 머신 등 네 가지 방식으로 구현될 수 있다.
원밸런스가 제공하는 신뢰할 수 있는 체인 추상화 스택은 리소스 잠금과 신뢰할 수 있는 계정을 서비스하는 데 필요한 모든 구성 요소를 포함하며, 각 구성 요소는 커뮤니티에서 개발한 표준 인터페이스를 통해 다른 구성 요소와 상호 운용될 수 있는 범용성을 가지고 있다. 원밸런스는 아직 상용화된 어플리케이션을 제공하고 있지 않지만, Privy를 적용한 통합 어플리케이션 예시를 공개하고 있다. 현재 체인 추상화를 제공하는 대부분의 솔루션들이 자체 체인 등 기존 어플리케이션이나 체인과 호환되기 어려운 스택을 가지고 있는 것에 비해, 원밸런스는 기존에 운영되던 체인이나 서비스들에도 적용하기 용이한 포괄적인 프레임워크라는 점에서 낮은 전환 비용을 유발한다는 장점을 가지고 있다.
크립토에서 퀄리티가 높은 모바일 어플리케이션이 정말 드물다. 대부분의 크립토 어플리케이션이 데스크탑 위주로 발전하게 된 데에는 크게 두 가지 이유를 꼽을 수 있다.
첫 번째는 금융 거래가 많은 크립토 어플리케이션 특성 상 모바일 처럼 사용자 친화적이고 간편한 경험 보다는 데스크탑이 제공할 수 있는 포괄적이고 상세한 정보를 필요로 하는 경우가 많았다. 모바일 어플리케이션은 당연히 데스크탑 어플리케이션에 비해 상세함이나 기능의 다양성에 있어서 떨어질 수 밖에 없다. 금융 거래가 근간이 되는 크립토 어플리케이션의 특성 상 데스크탑이 먼저 발전하게 된 것은 어느 정도 필연적인 결과라고 볼 수 있다.
데스크탑과 웹 앱 위주로 형성된 크립토 어플리케션의 특성 상 사용자는 자신이 주로 사용하는 지갑이 있고, 어플리케이션을 사용할 때마다 본인 지갑을 연결해서 사용하는 방식을 주로 사용한다. 하지만 이와 같은 사용자 경험을 모바일 환경에 그대로 적용할 경우, 매번 로그인할 때나 트랜젝션을 서명해야 할 때마다 어플리케이션에서 지갑으로 이탈해야 하기 때문에 사용자 경험을 저해하는 유인으로 작용한다.
다음으로 모바일 어플리케이션의 주요 배포 채널인 앱스토어의 높은 검열 장벽 또한 크립토에서 모바일 환경이 보편화되는 데에 제약으로 작용했다. 애플의 앱스토어는 크립토 결제를 수반하는 어플리케이션들에 까다로운 검열 정책을 시행했고, 이로 인해 크립토 어플리케이션들은 이를 우회할 수 있을 만한 방안을 찾아야 했다. 한 때 PWA(Progressive Web App)을 통해 앱스토어를 우회하는 방식이 성행하기도 했으나, 익숙하지 않은 사용자 여정으로 인해 채택이 활발히 이루어지지는 않았으며 최근에는 나타나지 않고 있는 추세이다. 이외에도 텔레그램에서 출시한 App Center는 1000개 이상의 미니 앱과 월간 사용자 5억명을 온보딩 시키며 크립토 어플리케이션을 위한 효과적인 배포 채널의 필요성을 드러내기도 했다.
하지만 기존 금융 성격을 띄는 어플리케이션이 주를 이루던 시장에서 밈 코인이나 AI 등 일반 소비자 대상 서비스가 발전하기 시작하면서 점차 모바일 친화적인 어플리케이션의 중요성이 강조되고 있으며, 준수한 사용자 경험을 제공하는 사례가 늘어나고 있다. 소셜 플랫폼인 Farcaster나 Interface 밈 코인 트레이딩 플랫폼 Moonshot 등에서 모바일에 특화된 어플리케이션을 제공하고 있으며, Jupiter와 Uniswap 등 전통적인 DEX들 또한 최근 모바일 어플리케이션에 집중하는 모습을 보이며 더 많은 사용자에게 닿기 위한 노력을 이어나가고 있다. 이외에도 Privy나 Reown(전 Wallet Connect)과 같은 WaaS에서도 점차 모바일에 특화된 UI와 기능을 제공하는 SDK에 대한 지원을 확장하며, 증가하는 모바일 어플리케이션에 대한 중요성을 나타내고 있다.
Case Study: Zora
Source: X(@privy_io)
크립토 생태계에서 모바일 친화적 사용자 경험을 성공적으로 구현한 대표적인 사례로 Zora를 들 수 있다. Zora는 디지털 창작물에 집중한 소셜 네트워크 앱으로, 사용자들이 이미지, 비디오, 음악, 밈 등 다양한 형태의 디지털 콘텐츠를 쉽게 생성하고 공유할 수 있는 플랫폼이다.
Zora는 계정 생성부터 NFT 민팅까지 모든 과정을 모바일에 최적화했다. 사용자는 이메일로 간단히 회원가입을 할 수 있으며, Farcaster나 인스타그램 계정을 연동하면 자동으로 친구를 추천받고 맞춤형 피드를 제공받을 수 있다. 특히 스마트폰 카메라로 직접 찍은 사진이나 영상을 바로 업로드할 수 있어, 일반적인 소셜 미디어를 사용하는 것과 같은 자연스러운 경험을 제공한다.
기술적으로 Zora는 Privy의 임베디드 월렛을 Coinbase 스마트 월렛의 서명자로 사용하는 현대적인 계정 추상화 기술 스택을 도입했다. 이를 통해 민팅 시 발생하는 가스비를 대신 처리하고 트랜잭션을 일괄 처리하는 등 복잡한 블록체인 상호작용을 추상화했다. 사용자는 이러한 기술적 복잡성을 전혀 인식하지 않은 채 서비스를 이용할 수 있다.
특히 주목할 만한 점은 Zora만의 인앱 화폐인 '스파크(Spark)' 시스템이다. 스파크는 ETH의 백만분의 1 단위로(즉 1000 Gwei), 일반적인 앱 결제와 마찬가지 방식으로 신용카드나 직불카드로 구매가 가능하다. 사용자는 충분한 스파크를 보유하고 있다면 마음에 드는 콘텐츠를 더블탭하는 것만으로 NFT를 민팅할 수 있다. 각 민팅에는 111 스파크가 소요되며, 가스비가 없는 무료 거래가 가능하다. 구매한 스파크는 만료되지 않으며, Zora의 민팅 수수료가 변경되더라도 계속 사용할 수 있다.
Zora의 이러한 설계는 복잡한 블록체인 기술을 완벽하게 추상화하여 일반 사용자들에게 친숙한 경험을 제공한다. 지갑 생성, 가스비 처리, NFT 민팅과 같은 블록체인의 기술적 과정들이 모두 백그라운드에서 처리되며, 사용자는 마치 일반적인 소셜 미디어 앱을 사용하는 것처럼 자연스럽게 크립토 생태계에 참여할 수 있다. 이는 웹3 서비스가 지향해야 할 모바일 사용자 경험의 새로운 기준을 제시했다고 평가받는다.
크립토 산업은 2021년의 Defi 그리고 NFT Summer를 끝으로 어플리케이션들이 캄브리아기 폭발처럼 성장한 시기를 맞이한 지 꽤나 오랜 시간이 지났다. 그리고 지난 2년간 모듈러 블록체인과 고성능 L1, 오라클과 브릿지 등 크립토는 인프라 부문에서 특히나 많은 발전을 거두었다. 이로 인해 더 이상 우리는 느린 트랜젝션과 비싼 수수료로 인해 고통 받지 않게 되었고, 블록체인 프로토콜 자체에 내재된 한계는 많은 부분이 개선되었다.
어플리케이션과 사용자 경험 수준에서의 개발과 실험 또한 지속적으로 이루어졌으나, 아직은 Web2 어플리케이션에 필적할 만한 수준에 도달한 만한 사례는 드물다. 인프라 레이어가 다음 세대의 어플리케이션을 위한 준비를 마친 지금, 더 많은 사용자를 크립토로 불러들이기 위한 Web2 수준에 필적할 만한 사용자 수준을 제공하는 서비스의 등장은 어느 때보다 절실하다.
그 중에서도 지갑은 사용자가 어플리케이션으로 온보딩하는 첫 번째 스텝이자 주요 액션마다 서명 또는 확인을 거치기 위해 상호 작용을 하는 관문 역할을 한다는 점에서, 전반적인 사용자 경험을 결정하는 가장 중요한 레이어로 작용한다.
지갑 분야에서의 연구 개발과 혁신은 비단 하나의 레이어가 아닌 키 관리와 계정, UI/UX 등 다양한 레이어에 걸쳐 동시 다발적으로 진행되고 있으며, 어플리케이션의 특징과 요구 사항에 따라 각각의 레이어 마다 고유한 설계 파라미터가 존재한다. 아직 지갑 분야의 혁신은 현재 진행형이며, 계정 추상화, 체인 추상화와 같은 네러티브의 등장과 WebAuthn이나 TEE 등 새로운 기술의 도입 또한 이어지고 있다. 따라서 사용자에게 최적의 경험을 제공하는 지갑을 제공하기 위해서 각각의 레이어에 존재하는 의사 결정 트리와 대표적인 구현 사례를 파악하는 것이 필수적일 것이다.