Crypto
Tokens approved years ago are now draining wallets 몇 년 전에 눌러둔 토큰 승인이 지금 지갑을 비웁니다
When you connect your wallet to a DeFi protocol or NFT marketplace, you'll be asked to approve token spending. Most people mindlessly hit the confirmation button, but few know exactly what they're approving.
Token approval is essentially granting a specific contract permission to withdraw that token from your wallet. The problem is that many services request unlimited approvals for convenience. This design avoids prompting an approval window every time, but from the user's perspective, it means granting indefinite withdrawal rights.
Furthermore, these approvals don't disappear when you leave the site. Even if you disconnect your wallet from the browser, the on-chain approval remains. It must be explicitly revoked to be removed.
This is where the risk lies. If the protocol you granted approval to is later hacked, if the developers have malicious intent, or if a vulnerability is found in the contract, your current balance can be drained through an approval made years ago. In actual cases of damage, victims often don't even remember the service existing.
Checking this is not difficult. There are tools available to view and revoke your approvals. When you connect your wallet, they display a list of which contracts have approval for which tokens and in what amounts. You should clean up unused ones. Revoking also incurs fees, but it's better to consider it as insurance.
A more fundamental solution is to separate your wallets. Keep long-term holdings in a wallet that isn't connected to any site, and use a separate wallet for DeFi or minting, transferring only the necessary amounts. This limits the damage scope to that specific wallet in case of an approval-related incident.
When an approval request window pops up, it's also good practice to check if the limit is unlimited and, if possible, approve only the necessary amount. Some wallets allow you to directly modify this value.디파이 프로토콜이나 NFT 마켓에 지갑을 연결하면 토큰 승인(approve)을 요청받습니다. 대부분 무심코 확인 버튼을 누르는데, 이때 승인되는 것이 정확히 무엇인지 아는 사람은 많지 않습니다.
토큰 승인은 특정 컨트랙트가 내 지갑에서 해당 토큰을 꺼내갈 수 있도록 허락하는 행위입니다. 문제는 많은 서비스가 편의를 위해 무제한 승인을 요청한다는 점입니다. 매번 승인 창을 띄우지 않으려는 설계인데, 사용자 입장에서는 한도 없는 인출 권한을 넘기는 것입니다.
그리고 이 승인은 사이트를 떠난다고 사라지지 않습니다. 브라우저에서 지갑 연결을 끊어도 온체인에 기록된 승인은 그대로 남아 있습니다. 명시적으로 취소해야 없어집니다.
여기서 위험이 생깁니다. 승인해준 프로토콜이 나중에 해킹당하거나, 개발자가 악의를 품거나, 컨트랙트에 취약점이 발견되면, 몇 년 전에 눌러준 승인을 통해 지금 잔고가 빠져나갈 수 있습니다. 실제 피해 사례를 보면 본인은 그 서비스의 존재조차 잊고 있었던 경우가 많습니다.
점검 방법은 어렵지 않습니다. 승인 내역을 조회하고 취소할 수 있는 도구들이 있습니다. 지갑을 연결하면 어떤 컨트랙트에 어떤 토큰이 얼마나 승인되어 있는지 목록으로 보여줍니다. 쓰지 않는 것을 정리하면 됩니다. 취소에도 수수료가 들지만 보험이라고 생각하는 편이 낫습니다.
더 근본적인 대책은 지갑을 분리하는 것입니다. 장기 보유 자산은 아무 사이트에도 연결하지 않은 지갑에 두고, 디파이나 민팅에 쓰는 지갑은 따로 만들어 필요한 만큼만 옮겨 쓰는 방식입니다. 그러면 승인 관련 사고가 나도 피해 범위가 그 지갑으로 제한됩니다.
승인 요청 창이 뜨면 한도가 무제한인지 확인하고, 가능하다면 필요한 금액만큼만 승인하는 습관을 들이는 것도 좋습니다. 일부 지갑은 이 값을 직접 수정할 수 있게 해줍니다.
0
Comments 0