
계정 추상화: 웹3 채택을 가속화하고 게임의 판도를 바꾸는 기술

작성: Gal Ron, 스탠퍼드 블록체인 리뷰
번역: TechFlow
*참고: 본문은 스탠퍼드 블록체인 리뷰에서 제공되었으며, TechFlow는 스탠퍼드 블록체인 리뷰의 공식 파트너로서 독점 번역 및 게재 권한을 부여받았습니다.
"비밀키 없이는 토큰도 없다!" 이것이 블록체인의 슬로건이다. 그러나 이 '비밀키'란 도대체 무엇일까?
현실 세계에서 열쇠는 그 용도에 따라 다르게 작동한다. 자전거 자물쇠의 열쇠와 Brinks 화물차의 고보안 열쇠는 동일한 범주에 있지 않다.
그러나 이더리움에서는 모든 열쇠가 동일한 구조를 갖는다. 이더리움 상의 어떤 작업이라도—그 가치나 목적과 관계없이—트랜잭션 서명을 위해 니모닉(mnemonic) 문구를 사용해야 하며, 해당 니모닉은 계정 소유자만이 알고 있어야 한다. 이는 중대한 UX 장벽이며 암호화폐의 대중적 채택을 저해하는 요소이다.
계정 추상화(Account Abstraction)는 이러한 패러다임에서 벗어날 수 있도록 블록체인 애플리케이션을 지원한다. 이 개념은 비탈릭(Vitalik)이 2015년 한 논문에서 처음 소개했으며, 현재 스타크넷(Starknet), 제트케이싱크(zkSync) 같은 레이어-2 블록체인과 EIP-4337을 통해 이더리움 자체에서도 실현되고 있다. 계정 추상화는 Web3의 강력함과 Web2의 간편함 및 편의성을 결합하며, 자기 보관(self-custody)의 확장으로 나아가는 중요한 이정표이다.
이더리움의 EOA와 그 한계
먼저, 이더리움 상의 암호화 계정이 어떻게 작동하는지 살펴보자. 이더리움에는 두 가지 기본 개체가 존재한다: 스마트 컨트랙트와 EOA(외부 소유 계정).
EOA는 다음과 같은 특징을 가진 개체이다:
(1) 비밀키로부터 파생된 계정 주소,
(2) 수수료 지불 또는 타인에게 이더 전송을 위한 ETH 잔액,
(3) 트랜잭션 재전송 방지를 위한 ‘nonce’라 불리는 식별자로, 해당 EOA에서 보낸 트랜잭션 순서를 기록한다.
이더리움에서는 오직 EOA만이 트랜잭션을 보낼 수 있다. 트랜잭션이 유효하려면 계정 주소로부터 파생된 비밀키를 사용해 서명되어야 한다. 즉, EOA를 '소유'한다는 것은 계정 주소를 생성하는 데 사용된 비밀키를 소유하고 있다는 의미이다.
비록 이더리움의 스마트 컨트랙트는 완전히 프로그래밍 가능하지만, 트랜잭션 유효성을 검증하는 로직은 프로그래밍 가능한 것이 아니라 EVM(이더리움 가상 머신)에 하드코딩되어 있다. 유효한 트랜잭션은 다음과 같은 일련의 규칙을 엄격히 따라야 한다:
-
서명 방식. ECDSA 서명 방식을 사용하여 secp256k1 타원 곡선 상에서 서명되어야 한다.
-
트랜잭션 수수료. 수수료 납부 출처는 트랜잭션을 시작한 EOA와 동일해야 하며, 또한 수수료는 반드시 ETH로 지불되어야 한다.
-
재전송 방지. 트랜잭션은 ‘nonce’ 식별자의 순서에 따라 순차적으로 보내져야 한다.
-
비밀키는 변경 불가능하다. 계정 주소는 비밀키로부터 파생되므로, 트랜잭션 서명에 사용되는 ‘비밀’을 변경할 수 없다.
이러한 규칙들은 이더리움 프로토콜에 내장되어 있으며 변경할 수 없다. 이는 프로토콜 보안성과 이더리움 노드 운영 효율성을 최적화하기 위한 설계 결정에서 비롯된 것이다. 그러나 dApp 개발자들이 원하는 다양한 사례들을 제한한다. 예를 들어, EOA를 사용하면 다른 계정이 자신의 트랜잭션 수수료를 대신 지불하게 하는 것은 불가능하다. 각 플레이어의 초기 몇 단계 행동을 후원하고자 하는 탈중앙화 게임 입장에서는 매우 유용한 기능이다.
또 다른 경우, 블록체인 사용자는 자신을 대신해 다른 사용자가 트랜잭션을 전송하도록 허가하고자 할 수 있으며, 거래 금액이나 빈도에 제한을 두고자 할 수도 있다. 이것 역시 EOA로는 실현할 수 없다.
게다가 Web2에서는 비밀번호 교체가 기본적인 원칙이지만, EOA의 비밀번호를 변경하는 것은 불가능하며, 다른 기관이 비밀번호 복구를 도와주면서도 계정 전체 접근 권한을 부여하지 않는 것도 불가능하다.
계정 추상화
계정 추상화는 위의 하드코딩된 로직을 EOA에서 분리시키고, 모든 계정을 완전히 프로그래밍 가능한 스마트 컨트랙트로 전환하는 아이디어이다. 이를 통해 계정 소유자, 지갑, dApp은 트랜잭션 서명 방식, 수락 조건, 수수료 출처 등을 자유롭게 결정할 수 있게 된다. 다시 말해, 계정 추상화는 스마트 컨트랙트 지갑을 실현하는 기술 인프라이다.
계정 추상화 개념은 현재 EOA가 직면한 세 가지 주요 제약에 대응하여 세 가지 범주로 나눌 수 있다:
(1) 서명자 추상화(Signer Abstraction). ECDSA 방식과 고정된 비밀키만을 강제하는 대신, 스마트 컨트랙트가 어떤 트랜잭션이 유효한 서명인지 스스로 정의할 수 있는 유연성을 제공한다. 이는 스마트 컨트랙트가 공유 비밀에 더 적합한 다른 서명 방식을 수용할 수 있음을 의미한다. 컨트랙트는 서로 다른 진입 함수마다 다른 서명 방식을 요구하거나, 아예 서명 없이도 거래를 허용할 수 있다.
(2) 수수료 추상화(Fee Abstraction). 이더리움에서는 계정 소유자가 먼저 ETH로 계정을 충전해 수수료를 지불해야만 계정을 사용할 수 있다. 반면, dApp이 사용자의 트랜잭션 수수료를 후원하거나, 사용자가 원하는 어떤 토큰으로도 수수료를 지불하고 실시간으로 ETH로 교환하는 블록체인 아키텍처를 상상해보자. 이는 오늘날 이더리움이 직면한 주요 UX 문제를 해결할 수 있다.
(3) Nonce 추상화. 이는 계정 추상화에서 잘 다뤄지지 않았지만 흥미로운 영역이다. EOA의 ‘nonce’는 트랜잭션 재전송 방지를 제공하지만, 본질적으로 순차적인 트랜잭션 모델을 강제한다. 만약 스마트 컨트랙트가 동일한 EOA로부터 순서와 무관하게 두 개의 병렬 트랜잭션을 수락하고자 한다면? ‘nonce’ 메커니즘이 일반적인 트랜잭션 처리 로직에 하드코딩되지 않고 스마트 컨트랙트가 제어할 수 있을 때 가능해진다.
자기 보관의 확장
비트코인 백서 발표 15년이 지난 지금, 여전히 암호화폐 지갑은 우리가 기대하는 원활한 제품보다 유지 관리가 많이 필요한 상태이다. 작년 CEX 붕괴는 우리에게 자기 보관이 올바른 방향임을 알려주었지만, 비밀키 관리는 여전히 큰 부담과 보안 위험이다. 핵심 암호화 개발자들조차 가끔씩 비밀키를 분실하거나 해킹당한다(트윗 참조). 계정 추상화를 활용한 스마트 컨트랙트 지갑은 이러한 위험을 제거하고 자기 보관 지갑의 대규모 채택을 촉진할 수 있는 촉매제가 될 수 있다. 계정 추상화는 두 가지 메커니즘을 통해 계정 관리를 더 쉽게 만든다: 더 똑똑한 트랜잭션 서명과 개선된 복구 절차.
첫째, 서명자 추상화 기능은 지갑이 Web2의 기능을 제품에 통합할 수 있게 한다. 예를 들어, 브라보스(Braavos) 지갑은 iOS 및 안드로이드 기기의 보안 격리 영역을 활용해 사용자가 니모닉 없이 지문 또는 얼굴 인식으로 트랜잭션에 서명할 수 있도록 한다. 비슷한 서명자 추상화 기능은 개발자가 사례별로 개별 트랜잭션 승인에 필요한 보안 수준을 제어할 수 있게 한다. 이는 Web3 지갑에 진정한 다중 인증(MFA)을 가능하게 하며, 온라인 은행 계좌처럼 매일의 거래는 단일 기기에서 실행되지만, 새로운 수취인에게 송금하거나 고가의 거래는 여러 기기에서 서명을 요구할 수 있다.
계정 추상화는 또한 계정 복구 UX를 개선한다. 서명자 추상화를 통해 하나의 계정에 여러 서명자를 두고, 각각 다른 권한을 부여할 수 있다. 예를 들어, 주 계정 소유자는 친구에게 주 비밀키 복구는 가능하지만 자산을 사용하지는 못하게 하는 제한된 권한의 키를 공유할 수 있다. 이를 일반적으로 소셜 복구(social recovery)라고 하며, ArgentX 지갑과 같은 스마트 컨트랙트 기반 지갑에서 이미 구현되었다.
암호화 결제의 가능성
암호화폐 결제는 블록체인의 주요 사례 중 하나로 널리 논의되어 왔다. 그러나 이 약속은 아직 실현되지 않았다. 과거에는 높은 트랜잭션 수수료 때문이었지만, 롤업과 확장성 솔루션 등장으로 이제 그 비용은 감소하고 있다. 하지만 전통 금융에서 성공한 결제 솔루션은 단지 낮은 거래 비용 때문만이 아니다. 신용 발행, 사기 탐지, 분쟁 처리, 정기 결제 메커니즘 등의 기능도 필요하다.
계정 추상화는 이러한 전통적 결제 개념을 암호화폐 영역으로 가져올 수 있게 한다. 예를 들어, Visa는 최근 계정 추상화를 활용해 정기 결제 시스템을 설계하는 개념 증명을 제시했다. 사용자 서명 없이도 Visa가 일정 한도 내에서 정기적으로 자금을 자동 이체할 수 있도록 허용하는 프로그래밍 가능한 자기 보관 지갑을 상상해보라.
게임 UX와 Web3의 만남
대량 트랜잭션 처리 및 수수료 추상화는 Web3 게임을 계정 추상화의 또 다른 영향권에 두고 있다.
게임 활동을 체인 상으로 가져오는 주요 장벽은 모든 체인 상 활동에 트랜잭션 서명이 필요하다는 점이며, 이는 거래 비용을 초과할 수 있다. 사용자에게 지갑에서 '서명' 버튼을 클릭하라는 요청은 게임 흐름을 방해하며 Web3 게임 경험을 상당히 번거롭게 만든다.
계정 추상화를 통해 게임 개발자는 특정 기간 동안 게임 트랜잭션 서명을 미리 승인하는 '세션 키(session key)'를 생성할 수 있다. 이러한 키는 브라우저나 스마트폰의 로컬 저장소에 저장되며 필요 시 취소될 수 있다. 이를 통해 Web3 게임 경험은 Web2 게임에 훨씬 더 근접하게 만들 수 있다.
또한, 수수료 추상화를 통해 게임 개발자는 사용자의 트랜잭션 수수료를 후원할 수 있다. 이는 암호화폐에 익숙하지 않거나, 먼저 게임을 체험해보고 이후에 수수료를 지불하고자 하는 신규 플레이어 유치에 특히 효과적이다.
앞으로의 길
계정 추상화는 항상 이더리움 로드맵의 일부였다. EIP-86(2017), EIP-2983(2020), EIP-3074(2020) 같은 이더리움 개선 제안들은 EIP-4337(2021)을 위한 기반을 마련했으며, 이 제안은 스마트 컨트랙트 지갑 운영을 위한 새로운 탈중앙화 인프라를 도입했다.
EIP 외에도 Gnosis와 같은 스마트 지갑 dApp이 이더리움 상에 등장했다. 그러나 모두 이더리움의 기본 계정 모델인 EOA에 비해 2급 시민이다.
이더리움의 제약을 해결하고 스마트 컨트랙트 지갑을 대중에게 제공할 기회는 레이어 2 확장 네트워크를 통해 이루어질 수 있다. 스타크넷(Starknet)과 zkSync 같은 레이어 2는 프로토콜 차원에서 계정 추상화를 내장하여, 개발자들이 로컬 도구와 인프라를 통해 쉽게 접근할 수 있도록 한다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News














