콘텐츠로 건너뛰기

계정 추상화: 과거, 현재, 미래

이더리움의 계정 추상화에 대해 알아보세요—그 의미와 중요성을 확인하세요.

15분 읽기
계정 추상화: 과거, 현재, 미래

베어 마켓이 기승을 부리는 상황에서도 크립토가 앞으로도 계속될 것이라는 점을 의심하는 사람은 거의 없습니다. 예를 들어 MetaMask 같은 지갑은 이미 수백만 명의 사용자를 보유하고 있습니다. 하지만 여전히 이런 질문이 남습니다. "어떻게 하면 다음 10억 명의 사용자를 web3로 데려올 수 있을까?"

누구에게 묻느냐에 따라 답은 다양합니다. 하지만 모두가 동의하는 부분이 있습니다. 특히 블록체인 애플리케이션과 상호작용하는 사용자 경험을 개선해야 한다는 점입니다. web3를 더 사용자 친화적으로 만들지 않는다면, 사람들이 매일 사용하는 web2 앱에서 굳이 전환할 이유가 없습니다.

"계정 추상화(Account Abstraction)"는 Ethereum의 사용자 경험을 개선하기 위한 제안으로, 크립토 커뮤니티에서 점점 더 많은 논의의 주제가 되고 있습니다. 하지만 이런 생각이 드실 수도 있습니다. "계정 추상화가 정확히 무엇이고, 왜 신경 써야 하는 걸까?"

이 글은 계정 추상화의 과거, 현재, 미래를 맥락 속에서 이해할 수 있도록 돕기 위해 작성되었습니다. 계정 추상화에 관한 모든 질문, 즉 누가, 무엇을, 왜, 어떻게, 언제에 대해 답변해 드리겠습니다.

주요 핵심 내용 요약:

  • 프로그래밍 가능한 자기 수탁 계정("스마트 계정")은 새로운 사용자가 web3 생태계에 온보딩할 때의 마찰을 줄일 수 있습니다. 하지만 Ethereum의 설계상 제약으로 인해 스마트 계정의 광범위한 도입과 활용이 어렵습니다.

  • 계정 추상화는 신뢰 불필요(trustless)하고 검열 저항성을 갖춘 스마트 계정의 광범위한 도입을 위한 중요한 변화를 도입합니다. 계정 추상화를 구현하는 다양한 접근 방식이 검토되고 있으며, 각각 고유한 장점과 트레이드오프가 있습니다.

  • MetaMask는 퍼미션리스 혁신 플랫폼인 MetaMask Snaps를 통해 계정 추상화 도입을 지원하고 있습니다. MetaMask Snaps를 통해 개발자들은 MetaMask를 확장하여 전 세계 크립토 사용자들에게 계정 추상화의 이점을 제공할 수 있습니다.

계정 추상화란 무엇인가?

web3의 다른 새로운 개념들과 마찬가지로, 계정 추상화는 정의하기 어려울 수 있습니다. 그럼에도 불구하고, Ethereum에서 계정 추상화 논의와 관련된 다양한 용어들을 먼저 살펴보면 더 잘 이해할 수 있습니다.

  1. 추상화(Abstraction) (명사): 컴퓨터 과학에서 (꽤 복잡한) 용어로, 시스템이나 애플리케이션에 대한 정보를 숨겨 백그라운드에서 실행되는 프로세스에 대한 지식 없이도 사용할 수 있도록 하는 것을 의미합니다. *"시스템의 복잡성을 숨기고 조작을 용이하게 하는 인터페이스를 제공하는 과정"*으로도 정의됩니다.

  2. 계정(Account) (명사): 트랜잭션을 보내거나 받고 다른 온체인 계정과 상호작용할 수 있는 블록체인상의 사용자 표현입니다. Ethereum에는 두 가지 유형의 계정이 있습니다. **외부 소유 계정(EOA)**과 컨트랙트 계정(일명 "스마트 컨트랙트")입니다.

