교육 참고용이며 투자 조언이 아닙니다. 투자로 인해 손실이 발생할 수 있습니다.
핵심 답변
월렛 드레이너는 가짜 사이트나 앱을 보여 주고 사용자가 자산 탈취를 승인하도록 유도하는 공격 키트 또는 절차입니다. 지갑을 연결했다는 사실만으로 통제권을 얻지는 못합니다. 탈취가 성공하려면 복구 문구나 개인 키 공개, 자산 전송, 트랜잭션 서명, 또는 실행 가능한 권한을 부여하는 메시지 서명처럼 실제 효력이 있는 행동이 필요합니다.
요청되는 권한은 직접 전송, ERC-20 지출 한도, ERC-2612 permit, ERC-721 개별 토큰 승인, 또는 setApprovalForAll 같은 운영자 승인일 수 있습니다. 공격자는 즉시 실행하거나 지갑에 가치 있는 자산이 들어올 때까지 기다릴 수 있습니다. ‘드레이너’는 탈취 절차를 뜻하며 특정 컨트랙트, 서명 형식이나 악성코드 계열을 뜻하지 않습니다.
모든 항목을 검토해도 자산, 거래 또는 시스템의 안전이 입증되는 것은 아닙니다.
작동 방식
미끼는 보통 에어드롭, 민팅, 마이그레이션, 계정 경고, 고객 지원 페이지 또는 익숙한 탈중앙화 앱을 사칭합니다. 지갑이 공개 주소를 노출하면 페이지는 자산을 파악하고 탈취에 가장 유리한 요청을 제시합니다.
- 직접 트랜잭션은 네이티브 통화를 보내거나 악성 컨트랙트를 호출할 수 있습니다.
- ERC-20
approve는 spender가 승인 금액까지transferFrom을 호출할 수 있는 한도를 기록합니다. - ERC-2612
permit은 누군가 나중에 서명을 온체인에 제출할 때 ERC-20 한도를 만듭니다. 서명자가 실행 트랜잭션의 gas를 낼 필요는 없습니다. - ERC-721
approve는 NFT 하나를 승인하고,setApprovalForAll은 해당 컬렉션에서 소유자가 보유한 모든 NFT에 대한 운영자 권한을 부여합니다. - EIP-712는 구조화 필드 표시와 도메인 분리를 제공하지만, 표준 자체는 리플레이 방지를 제공하지 않으며 요청이 사용자의 의도와 일치함을 증명하지도 않습니다.
드레이너 측은 서명된 데이터를 제출하거나 기록된 승인을 사용해 접근 가능한 자산을 옮기고 흔히 스왑하거나 브리지로 이동합니다. 권한과 잔액은 체인별로 구분됩니다. 사이트 연결 해제는 인터페이스 연결만 끝낼 뿐 온체인 권한을 취소하거나 모든 미실행 서명을 무효화하지 않습니다.
예시
가짜 민팅 페이지가 setApprovalForAll을 요청하지만, 민팅에 사용자의 기존 NFT를 조작할 권한은 필요하지 않습니다. 지갑 화면에는 모르는 운영자가 표시됩니다. 사용자가 승인하면 그 운영자는 승인이 유효한 동안 해당 컬렉션의 NFT를 전송할 수 있습니다.
같은 페이지가 ERC-20 토큰에 대한 ERC-2612 permit을 요청할 수도 있습니다. 서명 시 자산이 움직이지 않아 피해자는 페이지를 닫고 피해가 없다고 생각합니다. 공격자는 나중에 permit을 제출하고 transferFrom을 호출합니다. 사이트를 떠났다고 두 권한이 취소되지는 않습니다.
의도와 권한을 비교해야 합니다. 체인, 검증 컨트랙트, 함수, spender 또는 운영자, 토큰 주소, 금액 또는 범위, 수신자, nonce, 기한이 사용자가 의도한 작업과 모두 일치해야 합니다.
위험과 통제
- 독립적으로 확인한 공식 도메인이나 북마크에서 앱을 여십시오. 광고, 원치 않는 메시지, QR 코드와 고객 지원 답변은 신뢰할 수 있는 진입점이 아닙니다.
- 지갑 프롬프트와 신뢰할 수 있는 기기의 화면을 읽으십시오. 불투명한 데이터, 예상 밖 네트워크, 모르는 spender, 무제한 금액, 광범위한 운영자 권한과 설명된 목적에 무관한 작업은 거부하십시오.
- 지원되는 경우 유한하고 짧은 권한을 사용하십시오. 장기 보유 지갑을 낯선 앱용 지갑과 분리하고 각 활성 체인의 승인을 정기적으로 확인하십시오.
- 시뮬레이션과 지갑 경고는 증거이지 보장이 아닙니다. 상태가 바뀌거나 디코딩이 불완전할 수 있고 정상 컨트랙트도 해로운 권한을 행사할 수 있습니다.
- 하드웨어 지갑은 키 자료를 격리하지만 소유자가 악성 요청을 승인하면 그 요청을 안전하게 만들 수 없습니다.
복구 문구나 개인 키가 노출됐다면 신뢰할 수 있는 기기에서 새 비밀로 새 지갑을 만들고 남은 자산을 옮기십시오. 승인 취소로 키 유출을 복구할 수 없습니다. 승인이나 서명만 의심된다면 올바른 체인을 확인하고 신뢰할 수 있는 인터페이스에서 관련 한도나 운영자를 취소하십시오. 미실행 서명을 확실히 무효화할 수 없다면 노출 자산을 옮기십시오. 취소도 온체인 트랜잭션이므로 공격자와의 순서 경쟁에서 질 수 있습니다.
도메인, 메시지, 서명 데이터, 주소, 트랜잭션 해시와 시간을 보존하고 사칭당한 서비스와 관계 당국에 신고하십시오. 비밀, 추가 서명 또는 선불 수수료를 요구하는 ‘복구’ 담당자는 무시하십시오.
흔한 오해
- 지갑을 연결하면 사이트에 보관 권한을 준다. 연결은 보통 선택한 공개 주소를 보여 주고 요청을 제안하게 할 뿐이며 권한에는 추가 행동이 필요합니다.
- gas가 들지 않으면 위험도 없다. permit 같은 오프체인 서명은 다른 사람이 gas를 내고 실행할 수 있습니다.
- EIP-712나 하드웨어 지갑이면 안전하다. 가시성과 키 격리를 개선하지만 spender, 컨트랙트나 의도의 신뢰성을 증명하지 않습니다.
- 연결 해제나 승인 하나의 취소로 사건이 끝난다. 다른 체인, 토큰, 운영자, 서명 또는 유출된 키가 여전히 노출될 수 있습니다.
- 취소 성공으로 탈취 자산이 돌아온다. 확인 뒤의 향후 사용만 제한하며 완료된 전송을 되돌리지 않습니다.
관련 주제
출처
- Ethereum security and scam prevention - Ethereum.org (접속일: 2026-08-22)
- Signature phishing - MetaMask Help Center (접속일: 2026-08-22)
- How to revoke smart contract allowances and token approvals - MetaMask Help Center (접속일: 2026-08-22)
- ERC-20: Token Standard - Ethereum Improvement Proposals (접속일: 2026-08-22)
- EIP-712: Typed structured data hashing and signing - Ethereum Improvement Proposals (접속일: 2026-08-22)
- ERC-2612: Permit Extension for EIP-20 Signed Approvals - Ethereum Improvement Proposals (접속일: 2026-08-22)
- ERC-721: Non-Fungible Token Standard - Ethereum Improvement Proposals (접속일: 2026-08-22)