궁금한 주제를 찾아보세요

비트코인, 스테이블코인, 온체인 데이터처럼 주제로 검색하세요.

다시 읽을 이야기

저장한 글은 이 브라우저에만 보관됩니다.

기초지식코인 기초

토큰 승인과 전송의 차이, 사용 권한 확인법

토큰 전송과 spender 주소에 부여하는 사용 한도의 차이, 무제한 승인이 남는 위험과 온체인 취소 확인 방법을 설명한다.

토큰 승인과 전송의 차이, 사용 권한 확인법의 권한 경계를 나타낸 편집 일러스트
주제의 이해를 돕기 위해 imagegen으로 제작한 AI 생성 개념 일러스트
먼저 읽는 핵심

연결 해제는 세션을 끊을 뿐 온체인 allowance를 취소하지 않는다
수취 주소·금액 확인
지갑 연결을 끊는 것과 토큰 승인을 취소하는 것은 다르다.

토큰 승인은 특정 spender가 나중에 transferFrom으로 사용할 한도를 계약에 기록하는 권한 설정이다. 스왑이 끝나거나 사이트 연결을 끊어도 allowance가 남을 수 있어 체인별 계약 주소와 잔여 한도를 확인해야 한다.

승인은 미래의 사용 권한이다

토큰 전송은 자산을 즉시 다른 주소로 옮기지만 승인은 spender 주소가 정해진 한도까지 나중에 transferFrom으로 가져갈 권한을 주며, 권한은 사용 후에도 남을 수 있다.

ERC-20 approve는 토큰을 즉시 보내는 거래가 아니라 특정 spender가 이후 transferFrom으로 쓸 수 있는 한도를 기록한다. 승인이 남아 있으면 사용자가 사이트를 다시 열지 않아도 승인된 spender가 토큰 이동을 시도할 수 있다.

사이트 연결을 끊는 일은 세션 종료이고 allowance를 0으로 만드는 일은 별도의 온체인 거래다.

JOBCOIN 해설

approve와 transferFrom이 이어지는 과정

ERC-20 approve(spender, value)는 allowance를 설정한다. 승인된 계약은 transferFrom(owner, recipient, amount)을 호출해 한도 안에서 토큰을 이동한다. 무제한 승인은 매우 큰 값으로 설정돼 잔액이 나중에 늘어도 권한이 지속될 수 있다. revoke는 allowance를 0으로 바꾸는 새 온체인 거래다.

사용자가 approve를 온체인에 기록한 뒤 스왑 라우터가 transferFrom을 호출해 토큰을 가져간다. 실제 사용액이 allowance보다 적으면 남은 한도가 유지될 수 있다. 승인 거래와 스왑 거래가 따로 필요한 이유다.

전송·승인·취소 비교

일반 transfer는 보유자가 직접 수취인에게 보내고, approve는 제3자 한도를 설정하며, revoke는 한도를 0으로 바꾸는 새 거래다. 과거 승인 거래를 삭제하는 것이 아니며 취소에도 네트워크 가스가 든다.

ERC-20 권한 동작
구분 무엇을 뜻하나 확인할 증거
transfer 호출 시 토큰을 즉시 이동 수취 주소·금액 확인
approve spender의 미래 사용 한도 설정 계약 주소·한도·만료 여부
revoke allowance를 0 또는 낮은 값으로 변경 가스 필요, 과거 이동 복구 불가

100 USDC 스왑 뒤 남은 무제한 승인

DEX에서 100 USDC를 바꾸려다 무제한 승인을 허용하면 스왑 뒤에도 라우터에 권한이 남을 수 있다. 계약이 악용되거나 프록시가 악성 구현으로 바뀌면 추가 서명 없이 남은 USDC가 transferFrom될 위험이 있다. 단, 승인만으로 ETH 자체를 옮기는 것은 아니다.

