교육 목적으로만 제공되며 투자 조언이 아닙니다. 투자로 손실이 발생할 수 있습니다.
직접 답변
지갑 승인은 토큰 소유자가 하나의 지출자 주소에 부여하는 온체인 allowance입니다. ERC-20의 approve(spender, amount)가 기록하면 지출자는 남은 한도 안에서 transferFrom을 호출할 수 있습니다. 개인 키나 다른 토큰 권한을 주는 것은 아닙니다. 승인은 상태 변경 거래이고 로그인 서명은 보통 오프체인입니다. ERC-2612 permit은 서명 데이터로 가스 없이 allowance를 만들 수 있지만 역시 권한 부여입니다. ETH는 ERC-20 allowance를 사용하지 않습니다. 토큰, 지출자, 금액, 기간, 체인을 확인하고 사이트 연결을 권한으로 보지 마세요.
0 / 5
0 개 항목 검토; 5 개 항목 미해결
모든 항목을 검토해도 자산, 거래 또는 시스템의 안전이 입증되는 것은 아닙니다.
작동 방식
- 사용자가 approve를 보냅니다. 0은 잔여 없음이며 큰 값은 무제한으로 표시됩니다.
- 지출자는 이후 transferFrom을 사용합니다. 컨트랙트는 잔액과 allowance를 검사하고 보통 사용액만큼 줄입니다.
- allowance 변경은 온체인 전환입니다. 양의 값 교체는 mempool 경쟁을 만들 수 있어 필요하면 확인된 0-먼저 절차를 씁니다.
- ERC-2612 permit은 서명 메시지입니다. 토큰, chain ID, nonce, deadline, 지출자, 금액을 확인하고 제3자 제출을 고려하세요.
- 검증된 지출자와 필요한 금액만 승인하고 정확한 호출을 시뮬레이션한 뒤 receipt, 이벤트, 잔액, allowance를 확인합니다. 올바른 네트워크에서 0으로 취소하며 확정 전송은 되돌리지 못합니다.
예시
Alice는 100 USDC를 보유하고 검증된 라우터에 40을 승인했습니다. 최대 40만 사용 가능하고 ETH나 다른 토큰은 대상이 아닙니다. 15를 스왑하면 25가 남습니다. 무제한 승인은 향후 입금도 노출하므로 계약 확인, 유한 금액 사용, 필요 시 approve(router, 0)을 실행합니다.
위험
- 악성 또는 업그레이드된 지출자는 활성 allowance의 모든 토큰을 사용할 수 있습니다.
- 무제한 승인은 향후 입금도 포함합니다.
- 잘못된 체인·계약·주소·소수점·calldata가 위험 요청을 정상처럼 보이게 합니다.
- 대기 중 변경이나 취소가 transferFrom과 경쟁할 수 있고 확정된 0은 실행 전송을 취소하지 않습니다.
- permit 서명은 나중에 제출할 수 있으며 사이트 연결 해제로 무효화되지 않습니다.
- 비표준·수수료·리베이스·일시정지·callback 토큰은 다르게 동작할 수 있으니 최종 상태를 확인하세요.
흔한 오해
- “지갑 연결로 지출 권한이 생긴다.” 권한은 승인, permit, 확인된 거래에서 생깁니다.
- “가스 없는 서명은 안전하다.” 릴레이어가 나중에 제출할 수 있습니다.
- “사이트 연결을 끊으면 승인도 취소된다.” 연결과 온체인 allowance는 별개입니다.
- “무제한이면 즉시 전액 인출된다.” 호출·잔액·호환 구현이 필요하지만 금액 한도는 없습니다.
- “시뮬레이션 성공이 안전을 증명한다.” 상태 의존적이므로 체인, calldata, 수신자, 코드, receipt, 잔액을 확인합니다.
관련 주제
출처
- ERC-20: Token Standard - Ethereum Improvement Proposals (확인일: 2026-08-22)
- ERC-2612: Permit Extension for EIP-20 Signed Approvals - Ethereum Improvement Proposals (확인일: 2026-08-22)
- Ethereum security and scam prevention - Ethereum.org (확인일: 2026-08-22)