2a. 외부 소유 계정(EOA): MetaMask와 같은 지갑 소프트웨어를 사용하여 생성되고 공개 키와 개인 키의 암호화 쌍으로 관리되는 Ethereum 계정입니다. EOA는 "능동적"입니다(트랜잭션을 시작하고 EVM 실행에 대한 가스 수수료를 지불할 수 있습니다). 하지만 Ether 전송이나 컨트랙트와의 상호작용 같은 기본 작업만 실행할 수 있다는 제한이 있습니다.

2b. 컨트랙트 계정: 스마트 컨트랙트로 배포되고 개인 키 대신 코드로 작성된 로직에 의해 제어되는 Ethereum 계정입니다. 컨트랙트 계정은 "수동적"입니다. EOA의 트랜잭션에 응답하여 트랜잭션을 보낼 수만 있으며 가스 수수료를 지불할 수 없습니다. 하지만 프로그래밍이 가능하며 해당 주소에 저장된 코드에 따라 임의의 로직을 실행할 수 있습니다.

  1. 지갑(Wallet) (명사): Ethereum 계정의 자금을 관리하기 위한 인터페이스로, 지갑의 작동 방식은 연결된 계정 유형에 따라 달라집니다. MetaMask와 같은 EOA 기반 지갑은 트랜잭션을 승인하기 위해 개인 키가 필요합니다. 반면 스마트 컨트랙트 지갑은 컨트랙트 계정에 연결되어 있으며 임의의 로직을 사용하여 트랜잭션을 승인할 수 있습니다(예: 다중 서명 방식 사용).

이러한 정의를 바탕으로 이제 계정 추상화를 정의할 수 있습니다.

계정 추상화 정의

계정 추상화는 Ethereum 계정의 관리와 동작의 유연성을 높이기 위한 제안입니다. 이는 계정 컨트랙트를 도입함으로써 달성됩니다. 계정 컨트랙트는 사용자의 Ethereum 계정(이제 스마트 계정이라고 불림)을 정의하고 관리하는 특수 목적의 스마트 컨트랙트입니다.

계정 추상화를 통해 보안을 위해 개인 키에만 의존하는 대신 스마트 컨트랙트 지갑을 사용하여 자금에 프로그래밍 가능한 방식으로 접근할 수 있습니다. 스마트 계정에 코인 지출 및 자산 이전에 대한 맞춤형 규칙을 설정할 수 있기 때문입니다.

그렇다면 "추상화"는 이 모든 것에 어떻게 맞아 들어갈까요?

네트워크 수준의 관점에서 "계정 추상화"는 계정 유형의 세부 사항이 Ethereum 프로토콜에 보이지 않는다는 것을 의미합니다. 모든 계정(자기 수탁 계정 포함)은 단순히 스마트 컨트랙트이며, 사용자는 개별 계정의 관리 및 운영 방식을 자유롭게 결정할 수 있습니다.

사용자 수준의 관점에서 "계정 추상화"는 Ethereum 계정과 상호작용하는 것에 관한 특정 기술적 세부 사항이 상위 수준의 인터페이스 뒤에 숨겨진다는 것을 의미합니다. 이는 지갑 설계를 개선하고 web3 애플리케이션 사용의 복잡성을 크게 줄여줍니다.

이러한 설명이 필요한 이유는 계정 추상화에 대한 혼란이 (a) 무엇이 추상화되는지, (b) 어디서 추상화가 발생하는지를 모르는 데서 비롯되기 때문입니다. 계정이 반드시 사용자로부터 추상화되는 것은 아닙니다(프로토콜로부터 추상화되더라도). 여전히 자금을 받을 지갑 주소와 본인만 자금을 사용할 수 있도록 보장하는 서명 키가 있습니다.

