EIP-4337 계정 추상화는 어떻게 이더리움 UX를 개선할 것인가?
원문 작성자: Nishil, Biconomy 연구원
번역: DeFi 之道
이더리움의 주요 단점 중 하나는 사용자 경험(UX)이 복잡하다는 점입니다. Nethermind 및 OpenGSN 연구진이 제안한 EIP-4337이 계정 추상화(Account Abstraction, AA)를 통해 이를 어떻게 해결하려 하는지 살펴보겠습니다.
그러면 먼저 계정 추상화(AA)가 의미하는 바부터 알아보겠습니다.
1. 계정 추상화(AA)란?
계정 추상화는 사용자가 계정을 보다 쉽게 활용할 수 있도록 하여, 기술적 세부 사항에 대한 이해 없이도 서비스를 이용할 수 있게 해줍니다.
마치 우리가 Gmail 계정을 사용하면서 그 내부 동작 방식을 몰라도 되는 것과 같습니다.
계정 추상화를 통해 우리는 더 이상 두려운 마nemonic 시드(복구 구문) 세계에 갇힐 필요가 없습니다.
다양한 서명 옵션을 활성화할 수 있으며, 가스 비용은 DApp이 대신 지불하거나 법정 화폐로 결제하는 것도 가능해집니다.
이제 계정 추상화(AA)의 정의를 알았으니, 이를 이더리움에 어떻게 적용할 수 있는지 알아보겠습니다.
2. 이더리움에서 계정 추상화를 구현하는 방법
현재 이더리움에는 두 가지 유형의 계정이 존재합니다: 외부 소유 계정(EOA)과 스마트 계약 계정.
-
외부 소유 계정(EOA)은 사용자의 키 쌍(공개키와 개인키)에 의해 제어되는 계정으로, 대부분의 사용자가 이더리움과 상호작용할 때 사용하는 방식입니다. 메타마스크(MetaMask) 같은 지갑 서비스는 이러한 계정과 상호작용하는 인터페이스 역할을 합니다.
-
스마트 계약 계정은 어떤 개인키에도 의존하지 않고, 오직 코드에 의해 제어됩니다. 예를 들어 모든 DeFi 프로토콜은 스마트 계약 계정으로 운영됩니다.
문제는 외부 소유 계정(EOA)이 스마트 계약 계정에는 없는 특권을 갖고 있다는 점입니다. 가장 대표적인 예가 트랜잭션을 시작할 수 있는 능력인데, 현재로서는 오직 EOA만이 트랜잭션을 발송할 수 있습니다.
이는 EOA 기능이 이더리움 프로토콜에 하드코딩되어 있어, 사용자 맞춤형 설정이 불가능하다는 문제를 야기합니다.
예를 들어 Gmail은 계정에 2단계 인증(2FA)을 설정할 수 있는 옵션을 제공합니다. 하지만 현재 이더리움에서는 그러한 맞춤형 보안 기능을 제공할 수 없습니다.
이더리움의 EOA는 다음과 같은 제약 사항을 가지고 있습니다:
-
사용자는 사용자 정의 서명 방식을 사용할 수 없습니다. ECDSA는 이더리움에서 공개키/개인키 쌍을 생성하기 위해 사용하는 표준 서명 방식입니다.
-
가스 비용은 반드시 네이티브 암호화폐($ETH)로 지불해야 합니다.
-
개인키가 곧 계정이므로, 키를 분실하면 계정 자체를 잃게 됩니다.
이러한 문제들은 스마트 계약 지갑을 사용하면 모두 쉽게 해결할 수 있습니다. 왜냐하면 스마트 계약 지갑은 사용자 정의 로직을 포함할 수 있기 때문입니다.
하지만 앞서 언급했듯이, 현재 이더리움에서는 ECDSA로 보호된 외부 소유 계정(EOA)을 통해서만 트랜잭션을 시작할 수 있고, 스마트 계약 지갑은 이를 할 수 없습니다.
여기서 누군가는 "왜 그냥 이것을 바꾸지 않느냐?"고 물을 수 있습니다.
실제로 EIP-2938은 이 문제를 해결하려는 시도 중 하나입니다. 이는 프로토콜 변경을 통해 스마트 계약에서 트랜잭션을 시작할 수 있도록 허용합니다.
하지만 문제는 이것이 프로토콜에 큰 변경이 필요하다는 점입니다.
따라서 Nethermind와 OpenGSN 연구진은 비탈릭 부테린(Vitalik Buterin)의 도움을 받아 EIP-4337을 제안했습니다.
이 제안은 컨센서스 레이어 프로토콜을 수정하지 않고도 이더리움에 '계정 추상화'를 도입하는 방법을 제시합니다.
즉, 합의층 자체의 논리를 수정하는 대신, 현재 트랜잭션 풀(mem pool)의 기능을 더 상위 레벨의 시스템에 복제하는 방식입니다.
이 프로세스에는 여러 구성 요소가 포함되며, 주요 구성 요소는 다음과 같습니다:
-
사용자 작업(User operations)
-
번들러(Bundler)
-
페이마스터(Paymaster, 선택사항)
이제 각 개념을 하나씩 살펴보겠습니다.
이 제안은 '사용자 작업(user operation)'이라는 개념을 도입하여, 사용자가 자신의 스마트 계약 지갑에 맞춤형 기능을 코드로 구현할 수 있게 합니다.
사용자 작업은 사용자의 의도, 서명 및 검증에 필요한 기타 데이터를 패키징합니다.
관련 이미지:
스마트 계약 지갑을 통해 트랜잭션을 실행하는 일반적인 흐름은 다음과 같습니다:
1. 앨리스(사용자)가 수행하고자 하는 트랜잭션을 포함한 '사용자 작업'을 생성합니다.
2. 해당 작업을 상위 레벨의 '사용자 작업 풀(user operation mempool)'에 전송합니다.
3. 작업은 부분적으로 검증된 후 P2P 네트워크를 통해 전파됩니다.
4. 이후 '번들러(Bundler)'가 작업을 선택하여 실행합니다. 누구나 번들러가 될 수 있으며, MEV 검색자, 검증자, 혹은 당신이나 저도 가능합니다.
5. 번들러는 여러 작업을 하나의 큰 트랜잭션으로 묶습니다.
6. 번들러는 이 트랜잭션을 다른 트랜잭션들과 함께 이더리움 블록에 포함시킵니다.
이제 번들러의 기능을 더 깊이 분석하여 트랜잭션이 어떻게 실행되고 검증되는지 살펴보겠습니다.
1. 번들러는 트랜잭션을 전역적인 '엔트리 포인트(entry point)' 스마트 계약으로 라우팅합니다.
2. 전역 계약은 각 사용자 작업을 순회하며, 스마트 계약 지갑 내의 '검증 함수(validate function)'를 호출합니다.
3. 지갑은 이 함수를 실행하여 사용자 작업의 서명을 검증하고, 번들러에게 트랜잭션 처리 비용을 보상합니다.
4. 지갑은 '실행 함수(execute function)'를 실행하여 지정된 작업을 수행합니다.
5. 작업 완료 후 남은 가스는 지갑으로 환불됩니다.
이 EIP는 또한 '페이마스터(paymaster)'라는 개념을 도입합니다.
이제 사용자는 자신의 지갑에 의존하지 않고, 페이마스터가 자신의 트랜잭션 수수료를 대신 지불하도록 할 수 있습니다.
거래 수수료 스폰서십 기능은 다양한 용도로 활용될 수 있으며, 가장 자주 언급되는 사례는 다음과 같습니다:
-
앱 개발자가 사용자를 대신해 수수료를 지불하게 함
-
사용자가 ERC20 토큰으로 수수료를 지불하고, 계약이 이를 수취하는 중개 역할을 수행
3. 계정 추상화가 우리에게 의미하는 바
모든 것이 매우 흥미롭지만, 우리는 왜 이를 신경 써야 할까요? 그 이유는 다양합니다.
이 제안은 사용자 정의 서명 방식을 사용할 수 있게 해줍니다. 이제 사용자는 iOS 및 Android 기기의 내장 보안 기능(생체 인식 등)을 활용하여 스마트폰 자체를 하드웨어 지갑처럼 사용할 수 있습니다.
이더리움 상에서 다중 서명(multisig)을 기본적으로 지원할 수 있게 됩니다. 두 명 이상의 사용자가 단일 거래를 승인해야 하는 구조를 통해 보안성이 크게 향상됩니다.
소셜 리커버리(social recovery) 기능이 가능해집니다. 사용자가 키를 분실했을 경우, 친구나 가족 구성원들이 함께 계정을 복구해 줄 수 있습니다.
이상으로 이 제안에 대한 설명을 마칩니다.
이 제안은 다양한 혁신적인 접근 방식을 소개하고 있으며, 제가 이를 명확히 설명했기를 바랍니다. 팀들이 새로운 사용 사례를 구축하고, 사용자들에게 더 나은 경험을 제공하는 것을 보는 것은 매우 흥미로운 일일 것입니다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News













