SwapSpace – 크로스체인 암호화폐 스왑

새로운 Ethereum 토큰 표준과 그것이 의미하는 것

Ruth Kise

,

업데이트됨: ,4분

다양한 암호화폐는 매우 많지만, 그중 대부분은 동일한 구조 위에 구축되어 있습니다. 이러한 구조를 토큰 표준이라고 하며, 블록체인 토큰의 핵심 기능과 속성을 정의합니다.

토큰 표준은 암호화폐 토큰의 동작을 규정하는 규칙과 합의의 집합입니다. 널리 알려진 표준으로는 ERC-20, BEP-20, ERC-721, ERC-1155가 있습니다.

왜 표준이 필요한가

일관성: 각 새로운 토큰마다 스마트 컨트랙트에 고유한 메커니즘을 따로 규정해야 한다면, 기존 플랫폼, 애플리케이션, 지갑은 이를 제대로 처리할 수 없을 것입니다. 토큰 표준은 이 표준으로 만들어진 제품들이 서로 호환되도록 보장합니다. 예를 들어 ERC-20 자산은 이 토큰 표준으로 개발된 다른 제품 및 서비스와 호환됩니다. 이로 인해 ERC-20 토큰은 같은 표준의 다른 토큰과도 교환할 수 있습니다.

또한 토큰 표준이 없다면 여러 암호화폐를 저장하고 거래하는 일은 훨씬 더 어려워집니다. 여러 암호화폐를 위해 하나의 지갑을 사용하는 대신, 각 토큰마다 개별 지갑을 만들어야 할 것입니다.

연결성: 연결된 시스템은 개발자가 기존 구성 요소를 재사용해 새로운 제품을 만들 수 있게 합니다. 토큰 생성도 마찬가지입니다. 표준을 사용하면 기본 기능 개발이 빨라지고, 그만큼 추가 혁신에 더 많은 시간을 쓸 수 있습니다.

효율성: 토큰 표준은 스마트 컨트랙트 간 상호작용도 더 쉽게 만듭니다. 토큰 표준을 구현한 스마트 컨트랙트와 토큰 자체는 생성된 토큰을 추적하는 데 활용될 수 있습니다.

ERC-20 및 BEP-20과 같은 토큰 표준에는 주소 조회 및 토큰 잔액 매핑을 포함한 중요한 기능이 들어 있어, 스마트 컨트랙트가 토큰을 더 효율적으로 추적할 수 있습니다. 예를 들어, ERC-20 토큰의 전송 이력과 기타 데이터를 확인하려면 개발자는 컨트랙트의 애플리케이션 바이너리 인터페이스(ABI)를 사용할 수 있습니다.

다양성: 클라이언트 소프트웨어에 다양한 표준이 존재하면, 누구나 Ethereum 클라이언트를 어떤 프로그래밍 언어로든 자신만의 버전으로 작성할 수 있으며, 이는 Ethereum 노드와 클라이언트에 대한 표준 및 사양을 준수하는 한 가능합니다. 따라서 Ethereum 네트워크에는 수많은 노드와 클라이언트가 존재할 수 있고, 그중 일부는 Golang, Rust, Java, C #, C++, Python으로 작성된 Ethereum 소프트웨어를 실행합니다. 이는 "클라이언트 다양성"을 높여 단일 코드 구현에 대한 의존도를 줄임으로써 네트워크를 더 강하게 만듭니다. 그러나 소프트웨어 언어, 설계, 구현 세부사항과 관계없이 이들 구현에는 공통점이 하나 있습니다. 모두 단일 클라이언트 사양을 따른다는 점입니다.

따라서 표준은 구현의 다양성을 늘리는 데 도움이 됩니다. 이는 보안, 속도, 확장성 등에 대해 서로 다른 접근 방식이 존재할 수 있음을 의미하며, 이러한 다양성은 전체 사용자 경험을 풍부하게 합니다.