사용자 관점에서 계정 추상화는 블록체인과의 상호작용에 관한 일부 세부 사항을 추상화하는 스마트 계정을 사용하는 것에 가깝습니다. 참고로, 처음 사용하는 사용자 관점에서 dapp과 상호작용하는 것은 다음과 같습니다.

계정 추상화를 통해 지갑 개발자들은 이러한 프로세스를 백그라운드에서 처리하고 web3 사용 경험을 단순화하는 시스템을 만들 수 있습니다(요약: 지갑이 "보이지 않게" 됩니다). 몇 가지 사용 사례(나중에 자세히 설명)로는 시드 구문/개인 키 저장 필요성 제거, 트랜잭션 가스 지불, 심지어 온체인 계정을 직접 설정하는 것 등이 있습니다.

계정 추상화의 이점

앞서 언급했듯이, 계정 추상화는 web3 지갑 사용 및 dapp과의 상호작용과 관련된 대부분의 마찰을 제거합니다. 이를 통해 web3는 초보자와 숙련자 모두가 동일한 수준의 유연성, 보안성, 사용 편의성을 누릴 수 있는 web2의 이상에 더 가까워집니다.

특히 계정 추상화는 자기 수탁의 미래에 엄청난 영향을 미칩니다. 계정 컨트랙트가 제공하는 기능을 통해 web3 지갑을 사용하는 것이 은행을 신뢰하지 않고도 은행 계좌나 애플리케이션을 사용하는 것처럼 느껴질 것입니다.

이후 섹션에서는 계정 추상화의 다양한 측면을 살펴보고 Ethereum 사용 경험을 어떻게 개선하는지 논의하겠습니다. 구체적으로 서명 추상화, 수수료 추상화, 논스 추상화에 대해 이야기하겠습니다.

서명 추상화

현재 EOA의 트랜잭션이 유효하려면 타원 곡선 디지털 서명 알고리즘(ECDSA)을 사용하여 계정의 개인 키로 생성된 서명이 있어야 합니다. 이는 대부분의 EOA에 단순한 보안 모델을 제공합니다. 개인 키가 사용자의 소유로 유지되는 한 자금은 안전합니다. 하지만 몇 가지 제한 사항도 있습니다.

  1. EOA는 보안을 유지하기가 악명 높을 정도로 어렵습니다. 특히 악의적인 행위자들이 개인 키를 탈취하는 새로운 방법을 끊임없이 개발하고 있기 때문입니다. MetaMask에서는 피싱, 소셜 엔지니어링, 스푸핑, 악성코드 주입 및 유사한 공격이 web3 사용자 보안에 미치는 위협을 직접 목격했습니다.

  2. 자기 수탁은 극한 스포츠처럼 느껴질 수 있습니다. 일반 은행 계좌와 달리, 시드 구문/개인 키를 분실하면 EOA 지갑을 "복구"할 수 없습니다. 이는 어떠한 구제 수단도 없이 Ethereum 계정에 보유한 자산을 완전히 잃을 수 있다는 현실과 씨름해야 하는 새로운 사용자들에게 큰 도전이 됩니다.

서명 추상화는 비수탁 계정의 기본 인증 메커니즘으로서 ECDSA 서명을 제거함으로써 이러한 문제를 해결합니다. 대신 사용자는 지갑이 트랜잭션을 시작하도록 승인하는 맞춤형 규칙을 정의할 수 있습니다. 다시 말해, 트랜잭션이 유효하다는 것이 무엇을 의미하는지 직접 결정할 수 있습니다.