100 USDC를 스왑하면서 무제한 승인을 했다면 100을 사용한 뒤에도 매우 큰 allowance가 남을 수 있다. 같은 라우터가 안전하더라도 업그레이드나 키 탈취가 생길 때 노출 범위가 잔액 전체로 커질 수 있다.

연결 해제와 승인 취소는 다르다

지갑 연결을 끊는 것과 토큰 승인을 취소하는 것은 다르다. 연결 해제는 사이트가 주소를 읽는 세션을 끊지만 온체인 allowance는 남을 수 있다. 반대로 승인 취소는 이미 빠져나간 토큰을 되돌리지 못한다.

웹사이트에서 지갑 연결을 해제하면 사이트 세션만 끊긴다. 토큰 계약에 저장된 allowance는 바뀌지 않는다. 탐색기나 승인 관리 도구에서 체인별 spender 권한을 확인하고 필요 없는 것은 온체인 취소해야 한다.

spender와 allowance 확인

승인 목록에서 토큰 계약, spender 주소, allowance, 마지막 사용 시점을 본다. 이름이 비슷한 계약을 피하려면 공식 문서의 라우터 주소와 대조한다. 현재 잔액이 0이어도 나중에 들어올 토큰이 노출될 수 있다.

  • 서명창의 spender와 token contract를 확인한다
  • 필요 수량만 승인할 수 있는지 본다
  • 사용하지 않는 무제한 승인을 주기적으로 조회한다
  • 의심 시 새 상호작용보다 승인 취소와 자산 격리를 우선한다

Permit 서명에 남는 별도 위험

모든 승인이 악성은 아니며 디파이 상호작용에 필요한 표준 기능이다. 위험은 범위와 지속성, 대상 계약의 변경 가능성에서 나온다. Permit 계열 서명은 가스 없는 승인처럼 보일 수 있으므로 메시지 서명도 토큰·금액·spender·deadline을 읽는다.

Permit는 서명 메시지로 allowance를 설정해 별도 approve 거래를 줄일 수 있지만, 서명에 spender·금액·기한·nonce가 포함된다. 가스비가 0이라는 이유로 무해하지 않으며 서명 내용을 해석하지 못하면 중단한다.

승인을 취소하기 전 spender가 실제로 위험한지 확인하느라 지연할 필요는 없지만, 가짜 취소 사이트에 다시 서명해서도 안 된다. 토큰 계약의 allowance 조회와 검증된 revoke 도구를 사용하고, 취소 거래가 블록에 포함된 뒤 값이 0인지 직접 확인한다.

승인 금액을 매번 필요한 수량으로 제한하면 무제한 노출을 줄일 수 있지만 반복 가스 비용이 생긴다. 일부 토큰은 0으로 먼저 바꾼 뒤 새 한도를 설정해야 할 수 있다. 지갑이 제안하는 기본값을 그대로 쓰기보다 계약 특성과 사용 빈도에 맞춰 정한다.

자주 묻는 질문

지갑 연결 해제하면 승인이 사라지나요?

아니다. 온체인 allowance는 별도 revoke 거래로 바꿔야 한다.

승인 취소에도 가스가 드나요?

일반적인 온체인 revoke는 상태 변경 거래라 네트워크 수수료가 필요하다.

무제한 승인 후 잔액이 0이면 안전한가요?

나중에 같은 토큰이 들어오면 남은 권한으로 이동될 수 있어 승인 상태를 확인해야 한다.

직접 확인한 자료

자료 확인 2026.09.27
  1. ERC-20: Token Standardeips.ethereum.org
  2. What are token approvalsmetamask.io
AI 활용 안내

이 글은 AI로 초안을 구성한 뒤 공개 원문과 기술 문서를 대조해 작성했습니다. 대표 이미지는 AI 생성 개념 일러스트이며 실제 사건 사진이나 가격 차트가 아닙니다.

이해를 위한 정보 콘텐츠

이 글은 특정 자산의 매수·매도 또는 수익을 권유하지 않습니다. 자료의 발표 시점과 이후 변경 사항을 함께 확인해 주세요.

편집 원칙과 정정 안내 →