본문으로 건너뛰기
0%

ERC-4337 스마트 컨트랙트 지갑은 어떻게 작동할까?

2024년 2월 5일에 게시됨3분 읽기

Account Abstraction (ERC-4337)를 사용하는 스마트 컨트랙트 지갑은 EOA (Externally Owned Address) 지갑처럼 단일 개인키로 관리되는 지갑이 아니라, 스마트 컨트랙트로 관리되는 지갑을 생성합니다.

스마트 컨트랙트 지갑의 프로그래밍 가능한 특성은 다양한 새로운 사용 사례의 개발을 가능하게 합니다. 보안이나 익명성을 희생하지 않으면서 복잡성을 줄임으로써, 스마트 컨트랙트 지갑은 다음 블록체인 사용자들의 온보딩을 돕게 될 것입니다.

앱에 임베디드 스마트 컨트랙트 지갑을 추가하고 싶으신가요? 시드 문구, 가스, 마찰 없이 사용자를 온보딩할 수 있는 엔터프라이즈급 Embedded Accounts와 수직 통합된 AA 인프라를 사용하세요.

스마트 컨트랙트 지갑이란 무엇인가요?

스마트 컨트랙트 지갑은 스마트 컨트랙트를 사용하여 디지털 자산(예: 암호화폐, NFT 등)을 저장하고 관리합니다. 스마트 컨트랙트 지갑은 account abstraction의 기반입니다: account abstraction이란 다양한 Ethereum 계정 유형을 단일 유형으로 통합하는 과정으로, 계정의 제어권을 네트워크로부터 '추상화'하여 스마트 컨트랙트로 정의하는 것을 말합니다.

ERC-4337을 사용하는 스마트 컨트랙트 지갑의 몇 가지 예시:

  1. Soul Wallet
  2. Candide
  3. UniPass
  4. Castle
  5. Openfort

ERC-4337을 사용하지 않는 두 가지 주요 스마트 컨트랙트 지갑은 Safe와 Argent입니다.

컨트랙트 계정(cas)이란 무엇인가요?

스마트 컨트랙트라고도 불리는 컨트랙트 계정은 당사자 간 정보 교환을 관리하는 코드를 포함합니다. 컨트랙트 계정은 모든 DeFi 프로토콜, NFT 컬렉션, ERC-20 토큰에서 사용됩니다.

컨트랙트의 모든 비즈니스 로직과 상태 변수는 온체인에 저장됩니다. 스마트 컨트랙트의 상태와 코드가 온체인에 저장되기 때문에, 이를 배포하는 externally-owned account는 수수료를 지불해야 합니다.

참고: web3 프로그래밍에는 '스마트 컨트랙트 팩토리' 패턴이 있는데, 이는 컨트랙트가 미리 정의된 인터페이스를 통해 다른 컨트랙트를 배포할 수 있는 방식입니다. 이 경우에도, 이를 시작하는 트랜잭션은 EOA로부터 시작되어야 하고 EOA가 그 비용을 지불해야 합니다.

컨트랙트 계정은 **externally owned accounts(eoas)**와 어떻게 다르게 작동하나요?

스마트 컨트랙트 계정과 EOA 계정의 주요 차이점은 스마트 컨트랙트 계정이 로직을 포함할 수 있다는 것입니다. EOA 계정만이 트랜잭션을 시작할 수 있기 때문에, 스마트 컨트랙트 계정은 사용자 작업을 하나의 트랜잭션으로 묶어 블록체인에 게시하기 위해 Bundler의 EOA 계정에 의존합니다.

현재 Ethereum 프로토콜 하에서, EOA는 컨트랙트 호출이든 값 전송이든 트랜잭션을 시작할 수 있는 유일한 계정 유형입니다. 컨트랙트 계정이 다른 컨트랙트 계정을 호출하는 경우에도, 트랜잭션의 출처는 항상 externally-owned account입니다.

다음은 컨트랙트 계정과 EOA 계정을 비교한 것입니다:

EOA
CONTRACTS

Controlled by a human, through a private key

No private key. Governed by its own code

Can initiate transactions

Can never be the origin of a transaction initiation

Does not contain code

Contains code and state, stored in storage

Created offchain for free

Created onchain for a cost, incurred by the deployer

그렇다면 스마트 컨트랙트 지갑은 스스로 트랜잭션을 시작할 수 없는데 어떻게 트랜잭션을 실행할까요?

ERC-4337 스마트 컨트랙트 지갑의 작동 방식