서명 추상화를 구현하면 더 고급 인증 방식의 가능성이 열립니다. 이를 통해 web3 지갑을 사용하는 것이 web2 뱅킹 애플리케이션과 비슷하거나 더 나은 경험으로 느껴질 것입니다. 몇 가지 사용 사례를 소개합니다.

  1. 트랜잭션 한도: 스마트 계정에 연결된 지갑은 금액이 사전 설정된 한도를 초과하면 트랜잭션을 거부하거나 추가 인증을 요청할 수 있습니다. 익숙하게 들리시나요? 당연합니다. 은행은 이미 사기, 무단 사용 및 기타 보안 관련 이유로부터 계좌와 신용카드를 보호하기 위해 이를 시행하고 있습니다.

  2. 다자 승인: 신뢰할 수 있는 당사자, 즉 "가디언"에게 계정의 부분적인 제어권을 위임할 수 있습니다. 가디언은 친구, 가족, 서비스 제공자, 또는 본인이 소유한 별도의 기기(예: 하드웨어 지갑)가 될 수 있습니다. 따라서 스마트 계정에서 자금을 인출하는 트랜잭션에 가디언 승인을 요구함으로써 지갑에 web2 스타일의 다중 인증(MFA)을 활성화할 수 있습니다.

  1. 키 교체 및 폐기: 스마트 계정을 사용하면 이전 키를 분실하거나 도난당한 경우 새로운 서명 키를 생성할 수 있습니다. 추가 보안을 위해 복구 과정에서 가디언이 계정을 동결하고 키 교체/폐기 절차에 대한 승인을 요구할 수 있습니다(즉, 소셜 복구). 이는 신용카드를 분실하거나 도난당했을 때 은행 계좌 접근 권한을 잃지 않고 카드를 동결할 수 있는 것과 유사합니다.

  2. 신뢰 세션: 브라우저에서 dapp과 상호작용할 때마다 모든 작업을 승인해야 하는 것이 불편하신가요? 걱정 마세요! 스마트 계정으로 특정 기간 동안 dapp이 자동으로 트랜잭션에 서명할 수 있는 특별한 "세션 키"를 생성할 수 있습니다. 즉, 블록체인 게임을 하는 등 dapp과 상호작용할 때 지갑 팝업에 방해받지 않을 수 있습니다.

높은 수준에서 세션 키는 계정과 dapp 간의 상호작용을 제어하는 스마트 컨트랙트를 기반으로 합니다. 세션 키에 대한 제어권은 항상 본인에게 있으며, dapp의 서명 권한(예: 잔액에서 얼마를 차감할 수 있는지, 어떤 함수를 호출할 수 있는지)을 규제할 수 있습니다.

  1. 자동 결제: 세션 키의 개념과 유사하게, 서비스 제공자가 사전 정의된 규칙에 따라 스마트 계정에서 자금을 "인출"하도록 승인할 수 있습니다. 이를 통해 web3 지갑으로 정기 결제 및 구독을 설정하는 것이 가능해집니다. Ethereum 계정으로 Netflix 구독료나 공과금을 납부하는 것을 상상해 보세요!

수수료 추상화

현재 모든 Ethereum 트랜잭션에는 전송하는 EOA가 실행에 얼마를 지불할 의향이 있는지를 나타내는 "가스 수수료"가 있어야 합니다. 가스 수수료는 Ethereum의 네이티브 토큰인 Ether로 표시됩니다. 이는 특히 트랜잭션을 보내기 전에 ETH를 먼저 확보해야 하는 새로운 사용자들에게 문제를 일으킵니다.

