ERC-865: 토큰으로 가스비 지불하기

주요 결과
• ERC-865는 사용자가 보유한 토큰으로 가스비를 지불할 수 있는 방법을 제공합니다.
• 메타 트랜잭션과 계정 추상화는 사용자 경험을 향상시키는 핵심 요소입니다.
• 신규 사용자는 ETH를 보유할 필요 없이 dApp을 사용할 수 있습니다.
• 안전성과 사용자 경험을 위해 형식화된 데이터 서명이 중요합니다.
• 2025년에는 계정 추상화가 광범위하게 지원될 것으로 예상됩니다.
이더리움에서 ETH로 가스비를 지불하는 것은 신규 사용자들에게 오랫동안 불편한 점이었습니다. ERC-865의 아이디어는 간단하고 매력적입니다. 사용자가 이미 보유하고 있는 토큰(예: USDC 또는 DAI)으로 거래 수수료를 지불할 수 있도록 하고, 릴레이어 또는 페이마스터가 백그라운드에서 ETH 가스를 처리하도록 하는 것입니다. ERC-865 자체는 표준화되지 않았지만, "누가 어떤 통화로 지불하는지"를 추상화하는 핵심 개념은 메타 트랜잭션과 계정 추상화를 통해 발전하여 2025년에는 실용화될 수 있게 되었습니다.
ERC-865가 해결하고자 했던 문제
ERC-865는 사용자가 오프체인에서 거래에 서명하고, 선택한 ERC-20 토큰으로 표시된 수수료를 포함하는 패턴을 제안했습니다. 릴레이어는 온체인에서 이 거래를 제출하고, ETH 가스를 지불한 후 스마트 계약을 통해 토큰으로 상환받습니다. 이를 통해 사용자는 가스비 지불을 위해 ETH를 보유할 필요가 없어 온보딩이 개선되고 dApp 경험이 더욱 원활해집니다.
ERC-865가 공식 표준이 되지는 못했지만, 오늘날 "토큰으로 가스비 지불"을 가능하게 하는 메타 트랜잭션 및 계정 추상화와 같은 최신 메커니즘의 기반을 마련했습니다. 원래 토큰 표준 맥락에 대해서는 ERC-20 사양과 토큰 허용량이 스마트 계약에서 permit 스타일 승인을 통해 이러한 흐름을 어떻게 지원하는지 참조하세요 (EIP-20, EIP-2612).
개념이 실제 작동하는 방식
개략적으로 설명하자면 다음과 같습니다.
- 사용자는 오프체인에서 의도를 서명합니다(종종 형식화된 데이터 사용). 여기에는 작업과 토큰으로 표시된 수수료가 지정됩니다.
- 릴레이어 또는 페이마스터는 거래를 제출하고 ETH로 가스를 지불합니다.
- 스마트 계약은 사용자의 토큰을 전송하여 릴레이어/페이마스터에게 보상합니다.
- 재전송 방지, 수수료 제한, 도메인 분리가 오용을 방지합니다.
안전성과 사용자 경험을 위해 형식화된 데이터 서명 및 강력한 도메인 분리가 중요합니다. EIP-712를 참조하세요.
최신 스택: 메타 트랜잭션 및 계정 추상화
두 가지 주요 접근 방식이 성숙했습니다.
-
신뢰할 수 있는 전달자를 통한 메타 트랜잭션
- 사용자는 메시지에 서명하고, 릴레이어는 전달자를 통해 온체인에 제출합니다. 전달자는 서명을 확인하고 사용자 대신 호출을 실행합니다.
- EIP-2771을 통해 표준화되었으며, OpenGSN의 Gas Station Network와 같은 도구에서 널리 채택되었습니다. 이 도구는 후원 패턴과 릴레이어 시장을 다룹니다 (OpenGSN docs).
-
계정 추상화 (EIP-4337)
- "사용자 작업"의 개념을 레거시 거래와 분리합니다. 번들러는 사용자 작업을 수집하여 제출하고, 페이마스터는 대체 수수료 지불 정책을 정의합니다. 예를 들어, USDC 수수료를 허용하거나 특정 dApp 작업에 대한 후원을 제공할 수 있습니다.
- 이 모델은 EIP-4337에 의해 공식화되었으며, 이더리움 재단 블로그에서 출시가 발표되었습니다 (Account Abstraction with EIP-4337).
- 개발자는 이더리움 문서에서 계정 추상화 개념, 사용자 작업 및 페이마스터를 탐색할 수 있습니다 (Account abstraction overview).
이러한 패턴은 원래 ERC-865 목표를 일반화합니다. 최종 사용자는 ETH를 가스비로 걱정할 필요 없이 거래할 수 있으며, 릴레이어/번들러 및 페이마스터는 비용과 위험을 관리합니다.
토큰으로 가스비를 지불하는 것이 중요한 이유
- 온보딩: 신규 사용자는 dApp을 사용하기 위해 ETH를 보유할 필요가 없습니다. 이미 보유하고 있는 자산으로 거래할 수 있습니다.
- UX 일관성: 수수료를 스테이블코인으로 표시하여 예측 가능한 비용을 제공할 수 있습니다.
- 비즈니스 로직: dApp은 페이마스터 또는 메타 트랜잭션 릴레이어를 통합하여 특정 작업을 후원하거나, 사용자를 확보하거나, 수수료 정책을 맞춤화할 수 있습니다.
위험 및 설계 고려 사항
- 릴레이어 신뢰 및 시장: 괴롭힘에 대한 보호 장치를 설계하고 릴레이어 인센티브가 공정하도록 보장해야 합니다. OpenGSN과 같은 시스템은 릴레이어 인센티브 및 평판을 다룹니다 (OpenGSN docs).
- 가격 책정 및 오라클: 수수료에 토큰을 사용하는 것은 공정한 환율과 안전한 오라클 통합을 요구하여 과소 지불 또는 악용을 방지해야 합니다.
- 서명 안전: 피싱 및 재전송을 완화하기 위해 형식화된 데이터(EIP-712)와 명시적인 도메인 분리가 필수적입니다.
- 토큰 승인: 무제한 승인보다 permit 흐름(EIP-2612)을 우선적으로 사용하고, 영향을 줄이기 위해 상한선을 설정합니다 (EIP-2612).
- 스마트 계약 감사: 전달자, 페이마스터 및 상환 로직은 토큰을 고갈시키거나 MEV 악용을 가능하게 하는 것을 방지하기 위해 신중하게 감사해야 합니다.
2025년 현황 및 향후 전망
2025년에는 계정 추상화가 지갑, SDK 및 번들러 인프라에서 광범위하게 지원될 것이며, 페이마스터는 "토큰으로 가스비 지불"을 구현하는 사실상의 방법이 될 것입니다. 외부 소유 계정 기능 개선에 대한 논의는 계속되고 있으며, EIP-3074 및 EIP-7702와 같은 제안은 추상화 기반 설계를 보완하는 안전한 권한 부여 및 UX 개선을 탐구하고 있습니다. ERC-865 자체는 라이브 표준이 아니지만, 생태계는 핵심 약속을 이행하는 강력한 대안으로 수렴되었습니다.
개발자를 위한 구현 안내
-
dApp의 경우:
- 간단한 메타 트랜잭션을 위해 EIP-2771을 사용하는 신뢰할 수 있는 전달자로 시작하거나, 프로덕션 준비된 릴레이어 네트워크를 위해 OpenGSN을 통합합니다 (OpenGSN docs).
- 페이마스터와 함께 계정 추상화를 고려하여 스테이블코인 또는 특정 ERC-20 토큰을 수수료로 수락합니다 (EIP-4337; EF blog overview).
- UX 및 안전성을 개선하기 위해 형식화된 데이터 서명(EIP-712) 및 permit 흐름(EIP-2612)을 사용합니다.
-
보안을 위해:
- 수수료 상한 및 속도 제한 소스를 제한하고, 제출 전에 오프체인에서 거래를 시뮬레이션합니다.
- 특정 계약 메서드 및 호출자에 대해서만 스폰서 정책을 제한하여 오용을 방지합니다.
- 릴레이어 성능을 모니터링하고 대체 전략을 유지합니다.
사용자가 기대해야 할 사항
더 많은 지갑과 dApp이 계정 추상화 및 메타 트랜잭션을 채택함에 따라, ETH를 보유하지 않고도 거래할 수 있는 경우가 점점 늘어날 것입니다. 수수료는 스테이블코인으로 지불되거나 특정 작업의 경우 dApp에서 완전히 후원될 수도 있습니다. 항상 서명하는 내용을 검토하세요(형식화된 데이터는 의도를 명확하게 합니다). 그리고 더 강력한 키 보호를 위해 하드웨어 지갑을 사용하세요.
지갑에 대한 실용적인 참고 사항
페이마스터 또는 메타 트랜잭션을 사용할 때 지갑은 구조화된 메시지에 안전하고 일관되게 서명해야 합니다. OneKey 하드웨어 지갑은 EIP-712 형식화된 데이터 서명을 지원하며, 최신 dApp 흐름과 원활하게 통합되면서 개인 키를 오프라인으로 유지하도록 설계되었습니다. 계정 추상화 또는 메타 트랜잭션 기능을 정기적으로 사용할 계획이라면, 복잡한 서명을 처리하면서 키를 보호하는 하드웨어 지갑은 일상적인 운영에서 위험을 실질적으로 줄일 수 있습니다.
결론
ERC-865는 토큰으로 가스비를 지불하는 아이디어를 도입했으며, 계정 추상화와 메타 트랜잭션이 그 아이디어를 현실로 만들었습니다. 2025년에는 페이마스터, 번들러 및 신뢰할 수 있는 전달자가 가스 추상화를 위한 프로덕션 등급 경로를 제공하여 더욱 원활한 온보딩과 더 나은 UX를 가능하게 할 것입니다. 이러한 패턴이 EIP-7702와 같은 제안과 함께 진화함에 따라, 생태계는 사용자가 ETH를 미리 충전할 필요 없이 보유한 자산으로 거래할 수 있는 미래를 향해 꾸준히 나아가고 있습니다.
참고 자료:
- EIP-4337: Account Abstraction
- Ethereum Foundation blog: Account Abstraction with EIP-4337
- EIP-2771: Trusted Forwarder for Meta-Transactions
- EIP-712: Typed Structured Data Signatures
- EIP-2612: permit for ERC-20 approvals
- EIP-3074: AUTH and AUTHCALL for EOAs
- EIP-7702: Controlled Account Code proposal
- OpenGSN: Gas Station Network docs
- Ethereum docs: Account abstraction overview