Solana에서 토큰 권한을 철회하는 방법
Rent 업데이트 확인일: 2026년 9월 3일: 이 이전 글에 나온 계정당 고정 Rent 또는 지급액은 기존 바이트당 6,960 lamports 설정을 기준으로 한 과거 예시이며 현재 견적이 아닙니다. 계정 크기, 활성 Rent 단계, 이전 인출, 작업 수수료, 네트워크 비용에 따라 결과가 달라질 수 있습니다. Solana Rent 인하 2026을 읽고 지갑의 실시간 트랜잭션 미리보기를 사용하세요.
Ethereum에서는 무제한 ERC-20 승인으로 많은 지갑의 자산이 탈취된 탓에 권한 철회가 이미 널리 알려져 있습니다. Solana에도 이에 상응하는 메커니즘이 있지만 작동 방식이 다르므로, 어떤 피해가 가능하고 불가능한지 이해할 필요가 있습니다.
Solana에서 토큰 권한을 철회하려면 어떻게 해야 하나요?
위임 철회 도구에 연결하세요. 소유한 모든 토큰 계정을 스캔하고, 그 계정에서 토큰을 옮기도록 승인한 주소를 표시한 뒤 해당 승인을 한 번에 해제합니다. 별도의 서비스 수수료는 없습니다. 위임을 철회해도 임대료는 회수되지 않으므로 네트워크 수수료만 지불합니다. CLI에서는 spl-token revoke <TOKEN_ACCOUNT_ADDRESS>를 사용합니다.
Solana 위임자의 실제 의미
Solana에서 무언가를 승인한다는 것은 위임자 특정 토큰 계정 하나에 설정됩니다. 이 Approve 명령은 해당 계정에 위임자 주소와 위임 금액, 두 가지를 기록합니다.
그러면 위임자는 다시 허락을 구하지 않고 해당 계정 하나에서 위임된 금액까지 전송하거나 소각할 수 있습니다. 다른 토큰 계정에는 접근할 수 없고 위임 금액을 초과할 수 없으며 SOL도 옮길 수 없습니다.
이는 실제 권한이므로 심각하게 받아들여야 합니다. 토큰 계정에 허용량을 가진 위임자는 해당 토큰을 옮길 수 있습니다. 다만 세 가지 구조적 이유로 영향 범위가 이더리움의 동등한 권한보다 훨씬 작습니다.
Solana 승인의 범위가 이더리움보다 좁은 이유
| Ethereum 승인 | Solana 위임자 | |
|---|---|---|
| 범위 | 해당 컨트랙트에서 보유한 모든 토큰 | 토큰 계정 하나 |
| 금액 | 대개 무제한 | 사용자가 설정한 고정 한도 |
| 한 번에 여러 개 | 예, 지출자별로 누적됨 | 아니요 — 계정당 위임자 한 명 |
| 해제 방법 | 명시적인 위임 철회 트랜잭션 | 위임 철회는 또는 계정 닫기 |
세 번째 행이 중요합니다. Ethereum에서는 승인이 누적됩니다. 같은 토큰에 대해 여러 컨트랙트에 허용량을 부여할 수 있고, 각 승인은 철회될 때까지 눈에 띄지 않게 유지됩니다. 수년간 DeFi를 사용하면 잊힌 무제한 승인이 길게 남게 되며, 바로 이 때문에 Ethereum에서 권한 철회 도구가 필수적인 도구로 자리 잡았습니다.
Solana에서는 각 토큰 계정에는 위임자를 최대 한 명만 설정할 수 있습니다.. 새 위임자를 설정하면 이전 위임자를 덮어씁니다. 누적되는 목록은 없으며, 토큰 계정에는 현재 위임자 한 명이 있거나 아무도 없습니다.
이 때문에 Solana에는 Ethereum과 같은 위임 철회 도구 문화가 형성되지 않았습니다. 위험은 실제로 존재하지만 범위가 제한되어 있으며, 일반적으로 지갑을 사용하는 과정에서 자연스럽게 해소됩니다.
위임자가 설정되는 경로
계정에 설정된 위임자 대부분은 악의적이지 않습니다. 일반적인 Solana 기능이 작동하는 방식입니다.
- NFT 마켓플레이스 등록. NFT을 등록하면 일반적으로 구매자가 나타났을 때 판매를 실행할 수 있도록 마켓플레이스 프로그램에 권한이 위임됩니다. 등록된 NFT을 등록 해제하기 전까지 소각할 수 없는 이유도 여기에 있습니다. 지갑이 더 이상 해당 자산에 대한 단독 권한을 보유하지 않기 때문입니다.
- 스테이킹 및 볼트 프로그램. 프로토콜에 예치할 때는 자산의 보관권을 이전하는 대신 위임자를 사용하는 경우가 많습니다.
- 프로그래머블 NFT. pNFT는 로열티 적용 과정의 일부로 권한이 위임된 채 동결 상태로 보관됩니다.
- 악성 승인. 실제로 우려해야 할 경우는 다음과 같습니다. 피싱 사이트가 수령 트랜잭션처럼 보이는 내용을 제시하지만, 실제로 사용자가 서명하는 것은
Approve위임자에게 토큰에 대한 권한을 넘기는 것입니다.
위임 철회로 제거할 수 없는 한 가지
지금까지 설명한 내용은 모두 계정 수준 위임자입니다. 이는 사용자가 소유한 토큰 계정의 필드이므로 직접 지울 수 있습니다.
Token-2022에는 별도의 더 강력한 권한인 다음 항목이 도입되었습니다. 영구 위임자, 다음에 설정되는 민트 계정이 아니라 민트에 설정됩니다. 이 권한이 있는 민트는 해당 주소에 다음 대상에 대한 전송 및 소각 권한을 부여합니다. 모든 해당 토큰을 보유한 모든 계정이며 한도도 없고, 보유자가 이를 막을 방법도 없습니다. 사용자가 부여한 권한이 아니라 토큰 자체의 속성이므로 Revoke 위임 철회는 이 권한에 영향을 주지 않으며 어떤 도구도 마찬가지입니다.
일부 정상적인 토큰은 이를 의도적으로 사용합니다. 예를 들어 환수 경로가 필요한 규제 대상 스테이블코인이 있습니다. 하지만 이는 당사 도구를 포함해 모든 Solana 위임 철회 도구가 실질적으로 다룰 수 있는 범위가 자신의 계정에 직접 부여한 승인.
토큰의 민트에 영구 위임자가 설정되어 있다면 해당 위험을 없애는 유일한 방법은 그 토큰을 더 이상 보유하지 않는 것입니다. 위임이 정상적으로 철회되었다고 해서 아무도 특정 잔액을 옮길 수 없다고 단정하기 전에 탐색기에서 민트를 확인하세요.
위임자가 설정된 항목을 확인하는 방법
지갑은 이 정보를 드러내지 않습니다. Phantom과 Solflare은 잔액을 보여줄 뿐 각 토큰 계정의 위임자 필드는 표시하지 않으므로, 2년 전에 부여한 승인은 매일 사용하는 인터페이스에서 보이지 않습니다.
확인하는 방법은 세 가지입니다.
- 위임 철회 도구. 지갑을 연결하면 SPL Token 및 Token-2022 프로그램 전체의 모든 토큰 계정을 스캔하여 각 위임자, 적용 대상 민트, 허용량을 표시합니다. 스캔은 읽기 전용이므로 목록을 확인할 때는 서명이나 승인이 필요하지 않습니다.
- 블록 탐색기. 지갑 주소를 조회하고 개별 토큰 계정을 연 다음 위임자 필드를 확인하세요. 위임자가 설정되어 있으면 표시됩니다. 계정 하나는 확인할 만하지만 100개라면 번거롭습니다.
- 이
spl-tokenCLI.spl-token account-info <TOKEN_ACCOUNT_ADDRESS>위임자와 위임 금액을 보고합니다.
위임자가 알고 있는 마켓플레이스이고 NFT이 현재 등록된 상태라면 정상입니다. 등록을 해제하면 위임자도 제거됩니다.
허용량 열을 확인하세요. 승인 시 실제 필요한 수량이 아니라 가능한 최댓값으로 설정되는 경우가 많으며, 도구에는 이를 무제한으로 표시합니다. 정상적인 등록은 일반적으로 NFT 하나만 정확히 위임합니다. 보유량이 많은 토큰에 무제한 허용량이 설정되어 있다면 다시 확인해 볼 필요가 있습니다.
위임을 철회하는 방법
도구에서, 다음에서 연결하세요. sol-incinerator.com/revoke, 목록을 검토한 후 서명하세요. 선택한 항목은 가능한 한 적은 수의 트랜잭션으로 일괄 처리되므로 오래된 위임자가 30개 있어도 30번 서명할 필요는 없습니다.
존재하는 것은 서비스 수수료 없음. 위임을 철회해도 임대료가 반환되지 않으므로 차감할 서비스 수수료도 없습니다. 네트워크 트랜잭션 수수료만 지출합니다.
CLI에서, 특정 토큰 계정에 대해 다음과 같이 실행합니다.
spl-token revoke <TOKEN_ACCOUNT_ADDRESS>
이것은 SPL Token 프로그램의 Revoke 명령에는 토큰 계정과 계정 소유자의 서명만 필요합니다. 이 명령은 위임자 필드를 완전히 지웁니다. 일부만 처리된 채 실패할 수 없으며 잔액에도 영향을 주지 않습니다.
지갑 UI에서, 일반적으로 간접적인 방법을 사용해야 합니다. 처음에 위임자를 생성한 작업을 취소하거나 등록을 해제하세요. NFT을 등록했던 마켓플레이스에서 등록 해제하면 취소 명령의 일부로 해당 마켓플레이스의 위임자가 제거됩니다.
등록된 NFT에서 마켓플레이스의 위임자를 철회하면 사실상 등록이 해제됩니다. 마켓플레이스가 더 이상 판매를 완료할 수 없기 때문입니다. 이는 올바른 동작이지만 계속 등록해 둘 생각이라면 위임자를 그대로 두세요.
동결된 계정에서는 왜 위임을 철회할 수 없나요?
Solana에서 허용하지 않기 때문입니다. SPL Token 프로그램은 동결된 토큰 계정에 대한 위임 철회를 즉시 거부하고 다음을 반환합니다. AccountFrozen — 계정을 동결하면 전송뿐 아니라 권한 변경도 차단됩니다.
동결과 위임은 함께 나타나는 경향이 있으므로 이는 생각보다 중요합니다. 프로그래머블 NFT는 로열티 적용을 위해 위임자가 설정된 동결 상태로 보관되며, 많은 스테이킹 프로그램도 보유 자산을 동결합니다. 따라서 발견할 가능성이 가장 높은 위임자가 오히려 직접 제거할 수 없는 위임자인 경우가 많습니다.
이 도구는 이러한 계정을 목록에서 제외합니다. 실제로 위임자가 설정된 동결 계정은 대개 의도대로 작동 중인 계정, 즉 로열티를 적용하는 pNFT이거나 사용자가 의도적으로 스테이킹한 자산이지, 별도 조치가 필요한 대상이 아니기 때문입니다.
위임자를 제거하려면 먼저 계정의 동결이 먼저 해제되어야 합니다.. 언스테이킹하거나 등록을 해제하는 등 계정을 동결시킨 작업을 완료하세요. 동결이 해제되면 위임자를 정상적으로 철회할 수 있습니다.
소각은 우회 방법이 아닙니다. 동결 계정은 위임 철회와 같은 이유로 소각도 거부합니다. 동결은 전송뿐 아니라 해당 작업 자체를 차단하므로 자산이 계정에 있는 동안에는 소각으로 동결된 위임자를 없앨 수 없습니다. 동결 권한자만 계정의 동결을 해제할 수 있습니다.
도구가 무조건 철회를 시도하지 않는 데에는 실용적인 이유가 있습니다. 위임 철회는 가능한 한 적은 수의 트랜잭션으로 일괄 처리되므로, 동결 계정 하나가 같은 트랜잭션에 포함된 다른 모든 위임자의 철회까지 실패하게 만들 수 있습니다. 동결 계정을 제외해야 나머지 작업이 성공할 수 있습니다.
완전한 방법: 계정 닫기
자주 놓치는 부분이 있습니다. 위임자는 토큰 계정에 저장되는 필드입니다. 계정이 없으면 위임자도 없습니다.
따라서 해당 토큰이 어차피 원하지 않는 스팸 토큰, 사라진 밈코인, 무언가에 서명하도록 유도한 사기 에어드롭이라면 토큰을 소각하고 계정을 닫는 과정에서 위임자도 영구적으로 제거됩니다. 권한 자체를 철회한다기보다 그 권한이 적용되던 대상을 삭제하는 것입니다. 또한 단순한 위임 철회와 달리 계정을 닫으면 계정에 보관되어 있던 ~0.00204 SOL 임대료 예치금이 반환됩니다.
따라서 보유할 생각이 없는 토큰이라면 정리가 더 철저한 대응입니다.
| 작업 | 위임자 제거됨 | 토큰 유지 | SOL 반환됨 |
|---|---|---|---|
| 위임 철회 | 예 | 예 | 아니요 |
| 소각 + 계정 닫기 | 예 | 아니요 | 0.002 SOL |
토큰을 보유하려면 위임을 철회하고, 보유하지 않으려면 소각 후 계정을 닫으세요.
악성 트랜잭션에 서명했다고 생각된다면 위임 철회만으로는 충분하지 않습니다. 위임 권한은 공격자가 확보했을 수 있는 여러 요소 중 하나일 뿐이며, 시드 문구가 노출되었다면 어떤 온체인 조치도 도움이 되지 않습니다. 먼저 가치 있는 자산을 새 지갑으로 옮긴 다음 손상된 지갑을 처리하세요.
현실적인 위협 모델
대부분의 사용자에게 필요한 내용을 간단히 정리하면 다음과 같습니다. 후회되는 서명을 했다면 위임자를 확인하고, 더 이상 등록할 필요가 없는 항목은 등록 해제하며, 악성 승인이 달라붙기 쉬운 불필요한 토큰은 정리하세요.
Solana의 설계상 Ethereum 지갑처럼 수년간 누적된 무제한 승인을 안고 있을 일은 없습니다. 대신 보유하고 있을 가능성이 높은 것은 있습니다. 환불 가능한 예치금이 각각 들어 있는 방치된 토큰 계정 수백 개일 가능성이 큽니다. 이는 실제 금전적 가치가 있으며 회수하는 데 약 1분이면 됩니다.
관련 글
자주 묻는 질문
Solana에서 토큰 권한을 철회하려면 어떻게 해야 하나요?
위임자가 설정된 토큰 계정에 SPL Token 프로그램의 Revoke 명령을 사용하세요. 토큰 계정과 소유자의 서명만 있으면 됩니다. 명령줄에서는 SPL-token revoke 뒤에 토큰 계정 주소를 입력합니다.
Solana 토큰 계정의 위임자란 무엇인가요?
위임자는 특정 토큰 계정 하나에서 설정된 금액까지 전송하거나 소각하도록 승인한 주소입니다. 마켓플레이스는 NFT 등록에 위임자를 사용하고 스테이킹 프로그램은 예치에 사용합니다. 각 토큰 계정에는 한 번에 위임자 한 명만 설정할 수 있습니다.
Solana 승인은 Ethereum 승인만큼 위험한가요?
범위가 더 좁습니다. Solana 위임자는 고정 금액 한도가 있는 단일 토큰 계정에만 적용되며, 새 위임자를 승인하면 기존 위임자에 누적되지 않고 대체됩니다. Ethereum 승인은 토큰 컨트랙트 단위이고 무제한인 경우가 많으며 계속 누적됩니다.
토큰 계정을 닫으면 위임자도 제거되나요?
예, 완전히 제거됩니다. 위임자는 토큰 계정 자체에 저장되는 필드이므로 계정이 닫히면 계정과 함께 존재하지 않게 됩니다. 원하지 않는 토큰을 소각하고 계정을 닫으면 그 과정에서 모든 위임자도 제거됩니다.
토큰 계정에 위임자가 설정되어 있는지 어떻게 확인하나요?
블록 탐색기에서 주소를 조회하고 개별 토큰 계정을 살펴보세요. 위임자가 설정되어 있으면 위임자 필드가 표시됩니다. SPL-token CLI도 이를 보고하며, 원시 계정 데이터를 표시하는 지갑에서도 같은 필드를 확인할 수 있습니다.
동결된 토큰 계정의 위임을 철회할 수 없는 이유는 무엇인가요?
동결은 전송뿐 아니라 권한 변경도 차단하므로 SPL Token 프로그램은 동결 계정에 대한 위임 철회를 거부하고 AccountFrozen 오류를 반환합니다. 프로그래머블 NFT와 스테이킹된 자산은 흔히 동결 상태입니다. 위임자를 제거하려면 먼저 계정 동결을 해제해야 합니다. 동결 계정은 소각도 거부하므로 소각으로 우회할 수 없습니다.
위임 철회로 Token-2022 영구 위임자를 제거할 수 있나요?
아니요. 영구 위임자는 토큰 계정이 아니라 민트에 설정되며, 해당 토큰을 보유한 모든 계정에 대한 전송 및 소각 권한을 부여합니다. 이는 토큰 자체의 속성이므로 어떤 위임 철회 명령으로도 제거할 수 없습니다. 해당 위험을 없애는 유일한 방법은 그 토큰을 더 이상 보유하지 않는 것입니다.