계정 추상화는 가스 수수료 지불의 필요성을 없애지는 않지만, 사용자가 가스 비용을 언제, 어떻게 지불할지에 대한 세부 사항을 추상화합니다(수수료 추상화). 예를 들어, 계정 추상화는 다른 계정이 사용자의 트랜잭션 가스 비용을 대신 부담하는 "스폰서 트랜잭션"을 가능하게 합니다. 스폰서 트랜잭션의 몇 가지 이점:

  1. ETH 외 가스 결제: 지갑의 ERC-20 토큰으로 트랜잭션 수수료를 지불할 수 있으면 좋겠다고 생각한 적 있으신가요? 스폰서 트랜잭션을 통해 ETH를 보유한 릴레이어가 트랜잭션 비용을 먼저 지불하고, DAI나 USDC 같은 다른 토큰으로 상환할 수 있습니다.

  1. 가스리스 트랜잭션: dapp 개발자들은 트랜잭션을 스폰서하여 새로운 Ethereum 사용자의 온보딩 마찰을 최소화할 수 있습니다. "가스"에 대해 아무것도 모르면서도 web3 앱을 사용하고 web2 앱이 제공하는 것과 동일한 원클릭 경험을 즐길 수 있게 됩니다.

  1. 소셜 로그인: dapp이 사용자를 대신하여 컨트랙트 지갑을 배포하여 온체인 트랜잭션을 보내기 전에 지갑을 설정해야 하는 불편함을 해결할 수 있습니다. 더 좋은 점은? 지갑이 인증 인프라(예: Web3Auth 및 WebAuthn)를 사용하여 사용자가 이메일 주소나 Facebook/Twitter 계정 같은 기존 자격 증명으로 web3 계정을 만들 수 있도록 지원할 수 있습니다.

논스 추상화

Ethereum의 스마트 계정에는 또 다른 특별한 기능이 있습니다. 바로 트랜잭션 배치입니다. 배치 트랜잭션을 통해 여러 작업을 단일 온체인 트랜잭션으로 결합하여 dapp과 상호작용하는 비용과 복잡성을 줄일 수 있습니다. 트랜잭션 배치가 중요한 이유는 다음과 같습니다.

EOA에는 "논스(nonce)"라는 값이 저장되어 있어 얼마나 많은 트랜잭션을 보냈는지 보여줍니다(트랜잭션 카운터라고 생각하면 됩니다). 새로운 트랜잭션이 유효하려면 논스를 정확히 1씩 증가시켜야 합니다. 이 규칙은 다른 사람이 동일한 트랜잭션을 "재생"하여 자금을 훔치는 것을 방지합니다(네, 실제로 발생할 수 있습니다).

하지만 한 가지 문제가 있습니다. 논스는 트랜잭션을 선입선출(FIFO) 방식으로 처리하도록 강제합니다. 논스가 각각 0과 1인 두 개의 트랜잭션(A와 B)이 있다고 가정해 보겠습니다. 이 경우 트랜잭션 A를 보내고 B를 보내기 전에 (실행) 확인을 기다려야 합니다.

A가 아직 처리 중인 상태에서 B를 보내면 논스가 규정된 범위(EOA의 현재 논스 + 1)보다 높아지기 때문에 단순히 거부됩니다. 사실 이것이 지갑을 사용할 때 "트랜잭션이 멈추는" 주요 원인 중 하나입니다.

논스 추상화를 통해 맞춤형 재생 방지 메커니즘을 만들 수 있습니다(Ethereum 프로토콜이 트랜잭션에 엄격한 순서를 강제하는 대신). 예를 들어, 여러 트랜잭션을 병렬로 처리할 수 있는 논스 방식을 가질 수 있습니다. 이는 막힌/멈춘 트랜잭션 문제를 해결하고 dapp과의 상호작용을 크게 개선할 것입니다.

하지만 논스 추상화는 실제로 구현하기 어렵고 트랜잭션 해시 고유성과 같이 보안 및 UX에 중요한 특정 불변성을 잠재적으로 깨뜨릴 수 있습니다. 이 부분에서 트랜잭션 배치가 등장합니다.

스마트 계정은 여러 트랜잭션을 한 번에 처리할 수 있기 때문에 복잡한 논스 추상화 방식의 필요성이 대부분 사라집니다. 앞의 예시로 돌아가서, 트랜잭션 A와 B가 Uniswap에서 자산을 스왑하는 것과 같은 단일 가상 작업의 일부라고 상상해 보겠습니다.

  • 트랜잭션 A: Uniswap 컨트랙트가 토큰에 접근하도록 승인

  • 트랜잭션 B: 토큰 스왑 완료

