분산형 애플리케이션과 상호작용할 때마다 — 토큰을 스왑하거나, 유동성을 제공하거나, NFT를 발행할 때 — 거의 확실히 토큰 승인(approval)에 서명하게 됩니다. 이 승인은 스마트 컨트랙트에 당신을 대신하여 토큰을 이동할 수 있는 권한을 부여하며, 종종 지출 한도나 만료 날짜가 없습니다. 나중에 해당 컨트랙트가 악용되거나 악의적인 버전으로 업그레이드되거나 단순히 버려진다면, 공격자는 당신이 새로운 서명 없이도 지갑을 비울 수 있습니다. MetaMask와 Rabby Wallet에서 이러한 승인을 감사하고 취소하는 방법을 이해하는 것은 모든 암호화폐 보유자가 구축할 수 있는 가장 실질적인 보안 습관 중 하나입니다. 이 가이드는 두 지갑 모두에서 정확한 단계를 안내하고, 사용 가능한 도구를 설명하며, 먼저 우선순위를 정해야 할 것이 무엇인지 알려줍니다.

토큰 승인이 지속적인 위험인 이유

토큰 승인은 ERC-20 approve() 함수와 ERC-721/ERC-1155 setApprovalForAll() 함수로 ��리됩니다. approve(spender, amount)를 호출하면, 특정 주소 — 보통 스마트 컨트랙트 — 에 향후 언제든지 당신의 지갑에서 최대 amount 토큰을 전송할 권한을 부여합니다. Ethereum Foundation의 개발자 문서에 따르면 승인은 토큰 소유자에 의해 명시적으로 취소되지 않는 한 무기한으로 유효합니다.

실질적인 결과: 지갑은 시간이 지남에 따라 수십 개 또는 수백 개의 활성 승인을 축적합니다. 약 1억 2천만 달러의 손실을 초래한 Badger DAO 악용에 대한 2022년 사후 분석에서 공격자가 주입한 스크립트가 사용자가 취소한 적이 없는 기존의 무제한 승인을 활용했음을 보여주었습니다. 토큰은 사용자가 서명한 악의적 거래를 통해 사용자의 보관에서 나가지 않았습니다 — 몇 개월 전에 서명한 승인이 손상을 입혔습니다.

MetaMask에서 토큰 승인을 직접 취소하는 방법

MetaMask는 브라우저 확장 프로그램에 내장된 승인 관리 인터페이스를 추가했습니다. 경로는 브라우저 확장 프로그램과 모바일 앱 간에 약간 다릅니다.

MetaMask 브라우저 확장 프로그램 (v11+)

2026년 초 현재 MetaMask는 확장 프로그램 내에서 전체 승인 대시보드를 렌더링하지 않습니다. 전체 목록을 위해 블록 탐색기에 의존합니다. MetaMask 지식 기반 문서 “How to revoke smart contract allowances/token approvals”가 이 흐름을 명시적으로 문서화합니다.

Etherscan의 Token Approvals 도구 사용

  1. etherscan.io/tokenapprovalchecker로 이동하여 지갑을 연결합니다.
    • 도구는 모든 활성 ERC-20 승인을 토큰별로 그룹화하여 나열하며, spender 주소와 승인된 금액을 표시합니다.
  2. 제거하려는 승인 옆의 Revoke를 클릭합니다. MetaMask가 approve(spender, 0)를 호출하는 거래를 확인하라는 메시지를 표��하여 허용량을 0으로 설정합니다.
    • 가스 수수료를 지불하여 확인합니다. 거래가 채굴되면 승인이 온체인에서 제거됩니다.

Etherscan은 동일한 인터페이스를 통해 ERC-721 NFT 승인도 지원합니다. 각 취소는 자체 가스 비용이 있는 별도의 온체인 거래입니다.

Rabby Wallet에서 토큰 승인을 취소하는 방법

