Crypto Nation전체 코인 시장을 하나의 나라로🗺 나라 지도 열기지도

심층 칼럼 · #23 / 50 · 지갑 · 오라클 · 보안 · 실생활 결제

온체인 지갑 보안 수칙: 토큰 승인(Approve) 악용과 서명 피싱으로부터 내 자산을 지키는 법

12단어 복구 구절을 절대 남에게 주지 않았는데도 지갑이 털리는 이유와 예방법

블록체인에서 자산을 도난당한 피해자들의 이야기를 들어보면 ‘나는 내 12단어 복구 구절(시드 구문)을 그 누구에게도 알려준 적이 없는데 어느 날 지갑 속 토큰이 모두 빠져나갔다’고 호소하는 경우가 많습니다. 복구 구절이 유출되지 않아도 지갑이 비워지는 가장 흔한 두 가지 통로—무제한 토큰 승인(Approve)과 오프체인 서명(Permit) 피싱—의 원리와 대처법을 알아봅니다.

1. ERC-20 토큰의 ‘한도 승인(Approve)’이란 무엇인가

우리가 유니스왑 같은 탈중앙 거래소에서 USDC를 팔아 ETH를 살 때, 지갑 창이 두 번 뜨는 것을 볼 수 있습니다. 첫 번째 창이 바로 ‘유니스왑 스마트 컨트랙트가 내 지갑에서 USDC를 꺼내 갈 수 있도록 허락한다’는 승인(Approve) 거래이고, 두 번째가 실제 교환(Swap) 거래입니다.

문제는 많은 앱들이 매번 승인 수수료를 내는 번거로움을 줄여주겠다며 승인 한도를 ‘내가 지금 쓸 100 USDC’가 아니라 ‘무제한(Unlimited)’으로 설정해 둔다는 점입니다. 만약 내가 무제한 승인을 해 준 그 앱이 나중에 해킹을 당하거나 처음부터 가짜 피싱 사이트였다면, 해커는 내 비밀번호를 몰라도 언제든 내 지갑에서 USDC를 전액 빼갈 수 있는 백지수표를 쥔 셈이 됩니다.

2. 가스비도 안 드는 ‘서명(Permit)’ 한 번에 토큰이 빠져나가는 이유

더 교묘한 수법은 EIP-2612 Permit이나 Permit2 같은 오프체인 서명을 악용하는 피싱입니다. 원래 이 기술은 사용자가 가스비를 내고 승인 거래를 올리는 대신, 지갑에서 무료 메시지 서명만 한 번 하면 토큰 사용 권한을 위임할 수 있게 만든 편리한 표준입니다.

해커들은 유명 프로젝트의 에어드랍 수령 사이트나 NFT 무료 민팅 사이트를 똑같이 위조해 놓고, 사용자가 ‘로그인 서명인 줄 알고’ 무심코 서명 버튼을 누르게 유도합니다. 실제로는 그 서명 데이터 안에 ‘내 지갑의 모든 토큰 인출 권한을 해커 주소에 넘긴다’는 내용이 들어 있어서, 서명하는 즉시 해커가 대신 가스비를 내고 자산을 빼내 갑니다.

3. 자산 규모별 지갑 분리: ‘금고 지갑(Cold Wallet)’과 ‘외출용 지갑(Hot Wallet)’

가장 확실한 방어법은 현실에서 전 재산이 든 통장을 들고 골목길을 돌아다니지 않는 것처럼 지갑을 철저히 나누어 쓰는 것입니다. 오래 보관할 큰 금액의 ETH나 스테이블코인은 외부 사이트에 절대 연결하지 않고 오직 내 지갑끼리만 송금하는 금고 지갑(하드웨어 지갑 권장)에 넣어 둡니다.

그리고 새로운 DeFi 앱을 써 보거나 이벤트를 참여할 때는 당장 쓸 소액만 옮겨 담은 외출용(버너) 지갑을 연결해 씁니다. 이러면 설령 외출용 지갑에서 잘못된 서명을 하더라도 금고 지갑의 자산은 100% 안전하게 격리됩니다.

4. 정기적인 승인 권한 청소와 블록 탐색기 확인 습관

쓰고 난 뒤 더 이상 이용하지 않는 앱의 토큰 승인 권한은 블록 탐색기(Etherscan, Basescan, Arbiscan 등)의 ‘Token Approvals’ 메뉴나 Revoke.cash 같은 도구에서 주기적으로 취소(Revoke)해 두는 것이 좋습니다. 또한 지갑이 띄우는 서명 창에 Permit, Approve, SetApprovalForAll이라는 글자가 보일 때는 반드시 내가 지금 접속한 인터넷 주소(URL)가 공식 주소가 맞는지 두 번 확인하는 습관이 최고의 보안입니다.

관련 구역 안내

관련 용어 풀이

이 칼럼은 도시를 읽는 데 도움을 주려고 쓴 해설이며 투자 조언이 아닙니다. 이 글의 사실은 2026년 10월 기준이며 바뀔 수 있습니다. 틀린 곳을 보시면 문의로 알려 주세요.