트랜잭션 배치를 통해 승인-스왑 워크플로우를 하나의 트랜잭션으로 결합할 수 있습니다. 결과: dapp 사용 시 더 낮은 가스 수수료와 줄어든 대기 시간. 멋지지 않나요?

계정 추상화의 "방법"

이 시점에서 계정 추상화를 통해 사용자 계정에 맞춤형 기능과 인증 정책을 추가할 수 있다는 것을 이미 알고 있습니다. 하지만 그것이 어떻게 가능한지에 대해서는 아직 이야기하지 않았습니다. 이 섹션에서는 Ethereum에서 추상화를 구현하는 다양한 접근 방식에 대해 논의합니다(너무 복잡하게 느껴진다면 다음 섹션으로 건너뛰어도 됩니다).

계정 추상화를 달성하는 두 가지 일반적으로 인정된 방법이 있습니다. (a) EOA가 EVM 코드를 실행하도록 허용하는 것과 (b) 스마트 컨트랙트가 트랜잭션을 시작할 수 있도록 허용하는 것입니다. 따라서 많은 계정 추상화 제안들이 EOA가 스마트 컨트랙트처럼 동작하거나 컨트랙트 계정이 EOA처럼 작동하기를 원한다는 것을 알 수 있습니다.

이는 자연스럽게 몇 가지 질문을 제기합니다.

  • "이러한 접근 방식은 정확히 어떻게 다른가요?"

  • "어떤 접근 방식을 채택하느냐가 왜 중요한가요?"

계정 추상화: 접근 방식 #1 (코드 실행을 위한 EOA 업그레이드)

EOA에 코드를 실행하는 능력을 부여함으로써 사용자 제어 계정에 복잡한 기능을 추가할 수 있습니다. 이는 EOA를 강화하여 스마트 계정으로 변환하고 네이티브 계정 추상화의 토대를 마련합니다. 중요한 점은, 이 접근 방식을 통해 새로운 컨트랙트 계정을 배포하는 비용 없이 프로그래밍 가능한 지갑의 이점을 누릴 수 있다는 것입니다.

EOA를 컨트랙트 계정으로 업그레이드하는 일부 접근 방식은 EOA 트랜잭션의 데이터 페이로드를 EVM 바이트코드로 처리하는 것을 포함합니다. 다른 방식은 EOA의 제어권을 EOA를 대신하여 트랜잭션을 수행하는 특수 계정 컨트랙트에 위임하는 것을 포함합니다. 후자의 경우, 동일한 계정 컨트랙트를 다른 EOA들이 재사용할 수 있어 다양한 컨트랙트 지갑 구현의 필요성을 줄입니다.

아래는 "EOA를 프로그래밍 가능하게 만들기" 진영의 다양한 계정 추상화 제안들과 주요 기능 및 구현 현황을 보여주는 인포그래픽입니다.

계정 추상화: 접근 방식 #2 (스마트 컨트랙트 업그레이드)

이 접근 방식에서는 컨트랙트 계정이 트랜잭션을 승인하고 가스 수수료를 지불할 수 있도록 업그레이드합니다(EOA처럼). 이는 EOA처럼 작동할 수 있는 "강화된 컨트랙트"(즉, 계정 컨트랙트)를 도입하여 계정 추상화를 달성하는 또 다른 경로를 제공합니다. 또한 Ethereum의 시급한 문제인 프로토콜 수준에서의 컨트랙트 지갑 지원 부재를 해결합니다.

사실 일부 스마트 컨트랙트 지갑은 이미 오늘날 존재하며 계정 추상화의 많은 이점을 제공합니다. 하지만 Ethereum이 스마트 컨트랙트를 "이등 시민"으로 취급하고 모든 트랜잭션이 EOA에서 시작되도록 요구하기 때문에 이러한 지갑을 사용하는 것은 매우 어려울 수 있습니다.