스마트 컨트랙트 지갑은 트랜잭션을 시작할 수 없기 때문에, EOA 지갑에 의해 호출되어야 합니다. 이 과정은 여러 Account Abstraction 인프라 제공업체(예: Bundler)와 스마트 컨트랙트(예: EntryPoint)에 의해 지원됩니다.

스마트 컨트랙트 지갑 트랜잭션의 일반적인 흐름은 다음과 같습니다:

  1. 사용자가 UserOperation을 실행하고자 합니다
  2. UserOperation은 "alternative mempool"로 전송됩니다
  3. EOA 지갑을 가진 Bundler가 모든 UserOperation을 묶어서 EntryPoint 컨트랙트로 전송합니다
  4. EntryPoint 컨트랙트가 모든 UserOperation을 검증하고 실행합니다
  5. UserOperation을 묶은 EOA 지갑은 사용자를 대신해 지출한 ETH를 사용자의 지갑이나 Paymaster로부터 돌려받습니다
UserOps가 번들링, 검증, 실행되는 과정을 보여주는 다이어그램
UserOps가 번들링, 검증, 실행되는 과정을 보여주는 다이어그램

스마트 컨트랙트 지갑이 기술적으로 어떻게 작동하는지 이해하기는 어려울 수 있지만, 최종 사용자 입장에서는 스마트 컨트랙트 지갑이 EOA 지갑에 비해 프로그래밍 가능성과 소셜 복구 같은 기능을 포함한 많은 개선점을 제공합니다.

스마트 컨트랙트 지갑의 작동 방식을 배우기 위한 추가 자료

Account Abstraction의 각 구성 요소가 어떻게 작동하는지에 대한 더 자세한 내용은, Alchemy의 Account Abstraction Infrastructure 엔지니어링 팀의 David Philipson이 작성한 "You Could Have Invented Account Abstraction" 시리즈를 참고하세요.

  1. UserOps, Bundlers, and the EntryPoint Contract
  2. Sponsoring Gas Using Paymasters
  3. Aggregating Signatures

자주 묻는 질문

스마트 컨트랙트 지갑이란 무엇인가요?

스마트 컨트랙트 지갑은 단일 개인키 대신 스마트 컨트랙트를 사용하여 암호화폐와 NFT 같은 디지털 자산을 저장하고 관리하며, account abstraction의 기반 역할을 합니다.

ERC-4337 스마트 컨트랙트 지갑은 어떻게 작동하나요?

ERC-4337 지갑은 사용자가 UserOperation을 생성하고, 이를 alternative mempool로 전송하며, bundler가 이를 모아 EntryPoint 컨트랙트에 제출하여 검증 및 실행하고, 이후 지갑이나 Paymaster로부터 비용을 돌려받는 흐름을 사용합니다.

스마트 컨트랙트 계정과 EOA 계정의 차이점은 무엇인가요?

스마트 컨트랙트 계정은 프로그래밍 가능한 로직을 포함하지만 스스로 트랜잭션을 시작할 수 없으며, EOA 계정은 트랜잭션을 시작할 수 있지만 프로그래밍 가능한 기능이 없습니다.

UserOperation이란 무엇인가요?

UserOperation은 사용자가 생성하는 트랜잭션 요청으로, alternative mempool로 전송되며, bundler가 이를 모아 EntryPoint 컨트랙트를 통해 처리합니다.

ERC-4337에서 bundler의 역할은 무엇인가요?

Bundler는 EOA 지갑을 가진 노드로, alternative mempool에서 UserOperation을 모아서 하나로 묶은 후 EntryPoint 컨트랙트에 제출하여 검증 및 실행하게 합니다.

EntryPoint 컨트랙트란 무엇인가요?

EntryPoint 컨트랙트는 bundler가 제출한 묶인 UserOperation을 검증하고 실행하는 온체인 스마트 컨트랙트입니다.

스마트 컨트랙트 지갑은 가스 수수료가 필요한가요?

스마트 컨트랙트 지갑은 Paymaster를 사용하여 가스 수수료를 지원받을 수 있으며, 이를 통해 사용자가 직접 가스를 지불할 필요가 없는 가스리스 트랜잭션이 가능합니다.

ERC-4337 스마트 컨트랙트 지갑의 예시를 들어줄 수 있나요?

예시로는 Soul Wallet, Candide, UniPass, Castle, Openfort가 있으며, Safe와 Argent는 ERC-4337을 사용하지 않는 스마트 컨트랙트 지갑입니다.

Background gradient

블록체인 매직을 만드세요

Alchemy는 가장 강력한 Web3 개발자 제품 및 도구를 리소스, 커뮤니티, 그리고 전설적인 지원과 결합합니다.