EIP-2612: ERC-20이 가스 없는 승인을 가능하게 하는 방법

LeeMaimaiLeeMaimai
/2025년 10월 16일
EIP-2612: ERC-20이 가스 없는 승인을 가능하게 하는 방법

주요 결과

• EIP-2612는 사용자가 오프체인에서 서명하여 가스 없는 승인을 가능하게 합니다.

• 2025년에는 L2 솔루션과 함께 가스 비용을 후원하는 프로토콜이 활성화될 것입니다.

• EIP-2612는 서명 기반 작업으로의 트렌드를 반영하며, 안전성과 사용자 경험을 개선합니다.

• 사용자는 승인에 대한 가스를 지불하지 않지만, 다른 서비스가 이를 후원할 수 있습니다.

가스비는 디파이(DeFi)에서 가장 큰 불편함의 원인입니다. ERC-20 토큰을 스왑, 대출 또는 스테이킹하기 전에, dApp이 사용자의 토큰을 이동하도록 허용하기 위해 종종 "승인(approve)" 트랜잭션을 제출하고 가스를 지불해야 합니다. EIP-2612는 이를 변경합니다. 이 제안은 "permit"이라는 서명 기반 승인 흐름을 도입하여, 온체인에서 승인 부담을 오프체인으로 옮기고 스마트 계약 또는 릴레이어가 온체인 가스를 후원할 수 있도록 합니다. 결과적으로 사용자 경험이 향상되고, 트랜잭션 수가 줄어들며, 올바르게 구현될 경우 더 안전한 승인이 가능해집니다.

이 글은 EIP-2612가 어떻게 작동하는지, 2025년에 왜 중요한지, 그리고 사용자와 개발자가 무엇에 주의해야 하는지를 설명합니다.

EIP-2612는 정확히 무엇인가?

EIP-2612는 ERC-20 토큰 표준에 permit이라는 새로운 함수를 추가하여 확장합니다. 온체인에서 approve(spender, amount)를 호출하는 대신, 사용자는 승인 매개변수와 마감일을 포함하는 구조화된 메시지에 오프체인에서 서명합니다. 그런 다음 스마트 계약은 해당 서명을 사용하여 온체인에서 permit 함수를 제출하여 사용자가 가스를 지불하지 않고도 허용량을 설정합니다.

  • ERC-20 기본: 승인 및 전송은 ERC-20 사양에 정의된 표준을 따릅니다.
  • EIP-2612 사양: 서명 형식, 논스(nonce), permit 함수는 EIP-2612 제안에 공식화되어 있습니다.
  • 구조화된 데이터: 서명은 EIP-712에 따라 구조화된 데이터를 사용하며, 이를 통해 사용자는 무엇에 서명하는지 사람이 읽을 수 있고 도메인에 바인딩될 수 있습니다.

요약하자면, EIP-2612는 사용자가 오프체인에서 서명만 하면 되므로 "가스 없는 승인"을 가능하게 합니다. dApp, 릴레이어 또는 계약이 온체인에서 permit을 릴레이하는 데 드는 가스를 지불합니다.

2025년에 중요한 이유

  • 클릭 수 감소, 트랜잭션 수 감소: 하나의 서명으로 승인을 설정하고 단일 온체인 호출에서 즉시 액션(스왑, 입금, 스테이킹)을 실행할 수 있습니다.
  • L2 우선 UX: L2 솔루션이 활성화되면서 많은 프로토콜이 사용자를 온보딩하기 위해 가스를 후원합니다. EIP-2612 승인은 이러한 패턴에 잘 들어맞습니다. 가스 비용 역학을 이해하려면 이더리움의 가스 및 계정 모델 개요를 참조하세요.
  • 계정 추상화 및 페이마스터: ERC-4337 기반 지갑 흐름은 서비스가 가스를 후원하거나 토큰으로 수수료를 받는 것을 더 쉽게 만듭니다. EIP-2612는 이러한 사용자 경험 개선을 보완합니다. 서명을 통해 승인하고, 트랜잭션은 후원될 수 있습니다.
  • 미래 지향적인 프로토콜 변경: EIP-3074EIP-7702와 같은 지갑 네이티브 인증에 대한 논의는 서명 기반 작업으로의 더 넓은 트렌드를 강조합니다. 이러한 기술이 발전하더라도 EIP-2612는 오늘날 승인을 위한 실용적이고 널리 배포된 도구로 남아 있습니다.

가스 없는 승인은 어떻게 작동하는가 (단계별)

  1. dApp에서 액션(예: 토큰 스왑)을 시작합니다.
  2. dApp은 소유자, 지출자, 값, 논스, 마감일, 토큰의 도메인 구분자(이름, 버전, chainId, 계약 주소) 필드를 포함하는 EIP-712 구조화된 메시지를 준비합니다.
  3. 지갑으로 메시지에 서명하여 정확한 매개변수를 승인합니다.
  4. dApp 또는 릴레이어는 permit(owner, spender, value, deadline, v, r, s)를 온체인에 제출하고, 같은 트랜잭션에서 허용량을 사용하는 dApp 액션을 호출합니다.
  5. 토큰 계약은 서명을 확인하고, 논스와 마감일을 확인한 후, 허용량을 설정합니다.

핵심 아이디어: 승인에 대한 가스를 지불하지 않습니다. 서명만 합니다.

네이티브 Permit vs. Permit2