새로운 Ethereum 토큰 표준

EIP-4337 업데이트는 ETHDenver 관련 WalletCon 컨퍼런스에서 공개되었고, 2023년 3월 1일 Ethereum에 배포되었습니다. 이 EIP의 핵심 혁신은 이른바 계정 추상화(account abstraction)의 구현과 새로운 지갑 표준의 등장으로, 개발자들에 따르면 사용자 경험 수준을 높이고 블록체인과의 상호작용을 더 편리하게 만들어 줍니다. 이제 이러한 지갑이 무엇인지, 일반 지갑과 어떻게 다른지, 그리고 왜 EIP-4337이 필요한지 살펴보겠습니다.

컨트랙트 계정이란 무엇이며 일반 계정과 어떻게 다른가

EIP-4337이 무엇을 목표로 하고 어떤 혁신을 제공하는지 더 잘 이해하기 위해 한 걸음 뒤로 물러나 보겠습니다. Ethereum 네트워크에 업데이트가 도입되기 전에는 두 가지 유형의 계정이 있었습니다:

  • 외부 소유 계정(EOA): 인프라 제공자를 사용해 생성하는 지갑입니다. MetaMask와 다른 개발자들이 제공하는 지갑의 99%가 사용하는 지배적인 유형입니다.
  • 컨트랙트 계정(CA): EVM의 코드, 즉 스마트 컨트랙트에 의해 관리되는 지갑입니다. 실행과 관리를 위해 인프라 제공자가 필요하지 않습니다.

EOA가 지배적인 이유는 네트워크 자체의 구조에 있습니다. 거래 서명을 위해 ECDSA 표준을 사용해야 하기 때문입니다. 스마트 컨트랙트는 ECDSA를 사용해 거래에 서명할 수 있는 기능이 없으므로, CA는 스스로 거래를 시작할 수 없습니다. 즉, 일반 사용자에게는 지갑으로서 사실상 쓸모가 없습니다.

한편 EOA는 개인키와 공개키를 사용하는 단일형 거래 처리 로직을 사용합니다. 이런 단일형 로직 때문에 개발자는 신원 확인 요구사항 같은 구성 요소를 자유롭게 맞춤 설정할 수 없습니다. 그래서 어떤 블록체인 애플리케이션이든 상호작용을 위해 개인키와 공개 주소를 가진 EOA 지갑이 필요합니다.

EIP-4337은 EOA의 장점을 없애고 CA를 더 편리하게 만들기 위해, 스마트 컨트랙트 형태의 새로운 지갑 표준과 Ethereum 네트워크의 새로운 레이어를 추가하여 개인키와 공개키 없이도 거래를 수행하고 검증할 수 있게 해야 합니다. 이를 위해 개발자들은 이른바 계정 추상화를 구현했습니다. 이 용어를 더 자세히 살펴보겠습니다.

계정 추상화란 무엇인가

"계정 추상화"라는 개념은 초보자에게는 직관적으로 와닿지 않으며 이해를 어렵게 합니다. 정보학에서 추상화란 하나의 프로세스를 여러 부분으로 나누어 각각 독립적으로 수행할 수 있게 하는 것을 의미합니다. 쉽게 말해, 프로세스가 모듈화되고 각 모듈을 설정할 수 있는 가능성이 열립니다.

Ethereum 지갑의 맥락에서 이는 이제 하나의 연속된 과정으로 일어나는 거래 검증과 실행을 분리하는 것을 의미합니다. 이에 따라 컨트랙트 계정은 각 프로세스를 유연하게 설정할 수 있게 해 주며, 이는 사용자 경험을 최적화할 더 많은 기회를 제공합니다. 

또한 계정 추상화는 계정과 그 소유자를 분리한다는 의미이기도 합니다. 현재는 지갑과 사용자가 사실상 하나입니다. 시드 구문 또는 개인키의 소유자만 자산을 보낼 수 있고, 공개 주소의 소유자만 자산을 받을 수 있기 때문입니다. 추상화를 통해 EVM에서 코드를 제어하는 스마트 컨트랙트를 지갑으로 실행할 수 있게 되며, 공개키와 개인키의 묶음이 아니라 말입니다. 이는 지원되는 인증 방식과 지갑 보안 기능을 확장합니다.

EIP-4337 컨트랙트 계정은 어떻게 작동하는가 

EIP-4337은 계정 추상화를 구현하고 Ethereum 네트워크에서 컨트랙트 계정을 실행하려는 첫 시도는 아닙니다. Vitalik Buterin은 2016년에 계정 추상화의 첫 버전을 처음 제시했고, 이후 이 문제와 관련해 5개의 서로 다른 EIP(86, 1014, 2938, 3074, 4337)가 제안되었습니다. 그러나 기본 Ethereum 프로토콜의 수정이 필요하지 않은 개념을 도입한 것은 EIP-4337이었고, 이는 네트워크 하드포크 없이 채택할 수 있다는 점에서 결정적인 요소였습니다.

EIP-4337에서의 계정 추상화 아키텍처는 다음의 기본 요소로 구성됩니다:

UserOperation: 의사 거래(pseudo-transaction)라고도 합니다. 표준 지갑을 사용하는 거래와 유사하지만 일반 거래보다 더 많은 데이터를 포함합니다.

Bundler: mempool에서 UserOperation을 선택해 패킷으로 묶고 EntryPoint로 전송하여 검증을 요청하는 노드입니다. Bundler 기능은 현재의 Ethereum 검증자가 수행하게 되며, 그 대가로 거래 수수료의 일부 형태로 추가 보상을 받을 수 있을 것으로 예상됩니다.

EIP-4337은 Ethereum 블록체인 위에 새로운 인프라 레이어를 만들기 때문에 UserOperations는 메인 네트워크의 mempool과는 다른 자체 mempool을 가집니다. 일반 검증자는 여기에 접근할 수 없습니다.

EntryPoint: Ethereum 네트워크에서 거래 검증을 담당하는 스마트 컨트랙트입니다. EIP-4337 인프라 전체에서 핵심 요소이므로, 개발자들은 이 스마트 컨트랙트의 보안과 신중한 감사에 집중합니다. EntryPoint는 여러 기능을 한 번에 수행하며, 이를 통칭해 "거래 검증"이라고 부를 수 있습니다.

Contract Account: 사용자가 소유한 스마트 지갑입니다. EntryPoint를 통해 검증된 거래는 EIP-4337 인프라에서 동시에 블록체인과 사용자의 스마트 지갑으로 실행을 위해 전송됩니다.

선택적으로 다음 요소도 배포할 수 있습니다:

Paymasters: 이는 후원 컨트랙트로, 발신자 대신 거래 수수료를 지불하거나 어떤 ERC-20 토큰으로든 가스를 지불할 수 있게 합니다. 예를 들어, P2E는 플레이어가 가스 비용을 지불하기 위해 ETH를 구매할 필요가 없도록 인프라에 Paymaster를 배포할 수 있습니다.

Aggregators: 사용자 서명 집계기입니다. 이른바 원자적 거래를 가능하게 하여 여러 작업을 하나의 거래로 묶을 수 있습니다. 실무적으로는 dApp과 상호작용할 때 필요한 서명 수를 최소화할 수 있습니다.

스마트 지갑 EIP-4337을 사용한 거래의 생명주기는 다음과 같습니다: 

  1. 1. 사용자는 인터페이스를 제공하는 서비스인 지갑 애플리케이션을 통해 UserOperation을 시작하며, 이는 특수 mempool로 전송됩니다.
  2. 2. 네트워크 검증자 역할을 하는 Bundler가 이 mempool에서 거래를 선택해 패킷으로 구성합니다.
  3. 3. UserOperations 패킷은 EntryPoint 스마트 컨트랙트로 전송됩니다. 스마트 컨트랙트는 거래 실행 가능 여부와 사용자가 또는 Paymaster가 가스 비용을 지불할 만큼 충분한 ETH를 보유하고 있는지 확인합니다.
  4. 4. 모든 조건이 충족되면 거래는 수신자의 Contract Account와 Ethereum 검증자에게 전송되어 블록체인에 포함됩니다.

