---
title: "계정 추상화(ERC-4337) vs. 메타 트랜잭션(ERC-2771)"
description: "개발자들이 메타 트랜잭션 대신 계정 추상화를 채택하는 이유"
---

# 계정 추상화(ERC-4337) vs. 메타 트랜잭션(ERC-2771)

[메타 트랜잭션](https://www.alchemy.com/smart-wallets)과 Account Abstraction은 Ethereum의 사용자 경험을 개선하기 위한 기법입니다. 메타 트랜잭션은 스마트 컨트랙트 업데이트가 필요하기 때문에 점차 폐기되고 있습니다.

## Account Abstraction은 메타 트랜잭션과 어떻게 다른가?

Account Abstraction은 가스 요금뿐 아니라 Ethereum Account의 더 많은 복잡성을 추상화하는 것을 목표로 합니다.

기술적 관점에서, 메타 트랜잭션과 Account Abstraction의 차이는 메시지의 구조와 그 하위 호환성에 있습니다.

## Account Abstraction에 대해 더 알아보기

<ExternalVideo
  url="https://youtu.be/Vpk_MhY-EeE?si=jb8KXjjgr51eiNta"
  provider="youtube"
  providerUid="Vpk_MhY-EeE"
/>

### Account Abstraction에서 UserOps란?

메타 트랜잭션의 경우, 업계 표준은 EIP712 기반 메시지를 사용하는 것이었고, 이를 위해서는 모든 스마트 컨트랙트를 업그레이드해야 했습니다.

Account Abstraction은 _UserOperations_라는 특수한 트랜잭션 포맷을 표준화합니다.

UserOperation에는 사용자가 수행하려는 트랜잭션을 파악하는 데 필요한 모든 정보가 포함됩니다. 여기에는 사용할 Paymaster를 결정하는 필드, 사용자가 지불할 의사가 있는 금액(자체 후원의 경우), 그리고 서명된 UserOperation이 포함됩니다.

### Account Abstraction에서 paymaster란?

ERC-4337 Account Abstraction 표준의 가스 추상화 부분은 _Paymasters_를 도입합니다.

Paymaster는 **유효한 가스 후원을 정의하는 데 사용할 수 있는 임의의 검증 로직을 가진 온체인 스마트 컨트랙트**입니다. 여기서도 차이점은 *실행이 온체인에서 이루어진다*는 점입니다.

[DAO](https://www.alchemy.com/dapps/top/daos), [앱](https://www.alchemy.com/dapps/top/defi-dapps) 및 기타 팀은 ERC-20 가스 결제 등의 기능을 갖춘 자체 커스텀 paymaster를 배포할 수 있습니다.

이러한 커스텀 Paymaster는 ERC-4337을 사용하여 기존 Bundler Service와 플러그 앤 플레이 방식으로 연동할 수 있습니다. 이는 Provider 채택이 필요한 메타 트랜잭션과는 다른 점입니다.

<CardWithCta
  text="Gas Manager API로 트랜잭션 스폰서하기"
  ctaLabel="시작하기"
  ctaHref="#"
  theme="gradient_blue"
/>

### Relayer vs. paymaster

메타 트랜잭션 개념에서 Relayer는 Infra 프로바이더가 통제하는 개인 키인 반면, Account Abstraction Bundler는 표준화된 노드입니다. 서로 다른 Bundler 간 전환은 API 키와 API URL을 변경하는 것만큼 간단합니다.

Account Abstraction에는 MinimalForwarder라는 개념이 존재하지 않는데, 후원 검증이 Paymaster 컨트랙트 내부에서 온체인으로 이루어지기 때문입니다.

메타 트랜잭션의 경우 하나의 네이티브 트랜잭션 안에 트랜잭션이 하나만 들어가는 것과 달리, Bundler는 여러 _UserOperations_를 하나의 번들(하나의 네이티브 트랜잭션)로 묶습니다!

<CardWithCta
  text="Bundler API로 userOps를 안정적으로 온체인에 반영"
  ctaLabel="시작하기"
  ctaHref="#"
  theme="gradient_blue"
/>

## 메타 트랜잭션 대비 Account Abstraction의 5가지 이점

### 1. 스마트 컨트랙트 변경이 필요 없음

메타 트랜잭션은 이를 채택하려는 기존 컨트랙트 전체에 업데이트가 필요한 반면, Account Abstraction은 기존 인프라 위에 구축됩니다. 즉 모든 스마트 컨트랙트가 기본적으로 Account Abstraction을 지원하므로, 메타 트랜잭션보다 선호되는 옵션이 됩니다.

### 2. Bundler와 paymaster 서비스 간 마찰 없는 전환

ERC-4337 하에서는 모든 Bundler와 Paymaster가 특정 표준을 따라 통신합니다. 팀은 자신의 애플리케이션을 위한 조건부 로직을 가진 Paymaster를 직접 만들 수도 있습니다.

### 3. 독점적인 relayer를 채택할 필요 없음

독점적인 Relayer는 일관성이 부족합니다. 각 Relayer는 자신의 사용 사례에 맞는 고유한 메시지 포맷을 가질 수 있습니다. 이로 인해 서로 다른 각 Relayer와 호환되기 위해서는 스마트 컨트랙트 변경이 필요해집니다.

### 4. 더 높은 탈중앙화

더 많은 프로바이더가 Bundler 서비스를 제공하게 되면서, 개발자는 자신의 트랜잭션 흐름을 탈중앙화할 수 있는 능력을 갖게 됩니다. 이는 또한 개발자가 성능이 떨어지는 Bundler를 버릴 수 있는 기회도 제공합니다.

### 5. 개발자 도구 종속 없음

메타 트랜잭션을 사용할 때는 Infra 프로바이더의 SDK도 함께 사용해야 합니다. 이는 도구 종속으로 이어져 Relayer를 마이그레이션할 때 마찰을 더합니다.

Account Abstraction의 경우, 모든 표준 기능이 모든 SDK에서 지원되므로 자신의 전문성에 따라 SDK를 선택하고 선호에 따라 전환할 수 있습니다!

또한 UserOperation 표준이 모든 벤더에 의해 채택될 예정이므로, UserOperation Explorer와 같은 도구를 만드는 것도 가능해집니다.

## 메타 트랜잭션을 Account Abstraction으로 업데이트하는 방법은?

메타 트랜잭션을 지원하기 위해 이미 스마트 컨트랙트를 변경했다면, 그 변경 사항을 되돌리는 마이그레이션 과정은 간단합니다.

메타 트랜잭션과 달리, Account Abstraction에서는 msg.sender와 msg.data를 그대로 사용할 수 있습니다.

커스텀 Paymaster나 Account Factory가 필요하다면, 그 개발이 마이그레이션의 다음 단계가 됩니다.

표준적인 구현의 경우, 개발 시간과 자체적으로 발생할 수 있는 버그를 줄이기 위해 이미 잘 검증된 기존 AA 프로바이더를 사용할 것을 권장합니다.

[Alchemy의 Gas Manager](https://www.alchemy.com/docs/reference/how-to-sponsor-gas-on-evm)는 _주소별 가스 사용량 제한_, _후원할 최대 UserOperation 수_, _주소 허용 목록, 후원 마감일, 도메인 단위 허용 목록_과 같은 세밀한 제어 기능을 제공합니다!

<ImageBlock
  src="https://media.alchemy.com/1703859980-alchemy-gas-manager-spending-rules.jpeg"
  alt="Alchemy Gas Manager 대시보드: 가스 스폰서십 지출 규칙 설정"
  width={2390}
  height={1028}
  caption="Alchemy Gas Manager의 Spending Rules UI"
/>

<ImageBlock
  src="https://media.alchemy.com/1703860007-alchemy-gas-manager-ui.jpeg"
  alt="스폰서십 한도 및 허용 주소 목록을 위한 Alchemy Gas Manager 정책 설정"
  width={2382}
  height={564}
  caption="Gas Manager UI (계속)"
/>

[Gas Manager Admin API](https://www.alchemy.com/docs/wallets/api/gas-manager-admin-api/admin-api-endpoints/create-policy)를 사용하면 가스 정책을 프로그래밍 방식으로 생성, 조회, 업데이트할 수 있습니다. 더불어 개발자는 후원된 모든 UserOperation을 한눈에 볼 수 있는 훌륭한 시각적 대시보드도 제공받습니다!

<ImageBlock
  src="https://media.alchemy.com/1703860035-alchemy-gas-manager-spending-dashboard.jpeg"
  alt="Gas Manager 지출 대시보드 - Gas Manager 운영 화면"
  width={2406}
  height={516}
  caption="Gas Manager 지출 대시보드 - Gas Manager 운영 화면"
/>

### **결론**

Account Abstraction(ERC-4337)은 앱에 가스리스 트랜잭션을 도입하는 새롭고 더 나은 방법으로, 컨트랙트 수준의 코드 변경을 피할 수 있고, 마찰 없는 벤더 전환, 기존 인프라와의 조합 가능성, 그리고 더 높은 탈중앙화와 같은 이점을 제공합니다.