모든 토큰이 EIP-2612를 구현하는 것은 아닙니다. 파편화된 인터페이스를 해결하고 안전성을 개선하기 위해 Uniswap은 토큰 전반에 걸쳐 서명 승인 및 허용량 관리를 표준화하는 일반화된 승인 시스템인 Permit2를 도입했습니다.

토큰이 네이티브 permit을 지원하는 경우 dApp에서 직접 사용할 수 있습니다. 지원하지 않는 경우 Permit2는 일관된 인터페이스를 제공하는 동시에 Permit2 계약으로 허용량을 제한하며, 종종 제어 및 취소 UX를 개선합니다.

주의해야 할 보안 고려 사항

가스 없음이 위험 없음은 아닙니다. 서명은 강력하므로 트랜잭션처럼 취급해야 합니다.

  • 지출자 확인: 항상 어떤 계약이 허용량을 받게 될지 확인하세요. EIP-712 구조화된 데이터는 지출자 주소를 명확하게 표시해야 합니다. EIP-712에서 구조화된 데이터가 작동하는 방식을 알아보세요.
  • 금액 제한 및 합리적인 마감일 설정: 프로토콜을 깊이 신뢰하지 않는 한 무제한 승인은 피하세요. 마감일은 공격 창을 줄입니다.
  • chainId 및 도메인 확인: 서명은 도메인 구분자를 통해 의도된 네트워크 및 토큰 계약에서만 유효합니다. 크로스체인 재실행 시도 또는 피싱에 주의하세요.
  • 논스 관리: EIP-2612는 재실행 방지를 위해 논스를 사용합니다. 평판이 좋고 감사되었으며 OpenZeppelin의 ERC20Permit과 같이 잘 테스트된 라이브러리를 사용하는 토큰 구현에 의존하세요.
  • 허용량 취소: 지갑 인터페이스 또는 토큰 계약을 통해 사용하지 않는 승인을 정기적으로 검토하고 취소하세요.
  • 메타 트랜잭션 신뢰: 릴레이어가 permit을 제출하는 경우 dApp의 백엔드를 신뢰하는지 확인하세요. 메타 트랜잭션 패턴은 EIP-2771 (Trusted Forwarder)를 참조하세요.

훌륭한 구현은 문제를 완화하는 데 도움이 되지만, 사용자 경계는 필수적입니다. 일반적인 모범 사례는 OpenZeppelin의 설명서를 견고한 시작점으로 사용할 수 있습니다: OpenZeppelin Contracts.

개발자 참고 사항: Permit 구현 및 사용

  • 검증된 구현 사용: OpenZeppelin의 ERC20Permitdraft-EIP712는 실수를 줄이고 사양과 일치하도록 합니다. 참조: ERC20Permit.
  • 실행 번들링: 원클릭 UX를 위해 permit 서명을 수락하고 동일한 트랜잭션에서 액션을 수행하도록 dApp을 설계합니다.
  • 두 흐름 모두 지원: 가능한 경우 네이티브 permit을 선호하고, 토큰이 이를 지원하지 않으면 Permit2로 대체합니다. 참조: Uniswap Permit2.
  • 마감일 및 논스 견고하게 처리: 만료된 서명은 거부하고 온체인 제출 전에 예상 논스를 확인합니다.
  • 후원 고려: EIP-2612를 ERC-4337 페이마스터와 결합하여 진정으로 원활하고 후원되는 흐름을 만듭니다. 참조: ERC-4337.

자주 묻는 질문

  • 이것이 "무료"인가요? 사용자는 승인에 대한 가스를 지불하지 않으며, 다른 사람이 지불합니다. dApp은 여전히 스마트 계약 로직을 통해 수수료를 부과할 수 있습니다.

  • 토큰이 EIP-2612를 지원하지 않으면 어떻게 되나요? Permit2를 사용하거나, 명확한 UX 프롬프팅을 포함한 표준 approve 흐름으로 대체합니다.

  • Permit은 체인 간에 작동하나요? 아니요. 서명은 EIP-712를 통해 도메인(토큰 계약 + chainId)으로 범위가 지정됩니다. 특정 네트워크에 대해 서명해야 합니다.

  • 하드웨어 지갑과 호환되나요? EIP-712 구조화된 데이터를 지원하는 모든 지갑은 permit 메시지를 렌더링할 수 있습니다. 좋은 지갑은 지출자, 금액, 마감일을 명확하게 표시합니다.

최종 생각

EIP-2612는 디파이를 즉각적으로 느끼게 해주는 작지만 중요한 개선 사항 중 하나입니다. 승인을 서명으로 전환함으로써 일반적인 UX 장애물을 제거하고 L2 및 계정 추상화의 최신 흐름과 자연스럽게 결합됩니다.

permit 기반 워크플로에 의존하는 경우, EIP-712 메시지를 투명하게 렌더링하고 키를 오프라인으로 유지하는 지갑을 선택하세요. OneKey 하드웨어 지갑은 명확한 온디바이스 EIP-712 미리 보기(지출자, 금액, 마감일, 체인), 오픈 소스 펌웨어, 광범위한 EVM/L2 지원에 중점을 두어, 서명 안전성을 타협하지 않고도 가스 없는 승인의 편리함을 원할 때 유용합니다.

OneKey로 암호화 여정 보호하기

View details for OneKeyOneKey

OneKey

세계에서 가장 진보한 하드웨어 지갑.

View details for 앱 다운로드앱 다운로드

앱 다운로드

스캠 경고. 모든 코인 지원.

View details for OneKey SifuOneKey Sifu

OneKey Sifu

암호화 의문을 해결하기 위해, 한 번의 전화로.

계속 읽기