EIP-4337 지갑의 장점과 과제 

계정 추상화 전반과 EIP-4337 업데이트의 핵심 목표는 EOA 지갑을 스마트 지갑(CA)으로 대체하는 것입니다. Vitalik Buterin과 다른 전문가들에 따르면, 이는 개발자들이 더 높은 품질의 사용자 경험을 만들 수 있는 더 많은 기회를 제공합니다. 특히 스마트 지갑은 다음을 지원합니다:

  • 다양한 인증 옵션: 거래 검증 로직의 추상화는 사용자 인증 옵션을 유연하게 맞춤 설정할 수 있게 합니다. 이를 위해 신뢰할 수 있는 이메일, 생체 인증기, 또는 화이트리스트에 등록된 기기 등을 사용할 수 있습니다. 즉, 어떤 기기든 일종의 개인키 대체물로 전환할 수 있습니다.
  • 유연한 수수료 지불 메커니즘: Paymaster 후원 컨트랙트는 가스 비용 부담을 발신자에서 제3자로 옮기고, 더 복잡한 가스 지불 모델(예: ERC-20 토큰 또는 할인 적용)을 만들 수 있게 합니다. 즉, 사용자는 이제 dApp과 상호작용하기 위해 ETH를 구매할 필요가 없어져 초보자의 진입 장벽이 낮아집니다.
  • 고급 계정 보안 설정: 인증 방식 외에도 다중 서명, 일일 지출 한도, 또는 거래 지연 시간 같은 추가 보안 설정을 포함할 수 있습니다. 이는 공격자가 계정에 접근하더라도 사용자의 자금을 보호하는 데 도움이 됩니다.
  • 원자적 다중 작업: 앞서 설명한 Aggregators 컨트랙트가 이 기능을 담당합니다. 이를 통해 첫 DEX 스왑, 마켓플레이스에서의 NFT 구매, 기타 dApp 상호작용에 필요했던 수많은 서명을 잊어버릴 수 있습니다.

중요한 진전 중 하나는 지갑의 사회적 복구가 가능하다는 점입니다. 이 기능을 통해 사용자는 친구나 친척처럼 신뢰하는 지갑 또는 이메일 주소 목록을 통해 지갑 접근 권한을 되찾을 수 있습니다.

즉, 평범한 P2E에 들어가기 위해 지갑을 만들고, ETH를 사고, 여러 번 서명하고, 사기 스마트 컨트랙트에 자산 접근 권한을 넘기지 않도록 애써야 했던 시대는 이제 지나가고 있습니다. 새로운 기능의 지갑은 MetaMask와 Ledger보다 Google이나 Apple ID 계정에 더 가까워질 것입니다.

핵심 정리

토큰 표준은 블록체인 기반 토큰을 개발하고 운영하기 위한 독특한 구조입니다. 현재 업계에는 여러 토큰 표준과 많은 혁신적 솔루션이 존재합니다. 그중 하나가 EIP-4337입니다.

EIP-4337은 대중적 확장을 향한 중요한 단계입니다. 새로운 계정은 더 익숙하고 이해하기 쉬운 사용자 경험을 제공하기 때문입니다. 트위터 비밀번호를 잊어버린 사람들이 12개의 단어를 외우고 개인키와 공개키가 무엇인지 이해해야 하는 기술을 사용할 가능성은 낮습니다.

공유:

관련 글

더 궁금한가요?

뉴스레터에 참여하여 정보를 얻고 역량을 강화하세요.