이 제한은 또한 스마트 컨트랙트 지갑이 MetaMask와 같은 EOA 지갑의 신뢰 불필요성과 자기 수탁 특성을 갖추지 못한다는 것을 의미합니다. 참고로, 스마트 컨트랙트 지갑을 만들고 사용하는 흐름을 살펴보겠습니다.

  • 새 컨트랙트 계정 배포

  • 지갑 컨트랙트의 함수를 호출하기 위한 트랜잭션 전송

문제는 이미 명확합니다. 이제 두 개의 지갑을 관리해야 합니다. 왜냐하면? ETH가 미리 충전된 EOA가 지갑 배포 비용과 이후 필요한 함수 호출 비용을 부담해야 하기 때문입니다.

릴레이어가 등장합니다. 릴레이어는 수수료를 받는 대가로 지갑의 트랜잭션 비용을 대신 지불할 수 있는 EOA입니다. 스마트 컨트랙트 지갑 제공자들은 종종 사용자의 트랜잭션을 보조하기 위해 릴레이어를 운영합니다. 즉, 릴레이어는 자신의 지갑에서 ETH를 지불하여 트랜잭션 수수료를 충당하고, 법정화폐나 다른 토큰으로 비용을 회수합니다.

이 시스템은 대부분의 경우 잘 작동합니다. 가스 지불의 복잡성에 대해 너무 걱정하지 않고 컨트랙트 지갑을 만들고 사용할 수 있습니다. 하지만 릴레이어가 트랜잭션을 검열하거나 변조하지 않을 것이라는 신뢰도 필요합니다.

하지만 이것은 크립토이고, 우리는 신뢰 불필요 시스템을 선호합니다.

컨트랙트 계정이 트랜잭션을 승인하고 가스 수수료를 지불할 수 있도록 함으로써, 계정 추상화는 스마트 컨트랙트 지갑을 만들고 사용하는 과정을 더 신뢰 불필요하게 만듭니다. 구체적으로, 릴레이어를 운영하는 누구든 사용자를 대신하여 트랜잭션을 실행할 수 있습니다. 트랜잭션 실행 후 릴레이어가 지갑 잔액에서 자금을 차감하도록 승인하는 메시지에 서명하기만 하면 됩니다.

이제 스마트 컨트랙트 지갑 사용 흐름이 다소 달라집니다.

  • 지갑 컨트랙트 배포? 반사실적 배포 워크플로우를 사용하여 컨트랙트 계정을 배포하기 전에 자금을 보내고 지갑 잔액에서 릴레이어의 EOA에 배포 비용을 지불할 수 있습니다.

  • 지갑 컨트랙트와 상호작용? 오프체인에서 메시지에 서명하고 릴레이어가 계정 컨트랙트를 호출하도록 합니다. 메시지에는 계정 컨트랙트가 릴레이어의 가스 비용을 환급하라는 지시가 포함됩니다.

신뢰 불필요하고 검열 저항성을 갖춘 스마트 계정을 가능하게 한다는 이 아이디어는 이 범주의 많은 계정 추상화 제안의 근간을 이룹니다. 예를 들어, 지금까지 가장 인기 있는 계정 추상화 제안인 ERC-4337은 사용자가 처리를 위해 컨트랙트 지갑 트랜잭션을 제출할 수 있는 대체 멤풀을 도입하여 릴레이어를 탈중앙화합니다.

이 경우, 릴레이어("번들러"라고 불림)들이 스마트 계정 트랜잭션 실행을 위해 경쟁할 수 있어 검열이나 지갑 제공자에 대한 과도한 의존 위험을 줄입니다. 아래는 "스마트 컨트랙트에 EOA 기능 부여" 진영의 다양한 계정 추상화 제안들과 주요 기능 및 구현 현황을 보여주는 인포그래픽입니다.

계정 추상화의 미래에 대하여

