스왑이 완료된 후에도 그 이면의 권한은 계속 활성 상태로 남아 있을 수 있습니다. 토큰 승인을 통해 지정된 주소는 사용자가 부여한 권한의 범위 내에서 지갑의 토큰을 사용할 수 있습니다. 애플리케이션을 종료해도 해당 권한이 반드시 제거되는 것은 아닙니다.
이 가이드는 이더리움 및 기타 EVM 네트워크의 ERC-20 토큰에 중점을 둡니다. 다른 토큰 표준과 블록체인은 서로 다른 권한 시스템을 사용합니다. 실질적으로 중요한 것은 승인하기 전에 사용 주체, 금액 및 범위를 파악한 다음 더 이상 필요하지 않은 권한을 제거하는 것입니다.
사용 한도는 사용 주체에 연결된 지출 한도입니다
일반적인 ERC-20 작업 흐름에서 approve는 사용 한도를 설정하고, allowance는 남은 금액을 알려 주며, transferFrom은 승인된 사용 주체가 토큰 계약의 규칙에 따라 토큰을 이동할 수 있도록 합니다. 승인 트랜잭션은 일반적으로 권한을 설정하고, 이후 애플리케이션의 작업이 해당 권한을 사용합니다.
네 가지를 확인하세요. 네트워크, 토큰 계약, 소유자 주소 및 사용 주체 주소입니다. 웹사이트의 이름 자체가 권한인 것은 아닙니다. 사용 주체는 애플리케이션 계약일 수도 있고 다른 주소일 수도 있으며, 해당 권한을 어떻게 사용할 수 있는지는 그 코드에 따라 결정됩니다.
200개의 토큰을 보유한 가상의 지갑을 생각해 보겠습니다. 사용 주체에 100개의 토큰을 사용할 수 있도록 승인합니다. 토큰이 실제로 이동하기 전까지 잔액은 200으로 유지됩니다. 이후 사용 주체가 표준 유한 사용 한도에 따라 토큰 40개를 전송하면 잔액은 160이 되고 남은 사용 한도는 60이 됩니다. 이 둘은 서로 다른 수치입니다.
적용되는 계약 규칙에 따라 사용 주체는 추가 승인 요청 없이 남은 권한을 사용할 수 있습니다. 새로운 승인은 일반적으로 기존 사용 한도를 지정한 금액으로 대체하며, 해당 금액을 이전 한도에 자동으로 더하지 않습니다.
무제한 승인은 향후 입금액까지 대상으로 삼을 수 있습니다
애플리케이션은 각 거래마다 새로 승인할 필요가 없도록 매우 큰 사용 한도를 요청할 수 있습니다. 이렇게 하면 반복적인 단계와 승인 비용을 줄일 수 있지만, 사용 주체의 권한에 더 많은 금액이 노출됩니다.
일부 일반적인 구현에서는 최대 정수 사용 한도를 무제한으로 간주하며 토큰을 사용해도 그 한도를 줄이지 않습니다. 무제한 권한이 사용될 때마다 한도가 계속 차감된다고 가정하지 마세요.
토큰 잔액이 0이 되어도 사용 한도는 남아 있을 수 있습니다. 이후 같은 네트워크의 해당 주소로 동일한 토큰을 더 받으면 기존 권한이 다시 사용될 수 있습니다. 비어 있는 지갑 화면만으로 이전 권한이 사라졌다고 판단할 수는 없습니다.
더 작은 한도를 선택하면 해당 권한을 통해 사용할 수 있는 금액이 줄어듭니다. 그러나 이것만으로 애플리케이션이 신뢰할 수 있다거나 제안된 거래가 합리적이라는 뜻은 아닙니다.
실제로 부여한 권한을 취소하세요
애플리케이션 사용을 중단했거나, 사용 주체를 식별할 수 없거나, 불필요하게 큰 한도를 발견했거나, 관련 보안 사고를 알게 된 경우 사용 한도를 검토하세요. 목적은 불필요한 지출 경로를 제거하는 것입니다.
- 계정과 네트워크를 확인하세요. 한 체인의 권한은 다른 체인의 권한과 별개입니다.
- 토큰과 사용 주체를 식별하세요. 신뢰할 수 있는 지갑의 권한 화면이나 적절한 블록 탐색기를 사용하세요. 익숙한 라벨만으로는 주소를 확인할 수 없습니다.
- 제안된 변경 사항을 읽으세요. 표준 ERC-20 사용 한도의 경우, 취소는 일반적으로 온체인 트랜잭션을 전송하여 해당 사용 주체의 사용 한도를 0으로 설정하는 방식으로 이루어집니다. 토큰, 사용 주체 및 새로운 금액을 확인하세요.
- 확인을 검증하세요. 서비스가 가스 비용을 대신 지불하더라도 온체인 취소에는 네트워크 가스가 필요합니다. 트랜잭션이 성공했으며 관련 사용 한도가 의도한 변경 사항을 반영하는지 확인하세요.
대기 중인 취소는 아직 체인의 상태를 변경하지 않았습니다. 확인되기 전에 사용 주체가 행동할 수 있습니다. 완료된 취소는 해당 사용 한도의 향후 사용을 제한하지만, 이미 전송된 토큰을 되돌리지는 않습니다.
웹사이트 연결을 해제하면 해당 사이트와 지갑의 연결이 변경됩니다. 기존 온체인 승인을 변경하려면 별도의 조치가 필요합니다. 개인 키나 복구 문구가 유출된 경우 권한은 사고의 일부에 불과합니다. 취소하더라도 다른 사람이 해당 키로 서명할 수 있는 능력은 제거되지 않습니다.
KTX와 함께 개인 지갑을 사용하는 경우, 지갑 권한과 플랫폼 계정 보안을 분리하여 관리하세요. KTX의 수탁형 및 비수탁형 지갑 가이드에서는 거래 승인과 복구를 누가 관리하는지 설명합니다. 복구 자료를 보호하는 방법은 KTX의 시드 문구 백업 가이드를 참조하고, 권한을 취소해 주겠다고 제안하는 웹사이트에 복구 문구를 절대 제공하지 마세요.
서명된 권한은 한 번 더 확인해야 합니다
지갑은 즉시 승인 트랜잭션을 요청하는 대신 서명을 요청할 수 있습니다. 서명도 여전히 중요한 권한을 생성할 수 있습니다. 예를 들어 ERC-2612 퍼밋을 사용하면 다른 당사자가 사용자가 서명한 승인을 제출하여 사용 한도를 설정할 수 있습니다.
퍼밋의 기한은 해당 서명을 제출할 수 있는 시점을 제한합니다. 그 결과 생성되는 일반 ERC-20 사용 한도에 만료일을 자동으로 부여하는 것은 아닙니다. 사용 한도를 0으로 설정하더라도 사용되지 않은 이전 퍼밋 서명이 반드시 무효화되는 것은 아니므로, 논스와 유효성 규칙을 별도로 확인해야 합니다.
Permit2는 또 다른 계층을 도입합니다. 먼저 토큰이 Permit2 계약을 승인하고, 그다음 특정 애플리케이션에 대한 권한을 설정합니다. Permit2의 사용 한도 기반 권한과 일회성 서명 전송은 금액, 만료 및 논스에 대해 서로 다른 규칙을 적용합니다.
각 해당 계층과 아직 유효한 서명된 승인을 검토하세요. 현재 온체인 사용 한도를 읽는 검사 도구가 서명되었지만 제출되지 않은 모든 서명을 표시하지는 않을 수 있습니다. 안심할 수 있는 사용 한도 화면이라도 아직 확인할 수 없는 권한까지 파악할 수는 없습니다.
자주 묻는 질문
네이티브 ETH를 전송하려면 ERC-20 승인이 필요한가요?
네이티브 ETH의 일반적인 전송에는 ERC-20 사용 한도가 사용되지 않습니다. 래핑된 ETH는 토큰이므로 해당 메커니즘을 사용할 수 있습니다. 계정 수준의 권한은 별개의 문제입니다.
무제한 승인 하나로 내 지갑의 모든 자산을 처리할 수 있나요?
일반적인 ERC-20 승인은 특정 토큰과 사용 주체를 대상으로 합니다. 모든 토큰이나 NFT에 자동으로 적용되는 것은 아닙니다. 그러나 하나의 서명 요청에 여러 권한이 포함될 수 있으므로 전체 범위를 검토하세요.
한도를 변경하기 전에 지갑에서 한도를 0으로 설정하라고 요청하는 이유는 무엇인가요?
일부 토큰 구현에서는 이를 요구하며, 0이 아닌 사용 한도를 교체하면 트랜잭션 순서와 관련된 위험이 발생할 수 있습니다. 지원되는 작업 흐름을 따르세요. 재설정해도 이미 발생한 지출을 취소할 수는 없습니다.
하드웨어 지갑이 유해한 승인을 막아 주나요?
하드웨어 지갑은 서명 키를 보호하는 데 도움이 됩니다. 그러나 해당 키로 위험한 권한을 승인할 수는 있습니다. 기기만 믿지 말고 거래 세부 정보와 사용 주체를 검토하세요.
NFT 승인도 토큰 사용 한도와 같은 방식으로 작동하나요?
ERC-721은 개별 NFT에 대한 승인과 해당 NFT 계약 전체에 대한 운영자 승인을 지원합니다. 이는 ERC-20 수량 사용 한도와 다릅니다. 취소하기 전에 표준과 범위를 확인하세요.
이 문서는 일반적인 교육 정보를 제공하며, 개인 맞춤형 보안 또는 투자 조언이 아닙니다. 토큰 구현과 지갑 인터페이스는 서로 다를 수 있습니다. 개인 키나 복구 문구를 절대 공개하지 마세요.