Validator’s Note 14 — Account Abstraction과 Interchain Account 차이점 알아보기(Feat. ChatGPT)

Youngbin Park
DSRV
Published in
10 min readJun 5, 2023

--

Disclaimer: 이 글은 정보 전달을 위한 목적으로 작성되었으며, 특정 프로젝트에 대한 투자 권고, 법률적 자문 등 목적으로 하지 않습니다. 모든 투자의 책임은 개인에게 있으며, 이로 발생된 결과에 대해 어떤 부분에서도 DSRV는 책임을 지지 않습니다. 본문이 포괄하는 내용들은 특정 자산에 대한 투자를 추천하는 것이 아니며, 언제나 본문의 내용만을 통한 의사결정은 지양하시길 바랍니다.

최근 이더리움에서는 Account Abstraction이라는 새로운 기능이 화제가 되고 있습니다. 하지만 Account Abstraction, 즉 한국어로 계정 추상화라고 하는 이 기능은 이름만 듣고서는 무엇을 하는 기능인지 알기 쉽지 않습니다. 아! 그러고 보니 코스모스 생태계에 생긴 Interchain Account 기능과 이름이 비슷한 것 같기도 합니다. 최근 다양한 코스모스 생태계의 체인에서 Interchain Account가 활성화되고 있는데요. 혹시 Account Abstraction 그리고 Interchain Account는 유사한 기능인 걸까요? 아니면 완전히 다른 기능일까요?

이번 Validator’s Note에서는 조금 쉬어가는 시간으로 비슷한 이름 때문에 헷갈리는 두 기능을 간단하게 알아보고 한번 비교해볼까 합니다. ChatGPT를 사용해서요!

Account Abstraction

먼저 Account Abstraction기능에 대한 이더리움 표준인 ERC-4337문서를 통해 ChatGPT에게 Account Abstraction을 설명해 달라고 요청해 봅시다. [1]

Account Abstraction은 무엇을 하려고 하나요?

이더리움에는 사용자의 외부 소유 계정(EOA)과 스마트 컨트랙트가 저장된 계약 계정(CA) 두 가지 계정이 존재합니다. 이 때, 트랜잭션을 보내 스마트 컨트랙트를 실행시키려면 EOA 계정의 소유자가 서명해야 하며, 개인키가 없는 CA는 스스로 트랜잭션을 생성 및 스마트 컨트랙트의 로직을 실행시킬 수 없습니다.

하지만, ‘Account Abstraction’은 이런 방식을 조금 바꾸는 아이디어입니다. 현재처럼 각 계정의 기능을 분리하여 EOA가 단순히 개인 키로 서명한 거래만을 보낼 수 있는 곳이 아니라, 더 복잡한 로직을 가진 스마트 컨트랙트, 즉 CA의 기능도 할 수 있게 하는 것입니다. 이렇게 하면 사용자는 거래를 보내거나 스마트 컨트랙트를 실행시키는 방법을 자유롭게 설정할 수 있게 됩니다.

예를 들어, 사용자는 이 계정을 통해 트랜잭션 수수료를 ERC-20 토큰으로 지불하거나, 다른 사용자의 트랜잭션 수수료를 대신 지불하거나, 자동 결제, 다중 서명(multi-sig), 계정 복구 등 복잡한 작업을 수행할 수 있습니다. 이처럼 사용자의 편의성을 크게 개선한 지갑을 만들 수 있어 많은 주목을 받고 있습니다.

Acocunt Abstraction은 어떻게 동작하나요?

이더리움에서 ‘Account Abstraction’은 ERC-4337라는 표준을 통하여 구현되었습니다. 여기서 핵심은 ERC-4337이 Account Abstraction의 일부 기능을 제공하지만, EOA가 이더리움 블록체인과 상호작용하는 방식을 변경하지 않는다는 점입니다.

이 제안에 따르면, 사용자는 ‘UserOperation’이라는 새로운 종류의 거래를 생성할 수 있게 됩니다. 이 ‘UserOperation’은 사용자가 원하는 작업을 담고 있는 패키지와 같은 것으로, 이 패키지는 ‘Bundler’라는 특별한 역할을 하는 참여자들을 통해 이더리움에 전달됩니다.

ERC-4337의 동작 과정을 편지를 보내는 것에 비유해 볼 수 있습니다.

  1. UserOperation: UserOperation는 사용자가 원하는 작업을 적어 보내는 ‘편지’에 비유할 수 있습니다. 여기에는 누가 편지를 보내는지, 무엇을 하려는지, 작업에 얼마나 많은 노력(Gas Fee)를 사용할지 등의 세부 정보가 포함됩니다. 사용자는 이를 별도의 우체통(UserOperation Mempool)으로 제출합니다.
  2. Bundler: Bundler는 ‘집배원’에 비유할 수 있습니다. 이들은 우체통에서 편지(UserOperation)를 모아서 우체국(Entrypoint Contract)으로 전달합니다.
  3. Entrypoint Contract: 이는 ‘우체국’에 비유할 수 있습니다. 이더리움 위에 있는 이 우체국(Entrypoint Contract)은 집배원(Bundler)이 전달한 편지(UserOperation)를 받아 검증하고 수수료를 지불 받고, 실행되도록 합니다. (이때 Paymasters 라는 기능을 사용하여 사용자가 지불할 수수료를 후원하거나, ERC-20으로 수수료를 지불 할 수도 있습니다.)

Interchain Account

이번에는 Interchain Account를 알아볼까요? Interchain Account의 스펙 문서인 ICS-027과 아티클을 통해 Interchain Account을 설명해 달라고 요청해 봅시다. [2][3]