Vitalik Buterin이 처음으로 이 개념을 소개한 지 수년이 지났지만, 계정 추상화를 구현하는 최선의 방법에 대해서는 여전히 의견이 엇갈립니다. 예를 들어, EIP-3074와 EIP-5003을 구현하면 기존 EOA(MetaMask 사용자 포함)가 스마트 계정으로 업그레이드할 수 있습니다. 하지만 이러한 제안들은 하드 포크가 필요하며, 커뮤니티가 더 시급한 업그레이드에 집중하고 있는 현재 상황에서는 당분간 실현 불가능해 보입니다.

반면 EIP-4337은 Ethereum 프로토콜에 대규모 변경 없이 계정 추상화를 구현하기 때문에 광범위한 지지를 받고 있습니다. 하지만 현재 EOA 기반 지갑을 사용하는 사용자들에게는 EOA에서 새로 배포된 컨트랙트 계정으로 자산을 이동해야 한다는 것을 의미합니다. 오늘날 Ethereum의 높은 가스 수수료를 감안하면 잠재적으로 복잡하고 비용이 많이 드는 과정입니다.

MetaMask에서는 계정 추상화가 새로운 web3 사용자들에게 원활한 온보딩 경험을 제공하는 핵심이라고 믿습니다. 또한 EOA만으로는 크립토의 대중화를 보장할 수 없다는 것도 알고 있습니다(Ethereum Foundation 연구원 Yoav Weiss가 생생하게 표현했듯이, "다음 10억 명의 사용자들은 종이에 12개의 단어를 적지 않을 것입니다.").

따라서 우리는 MetaMask 사용자들이 알고 사랑하는 지갑을 타협하지 않으면서 계정 추상화의 이점을 제공하는 방법을 모색하기 시작했습니다. 이 노력의 일환으로 MetaMask Snaps를 활용하고 있습니다. MetaMask Snaps는 개발자들이 기존 MetaMask 인프라 위에 맞춤형 기능을 구축할 수 있는 퍼미션리스 혁신 플랫폼입니다.

Snaps를 사용하여 개발자들은 MetaMask 지갑의 기능을 확장하여 다양한 계정 추상화 사용 사례를 지원할 수 있습니다. 세션 키부터 MetaMask로 구축된 완전한 스마트 계정 통합까지, 모두 Snaps로 구축되었으며, 개발자들이 MetaMask를 사용하여 사용자들의 계정 추상화 접근을 민주화하는 도전에 나서는 것을 목격했습니다.

"완벽함이 좋음의 적이 되게 하지 마라." — 볼테르

현재의 계정 추상화 제안은 약간 불완전하더라도 Ethereum에서 신뢰 불필요하고 검열 저항성을 갖춘 스마트 계정을 달성하기 위한 거대한 발걸음이며 충분한 지지를 받을 자격이 있습니다. 저희 팀의 Taylor Monahan의 말을 인용하자면, "출시된 절반의 해결책이 출시되지 않은 완벽한 해결책보다 여전히 낫습니다."

그렇기 때문에 계정 추상화 주제에 관한 다음 글은 ERC-4337의 세부 사항에 대한 심층 분석의 형태로 작성될 것입니다. 중요한 것은, web3 개발자들이 MetaMask와 함께 한 번에 한 줄의 코드로 계정 추상화의 미래를 구축하고 다음 10억 명의 사용자를 온보딩하는 방법에 대해 논의할 것입니다.

기대해 주세요!

이 글의 초안에 피드백을 주신 Patrick McCorry, Simon Brown, Mirko Garozzo, Christian Montoya, Oliver Renwick, Megan Dias께 특별히 감사드립니다. 또한 프로젝트 초기 단계에서 지도와 지원을 제공해 주신 Clarissa Watson과 Francesco Andreoli께도 감사의 말씀을 전합니다.

AI가 번역했습니다. 오류가 있을 수 있습니다. 항상 정보를 확인하시기 바랍니다.

번역 평가하기

이 글의 작성자: