자유게시판

에어드롭 받으려다 '승인' 한 번에 지갑이 비는 이유, approve와 permit 정리

페이지 정보

본문

"에어드롭 대상자입니다, 지갑을 연결하고 받아 가세요" 같은 링크를 눌렀다가, 며칠 뒤 지갑의 USDT나 토큰이 통째로 빠져나간 경우를 종종 봅니다. 시드 문구를 알려 준 적도 없는데 왜 털렸는지 모르는 분이 많습니다.

대부분의 원인은 지갑 팝업에서 누른 "승인"이나 "서명" 한 번입니다. 오늘은 이 승인이 정확히 무엇을 허락하는지, 어떻게 확인하고 취소하는지 정리해 보겠습니다.

1. 연결, 서명, 승인은 서로 다릅니다

  • 지갑 연결: 사이트가 내 지갑 주소와 잔고를 볼 수 있게 됩니다. 이것만으로는 자산이 움직이지 않습니다.
  • 승인(approve): 특정 스마트컨트랙트에 "내 토큰을 이만큼까지 가져가도 된다"는 권한을 블록체인에 기록합니다. 네트워크 수수료(가스비)가 나갑니다.
  • 서명(permit 등): 블록체인 거래 없이 메시지에 서명만 하는데, 그 서명이 승인과 같은 효과를 내는 경우가 있습니다. 가스비가 안 나가서 더 위험합니다.

이더리움 계열 체인뿐 아니라 트론 같은 다른 체인의 토큰에도 같은 승인 구조가 있습니다.

2. 무제한 승인이 무서운 이유

정상적인 탈중앙 거래소도 토큰을 바꾸려면 승인이 필요하고, 편의상 "무제한"으로 승인을 요청하는 경우가 많습니다. 문제는 이 권한이 내가 취소하기 전까지 계속 살아 있다는 점입니다.

예를 들어 가짜 에어드롭 사이트에서 "Claim" 버튼을 누르고 USDT 무제한 승인을 해 줬다면, 그 순간 지갑에 USDT 3,000개가 있든 나중에 1만 개를 넣든 공격자가 원할 때 가져갈 수 있습니다. 그래서 털리는 시점이 승인한 날이 아니라 며칠, 몇 주 뒤인 경우가 많습니다.

NFT의 경우 "모든 NFT 권한(setApprovalForAll)"을 넘기는 승인이 있어서 한 번에 컬렉션 전체가 넘어갈 수도 있습니다.

정상 서비스를 쓸 때도 승인 금액은 줄일 수 있습니다. 예를 들어 탈중앙 거래소에서 USDT 100개를 다른 토큰으로 바꾼다면, 지갑 팝업의 승인 금액 칸을 무제한 대신 100으로 고치면 됩니다. 교환이 끝나면 남은 승인은 0이 되어, 나중에 그 서비스가 해킹돼도 지갑에 남은 USDT까지 위험해지지 않습니다.

3. 가스비 없는 서명, permit의 함정

일부 토큰은 permit이라는 기능을 지원합니다. 지갑에서 메시지 서명만 해 주면, 그 서명을 받은 쪽이 나중에 블록체인에 제출해 승인을 만들 수 있습니다. 유니스왑의 Permit2처럼 여러 토큰 승인을 한꺼번에 관리하는 방식도 있습니다.

이용자 입장에서는 "거래도 아니고 그냥 로그인 서명 같은 건가 보다" 하고 누르기 쉽습니다. 하지만 서명 내용 안에 받는 주소(spender), 금액(value), 유효기간(deadline)이 들어 있다면 사실상 출금 허락서입니다.

로그인용 서명은 보통 사람이 읽을 수 있는 짧은 문장입니다. 숫자와 주소가 잔뜩 들어간 서명을 요구한다면 일단 멈추세요.

4. 누르기 전에 지갑 팝업에서 볼 것

  • 사이트 주소: 공식 계정이 공지한 주소와 한 글자씩 비교하세요. 에어드롭 링크는 댓글, DM, 검색 광고로 오는 가짜가 대부분입니다.
  • 요청 종류: approve, increaseAllowance, setApprovalForAll, permit이라는 단어가 보이면 권한을 넘기는 요청입니다.
  • 금액: "무제한(Unlimited)"이 기본값으로 들어가 있으면 실제 쓸 만큼으로 줄이세요.
  • 에어드롭인데 내 토큰 권한을 요구한다면: 받는 행동에 내 USDT 승인이 필요할 이유는 없습니다.

가짜 사이트는 보통 서두르게 만듭니다. "남은 수량 3%", "1시간 뒤 소멸" 같은 카운트다운을 띄우고, 실제 프로젝트 이름과 로고를 그대로 베껴 씁니다. 급하게 누르라는 화면일수록 공식 계정의 고정 공지에서 주소를 다시 찾아 들어가는 습관이 필요합니다.

5. 이미 승인했다면: 확인하고 취소(revoke)하기

블록체인 탐색기의 토큰 승인 확인 메뉴나 승인 관리 도구에 내 지갑 주소를 넣으면, 지금까지 어떤 컨트랙트에 어떤 토큰을 얼마나 승인했는지 목록으로 나옵니다. 트론은 트론스캔의 계정 화면에서 승인 내역을 볼 수 있습니다.

모르는 컨트랙트나 무제한 승인은 취소(revoke)하세요. 취소도 블록체인 거래라 소액의 가스비가 듭니다. 승인 관리 도구도 검색 광고로 가짜가 뜨니 주소를 직접 입력하는 게 안전합니다.

이미 수상한 서명을 했고 아직 자산이 남아 있다면, 취소보다 남은 자산을 새 지갑으로 옮기는 게 먼저입니다. permit 서명은 아직 제출되지 않았으면 승인 목록에 안 보일 수 있기 때문입니다.

평소에는 에어드롭·이벤트 참여용 지갑과 자산 보관용 지갑을 나눠 두면, 사고가 나도 피해가 참여용 지갑 안에서 끝납니다.

정리하면

지갑 연결만으로는 털리지 않지만, 승인과 서명은 내 토큰을 가져갈 권한을 넘겨줍니다.
permit 서명은 가스비가 없어서 더 쉽게 누르게 되고, 효과는 승인과 같습니다.
승인 내역은 정기적으로 확인해 취소하고, 이벤트용 지갑은 따로 쓰세요.

에어드롭은 공식 채널에서 직접 확인한 주소로만 참여하는 것이 가장 확실한 방어입니다.

추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

회원 로그인

포인트랭킹

1 홍길동만세 735점
2 간식 445점
3 상어코인 435점
4 코린이 255점
5 코인고래 225점
6 쭉쭉이 210점
7 차트보는고래 135점
8 한국이 60점
전체 순위 보기 →

접속자집계

오늘
23
어제
18
최대
130
전체
998