DeBank에서 개발한 Rabby Wallet은 기본 승인 관리 대시보드를 탑재합니다 — 가장 많이 인용되는 보안 기능 중 하나입니다. MetaMask의 리디렉션 방식과 달리 Rabby는 지갑 UI를 떠나지 않고 승인을 표시합니다.

Rabby의 기본 승인 관리

  1. Rabby 브라우저 확장 프로그램을 열고 사이드바의 Approvals 탭(shield 아이콘)을 클릭합니다.
    • Rabby는 연결된 모든 EVM 체인에서 동시에 승인을 가져오고 분류합니다 — Ethereum, Arbitrum, Base, Polygon 등.
    • 각 항목은 토큰, spender 컨트랙트 이름(식별 가능한 경우), 승인된 금액, 위험 점수를 표시합니다. Rabby는 보안 엔진에서 위험으로 표시된 컨트랙트에 플래그를 지정합니다.
  2. 승인 옆의 Revoke를 클릭합니다. 지갑 프롬프트에서 거래를 확인합니다.

Rabby 문서는 공식 도움말 센터의 “Approval Management” 아래에서 이 기능을 설명합니다. 많은 사용자가 가스가 저렴하고 승인이 무심코 서명된 Layer 2 네트워크에서 부여된 승인을 잊어버리기 때문에 교차 체인 보기가 특히 유용합니다.

알아두면 좋은 타사 취소 도구

두 가지 추가 도구가 널리 사용되며 지갑의 기본 기능과 함께 북마크할 가치가 있습니다.

타사 도구를 사용할 때 지갑을 연결하기 전에 도메인을 신중하게 확인��니다. Revoke.cash를 모방한 피싱 사이트가 검색 광고에 나타났습니다 — 항상 북마크된 URL이나 프로젝트의 검증된 GitHub 페이지에서 이동합니다.

승인을 감사할 때 우선순위를 정하는 방법

200개의 승인이 있는 지갑이 200개의 취소를 필요로 하지는 않습니다. 선별 접근 방식을 적용합니다:

승인 취소의 가스 비용 현실

각 취소는 온체인 거래입니다. Ethereum 메인넷에서 ERC-20 승인을 취소하면 보통 약 45,000–60,000 가스를 소비합니다. 적당한 가스 가격에서 이것은 수 센트에서 몇 달러의 비용이 듭니다. Arbitrum이나 Optimism과 같은 Layer 2 네트워크에서는 비용이 무시할 수 있을 정도로 적습니다 — 종종 1센트 미만입니다.

메인넷에서 취소할 승인이 많으면 낮은 가스 기간(일반적으로 역사적 Ethereum 가스 데이터에 따라 평일 UTC 늦은 밤) 동안 여러 세션에 걸쳐 작업을 배치합니다. Revoke.cash와 같은 일부 도구는 EIP-2612 permit 스타일 패턴을 구현하는 체인에서 다중 취소 거래를 지원하지만, 표준 ERC-20 취소에는 개별 거래가 필요합니다.

이것이 당신에게 의미하는 바

토큰 승인 위생은 일회성 작업이 아닙니다 — 반복되는 실천입니다. 중요한 DeFi 세션 이후 Rabby의 Approvals 탭이나 Revoke.cash에서 2분을 소비하여 더 이상 필요하지 않은 승인을 제거합니다. 주로 MetaMask를 사용하면 Etherscan의 Token Approvals Checker를 북마크하고 월 1회 실행합니다. 무제한 승인과 더 이상 상호작용하지 않는 컨트랙트에 부여된 승인을 우선순위로 정합니다. 승인을 취소하는 가스 비용은 거의 항상 단일 악용된 포지션의 비용보다 적습니다.

MetaMask와 Rabby는 계속해서 기본 승인 도구를 개선하고 있습니다 — MetaMask의 Q4 2025 로드맵은 향상된 지갑 내 승인 가시성을 언급했습니다 — 하지만 두 지갑 모두 당신이 먼저 승인을 부여하는 것을 방지하지 않습니다. 그것들을 감사하고 취소할 책임은 당신에게 남아 있습니다.