
1. ERC-20과 ERC-2612의 차이점
ERC-20은 이더리움 기반 토큰 표준입니다. 대부분의 토큰이 이 표준을 따릅니다. 다만, 큰 단점으로 사용 승인 절차를 거치게 된다면, 2번의 트랜잭션이 발생하기에 가스비도 2번 지출 된다는 것 입니다.
1️⃣ approve() → spender(예: DEX)에 사용 허용
2️⃣ transferFrom() → 실제 사용
ERC-2612는 이 문제를 해결하기 위해 만들어 졌습니다. 특히 처음 권한을 넘기는 사용자의 가스비가 0이 되어, 사용자의 편의성을 극대화 합니다.
2. ERC-2612의 핵심 기능: permit()
permit() 함수는 signature(서명)를 사용해 승인(approve)을 가능하게 합니다.
- 기존 approve처럼 직접 트랜잭션을 날릴 필요가 없음
- 오너가 서명만 하면, 다른 사람이 그 서명을 이용해 permit() 호출 가능
- 서명 데이터는 EIP-712 표준을 사용해 안전하게 구성
결론: 사용자 → 한 번의 서명으로, 제 3자가 → 한 번의 트랜잭션으로 거래가 완료 되게 합니다.
3. 장점
- UX 개선 (메타마스크 팝업 한번)
- 가스비 절약
- DeFi에서 거의 필수 수준
4. 구조 (EIP-712 표준)
permit()을 사용하려면 다음 데이터를 서명해야 합니다.
domain: { name, // 토큰 이름 version, // 버전 (예: "1") chainId, // 체인 ID verifyingContract // 토큰 컨트랙트 주소 } types: { Permit: [ { owner, spender, value, nonce, deadline } ] }
- 서명자는 개인키로 서명
- 서명 결과 (v, r, s)를 3rd party가 permit()에 넣어 트랜잭션 발생
- 컨트랙트는 EIP-712로 서명 유효성 검증
- allowance 반영됨
5. nonce, deadline
- nonce: 중복 방지 (컨트랙트가 보유)
- deadline: 언제까지 유효한 서명인지 지정 (timestamp)
7. 실제 사용 예
Uniswap V3, AAVE, MakerDAO DAI 등
- DeFi에서 거의 표준처럼 쓰이는 이유: UX / 가스비 절약 / 보안 (EIP-712)
8. 마무리
ERC-2612 는 사용자의 가스 부담을 막아줄수 있는, UX 개선 버전의 토큰이라고 생각하면 됩니다.
'공부 내용 정리' 카테고리의 다른 글
| 블록체인에서 오라클이란? (1) | 2025.07.16 |
|---|---|
| 블록체인에서 프록시란? (0) | 2025.07.15 |
| ERC-1155 란? (0) | 2025.07.11 |
| 벨먼-포드 알고리즘 (2) | 2025.07.11 |
| 프론트에서 지갑 연결 하는 방법 (1) | 2025.07.10 |