Interchain Account는 무엇을 하려고 하나요?

Interchain Account(인터체인 계정)는 코스모스의 IBC(Inter-Blockchain Communication) 채널을 사용하여 하나의 블록체인(Controller Chain)이 다른 블록체인(Host Chain)의 계정을 제어할 수 있도록 하는 코스모스 생태계의 기능입니다. Controller Chain은 Host Chain에 Interchain Accounts을 만들고, 트랜잭션을 보내 Host Chain에서 트랜잭션을 실행하게 할 수 있으며, 여러 인터체인 계정을 관리할 수 있습니다.

예를 들어, Controller Chain의 사용자는 Host Chain내에서 토큰을 전송하거나 거버넌스 제안에 투표하거나 스테이킹을 하는 것과 같은 지시를 보내고 호스트 체인의 인터 체인 계정이 해당 지시를 수행하게 할 수 있습니다.

Interchain Account은 어떻게 동작하나요?

ICS-027은 Interchain Account을 구현하기 위해 IBC 프로토콜 내에서 다른 블록체인들 간에 계정을 생성하고 제어하는 방법을 제공하는 표준입니다. 이에 따라 Interchain Account가 동작하는 과정은 원격 조종이 가능한 로봇에 비유해 볼 수 있습니다.

  1. Interchain Account : 이는 ‘원격 제어 로봇’에 비유할 수 있습니다. 로봇은 제어자(Controller Chain)의 지시를 받아 특정 작업을 수행합니다. Interchain Account은 일반 계정과 동일한 기능을 가지지만, 개인 키로 트랜잭션을 서명하는 대신 IBC 패킷을 통해 어떤 행동을 해야 하는지 지시 받습니다.
  2. Controller Chain : 이는 로봇을 원격으로 제어하는 ‘제어자’에 비유할 수 있습니다. 이 제어자는 특정 환경(Host Chain)에서 명령을 수행할 수 있는 로봇(Interchain Account)을 만들고, 이 로봇에게 어떤 작업을 수행해야 하는지 IBC 패킷으로 지시합니다.
  3. Host Chain : 이는 로봇이 행동하는 ‘실제 환경’에 비유할 수 있습니다. 이 환경(Host Chain)은 로봇이 특정 작업을 수행할 수 있도록 로봇(Interchain Account)이 어떤 행동을 해야 하는지 알려주는 신호(IBC 패킷)를 수신합니다.
  4. Interchain transaction(IBC 패킷): 이는 로봇(Interchain Account)이 수행할 특정 행동을 지시하는 ‘명령’에 비유할 수 있습니다. 이 트랜잭션은 Controller Chain에서 생성되고, 릴레이어(relayer) 를 통해 Host Chain에 전달되어 실행됩니다.
  5. Authentication Module: 이는 로봇의 ‘제어 코드’에 비유할 수 있습니다. 제어 코드는 로봇이 어떤 동작을 해야 할지를 결정하는 데 사용됩니다. Authentication Module은 Interchain Accounts 모듈을 활용하여 이러한 ‘제어 코드’를 작성합니다​.

그럼 이제 둘이 어떻게 다른지 비교해 볼까요?

Account Abstraction과 Interchain Account의 차이점은 무엇인가요?

  1. Interchain Account: 코스모스의 Interchain Account는 블록체인 간 상호운용성을 위해 IBC 프로토콜을 통해 다른 블록체인의 계정을 제어할 수 있도록 설계되었으며, 크로스 체인 통신과 상호작용을 용이하게 하는 것을 목표로 합니다. Interchain Account는 한 블록체인에서 실행 중인 응용 프로그램이 다른 블록체인에서 작업을 수행할 수 있는 권한을 부여할 수 있습니다.
  2. Account Abstraction: Account Abstraction또는 ERC-4337은 이더리움 블록체인 자체에서 외부 소유 계정(EOA)이 상호작용하는 방식을 변경하여 더 많은 유연성과 기능을 제공하는 것을 목표로 합니다. 이더리움의 Account Abstraction은 지갑의 사용성을 개선하고 사용자들에게 거래에 대한 더 많은 유연성을 제공할 수 있게 합니다.

마무리

지금까지 유사한 이름의 두 기능을 쉽게 정리 및 비교해 보았는데요. 요약하자면, 코스모스의 Interchain Account는 블록체인 간 통신과 계정 제어를 가능하게 하는 데 중점을 두는 반면, 이더리움의 Account Abstraction은 블록체인간 통신보다는 이더리움 계정에 더 많은 유연성과 기능을 제공하는 것을 목표로 합니다. 위처럼 이 둘이 실제로는 다른 목적과 기능을 가지고 있다는 사실을 확실히 알 수 있었습니다.

최근 ChatGPT에 브라우징 기능이 생긴 이후에는 최신 정보를 검색하는 것은 물론 및 사용자가 살펴봐 주길 원하는 소스들을 링크로 줄 수 있어 리서치에서의 활용도가 매우 높아진 것 같습니다. 비유를 통하여 쉽게 설명하거나, 원하는 형식으로 글을 작성해 달라고 할 수도 있습니다. 여전히 2차적인 검증은 필요할 것 같지만요. 오늘 읽으신 아티클 또한 ChatGPT에게 질문을 하여 답변받은 내용을 기반으로 편집 및 검증을 더하여 작성되었습니다. ChatGPT의 글솜씨 어떠신가요? 간단한 내용이지만 저만의 어시스턴스가 생겨 재미있게 작성해 보았습니다. 두 기능이 헷갈렸던 분들께도 작은 도움이 되길 바라며 읽어주셔서 감사합니다.

--

--