승인이 지갑을 드레인하는 방식
승인은 오늘 당장 당신의 토큰을 옮기지 않습니다, 컨트랙트에게 원할 때 언제든 옮길 수 있는 상시 권한을 줄 뿐입니다. 그 권한이 어떻게 드레인으로 이어지는지, 그리고 그전에 어떻게 찾아 revoke하는지 알아봅니다.
공개 주소만 입력하세요. 지갑 연결도, 서명할 것도 없습니다.
승인이 실제로 부여하는 것
토큰의 approve(spender, amount)를 호출해도 아무것도 전송되지 않습니다. 토큰 컨트랙트에 권한을 기록할 뿐입니다: spender는 당신의 잔액에 대해 amount 한도까지, 원할 때 언제든 transferFrom을 호출할 수 있습니다, 당신의 추가 서명 없이요. 스왑, 민팅, 브리지는 필요한 토큰을 가져오기 전에 매번 승인을 요구합니다.
무제한이 기본 함정인 이유
대부분의 dapp은 그 spender를 다시 승인할 필요가 없도록 가능한 최대 금액을 요구합니다. 편리하지만, 동시에 상시 백지 수표이기도 합니다: allowance는 만료되지 않고, 사용해도 줄어들지 않으며, 그 dapp의 존재를 잊은 날에도 서명한 날과 똑같이 큰 채로 남아 있습니다.
spender가 악성으로 변하는 과정
spender가 처음부터 악성일 필요는 없습니다. 그 컨트랙트는 몇 달 뒤에 익스플로잇을 당할 수도, 그 팀이 러그풀로 드러날 수도, 또는 스캠 토큰/팜이 처음부터 악성일 수도 있습니다, 이 중 무엇이든, allowance가 열린 채로 남아 있는 모든 지갑에 대해 새 승인 없이 transferFrom을 호출하게 만듭니다.
사용되기 전에 찾아 revoke하세요
공개 주소를 스캔해 여러 체인에 걸친 모든 승인을 나열하세요, 무제한 allowance와 검증되지 않았거나 위험 표시된 spender가, 각각 얼마나 오래 열려 있었는지와 함께 강조 표시됩니다. 잊어버린 승인이 남의 돈벌이가 되기 전에 revoke.cash에서 위험한 것들을 revoke하세요.
자주 묻는 질문
승인이 있다는 건 이미 드레인당했다는 뜻인가요?
아니요. 승인은 상시 권한일 뿐, 전송이 아닙니다. spender가 실제로 transferFrom을 호출하기 전까지는 아무것도 움직이지 않습니다, 그래서 미리 revoke하는 것이 효과가 있는 것입니다.
어떤 승인이 위험한지 어떻게 아나요?
검증되지 않았거나 알 수 없는 컨트랙트에 대한 무제한 allowance가 가장 위험하고, 그다음이 악성으로 표시된 spender나 더 이상 쓴 기억이 없는 spender입니다. 스캔은 이 세 가지를 자동으로 찾아냅니다.