要點速覽
- 代幣授權允許某個合約動用你錢包裡的指定代幣,授權會長期有效,直到你主動取消或額度用完。
- 無限授權最省事也最危險,被授權的合約一旦出問題,可以轉走你該代幣的全部餘額。
- Permit 簽名不花 Gas 卻能產生授權效果,是目前常見的釣魚手法之一,看不懂的簽名請求應當拒絕。
- 可以用 Revoke.cash 或區塊瀏覽器的授權查詢工具檢查授權,取消授權是一筆鏈上交易,需要支付 Gas。
- 取消授權只能防止後續損失,不能追回已被轉走的資產;錢包助記詞洩露時,取消授權沒有用,必須換新錢包。
本文包含交易所邀請連結,通過連結註冊本站可能獲得返佣,不影響你的費用。內容僅供學習參考,不構成投資建議。合作說明
很多人在錢包被盜後都會困惑:我沒有洩露助記詞,也沒有主動轉賬,幣怎麼就沒了?在相當多的情況下,原因是代幣授權:你曾經在某個網站上點過「授權」或「簽名」,允許一個合約動用你的代幣,而這個合約後來出了問題,或者從一開始就是釣魚合約。
這篇文章講清楚代幣授權的原理、無限授權和 Permit 簽名的風險,並一步步教你用 Revoke.cash 等工具檢查和取消授權。適合已經在使用 MetaMask、歐易 Web3 錢包等自託管錢包,或者準備開始使用 DeFi、NFT 的讀者。如果你還不熟悉錢包,可以先讀 MetaMask 使用教程 和 加密錢包型別介紹。
代幣授權(approve)是什麼?
在以太坊和相容鏈上,USDT、USDC 這類代幣遵循 ERC-20 等代幣標準。按照 ERC-20 標準,代幣合約裡有兩個關鍵功能:
- approve(授權):你告訴代幣合約「允許地址 X 最多動用我 N 個代幣」;
- transferFrom(代轉):被授權的地址 X 可以在額度內,把你的代幣轉到任何地方。
為什麼需要這種機制?因為智慧合約不能直接從你的錢包「拿」代幣。比如你在去中心化交易所把 USDT 兌換成 ETH,交易所的合約需要先獲得你的授權,才能把你的 USDT 轉進它的資金池。
所以,第一次在某個 DApp 使用某種代幣時,錢包通常會彈出兩步:先授權,再執行操作。授權這一步本身也是一筆鏈上交易,需要支付 Gas。
授權和轉賬有什麼區別?
很多新手分不清這兩種彈窗,下面這張表可以對照:
| 對比項 | 轉賬(transfer) | 授權(approve) |
|---|---|---|
| 效果 | 代幣立刻從你的地址轉到對方地址 | 代幣還在你的地址,但對方獲得動用許可權 |
| 持續時間 | 一次性完成 | 長期有效,直到取消或額度用完 |
| 風險 | 轉錯了就沒了 | 授權物件出問題時,可能在未來任意時間被轉走 |
| 是否花 Gas | 是 | 是(鏈上授權);Permit 簽名除外 |
| 錢包提示 | 通常顯示轉賬金額和接收地址 | 通常顯示「允許訪問你的某代幣」和額度 |
關鍵在於:授權給出去之後,你的幣看上去還在錢包裡,風險卻已經存在了。這也是授權問題容易被忽視的原因。
無限授權是什麼?為什麼很多 DApp 預設無限授權?
授權時可以設定額度。很多 DApp 預設請求一個極大的額度,也就是常說的無限授權。這樣做的好處是,你以後再用這個 DApp 時不需要每次都重新授權,節省了 Gas 和操作步驟。
但代價也很明顯:
- 被授權的合約可以動用你錢包裡這種代幣的全部餘額,包括以後新轉入的部分;
- 如果這個合約有漏洞被駭客利用,或者專案方的管理許可權被盜,你的代幣可能被轉走;
- 如果這個「DApp」本身就是釣魚網站,無限授權就等於把鑰匙交給了騙子。
有限授權怎麼設定?
多數錢包在彈出授權請求時,允許你修改授權額度。以 MetaMask 為例,授權彈窗中通常可以編輯「支出上限」,你可以改成這次實際要用的金額。
- 好處:即使合約以後出問題,損失也只限於你授權的額度;
- 代價:下次再用時需要重新授權,多付一次 Gas。
對於不常用或剛上線的 DApp,建議只授權本次需要的數額;對於長期頻繁使用、你信任的協議,可以根據自己的情況權衡,但要定期檢查。
Permit 簽名是什麼?為什麼不花 Gas 也能盜幣?
除了鏈上授權,還有一種更隱蔽的授權方式:Permit 簽名。
EIP-2612 定義了一種讓使用者通過鏈下簽名完成授權的方法:你在錢包裡籤一條訊息,訊息裡寫明瞭被授權的地址和額度,之後任何人拿著這個簽名提交給代幣合約的 permit() 函式,就能讓授權生效。
這個設計本來是為了改善體驗,讓使用者少付一次 Gas。但它也被釣魚者大量利用,原因是:
- 簽名不花 Gas:你籤的時候錢包不會顯示手續費,很多人覺得「不花錢就沒事」;
- 警告不明顯:根據 Revoke.cash 的說明,因為不是鏈上授權交易,錢包往往不會像鏈上授權那樣給出警告,網站可以把它包裝成一次普通的「登入簽名」;
- 鏈下不可見:簽名在提交上鍊之前不會出現在任何區塊瀏覽器裡,授權檢查工具也無法看到你簽過哪些 Permit;
- 騙子會很快使用:拿到簽名後,騙子通常會馬上提交上鍊並轉走代幣,留給你反應的時間極短。
需要說明的是,並不是所有代幣都支援 EIP-2612 Permit,但有不少主流代幣支援,所以不能心存僥倖。
Permit2 又是什麼?和普通授權有什麼關係?
你可能還會在錢包裡看到「Permit2」字樣。它是 Uniswap 推出的一套授權管理合約,被不少 DApp 採用。根據 Uniswap 開發者文件,它的工作方式是:
- 你先對某個代幣授權一次給 Permit2 合約(常見做法是無限授權);
- 之後具體的 DApp 想動用你的代幣時,通過簽名向 Permit2 申請許可權,可以是帶有效期和額度的長期授權,也可以是隻用一次的單筆授權。
這套機制讓授權管理更細緻,但對普通使用者來說意味著:一個看似普通的簽名,也可能是在授權代幣。如果釣魚網站誘導你簽了一條 Permit2 簽名,對方同樣可以轉走你已經授權給 Permit2 的代幣。
哪些簽名請求必須拒絕?
錢包彈窗是你最後一道防線。遇到下面這些情況,應當直接拒絕:
| 彈窗特徵 | 風險 | 建議 |
|---|---|---|
| 「領取空投」「驗證錢包」頁面要求授權或簽名 | 典型釣魚 | 拒絕,關閉頁面 |
簽名內容出現 Permit、spender、value、deadline 等英文項 | 簽名即授權 | 看不懂就拒絕 |
| 授權物件是你不認識的地址 | 可能是釣魚合約 | 拒絕 |
| 要求授權你並不打算使用的代幣 | 目的可疑 | 拒絕 |
| 「設定所有 NFT 的批准」(setApprovalForAll) | 對方可轉走整個 NFT 系列 | 除非你確定在用正規市場掛單,否則拒絕 |
| 一串看不懂的十六進位制資料,錢包無法解析 | 內容未知 | 拒絕 |
| 網站催促你「限時」「馬上籤」 | 製造緊迫感 | 拒絕,冷靜核實 |
一個實用的習慣:只在你主動開啟、確認過域名的 DApp 上簽名。通過群聊、私信、社交媒體評論裡的連結開啟的網站,一律不籤。識別釣魚網站的方法可以參考 釣魚網站識別指南。
怎麼檢查自己的錢包給過哪些授權?
定期檢查授權是保護自託管錢包的基本功。常用的方法有兩類:

Revoke.cash 對代幣授權原理的說明(截圖於 2026-10-28)
- 授權管理工具:例如 Revoke.cash。根據其官方說明,它支援主流錢包和 80 多個網路;
- 區塊瀏覽器的授權查詢功能:例如以太坊的 Etherscan 提供代幣授權檢查頁面,其他鏈的區塊瀏覽器也有類似功能。
這兩類工具都可以只輸入地址檢視授權情況,不連線錢包也能查。只有在你要取消授權時,才需要連線錢包並簽署交易。
檢查時重點看四項:
- 代幣:授權的是哪種代幣,你錢包裡還有沒有餘額;
- 授權物件(Spender):被授權的是哪個合約,工具通常會標出知名協議的名稱;
- 額度:是無限還是具體數額;
- 時間:什麼時候授權的。如果你被盜了,按時間從新到舊排序,最可疑的授權往往是最近的。
怎麼用 Revoke.cash 取消代幣授權?完整步驟
下面以 Revoke.cash 為例。網站介面偶爾會改版,按鈕位置和文字可能略有差別,以網站當前顯示為準。
第一步:確認你開啟的是官方網站
先確認位址列裡的域名是 revoke.cash。釣魚者同樣會仿冒授權管理工具,誘導你在假的「取消授權」網站上簽名。更保險的是每次手動輸入網址,並儲存為書籤。
第二步:輸入地址或連線錢包
在搜尋框輸入你的錢包地址(或 ENS 名稱),也可以直接點選連線錢包。如果只是檢視,輸入地址就夠了。
第三步:選擇網路
選擇你要檢查的鏈,例如以太坊、BNB 智慧鏈、Arbitrum、Polygon 等。每條鏈上的授權是分開的,你在以太坊上取消了授權,不會影響在 BNB 智慧鏈上的授權,需要逐條鏈檢查。
第四步:篩選和排序
列表會顯示該地址在這條鏈上所有仍然有效的授權。可以:
- 按時間排序,找最近的可疑授權;
- 按代幣或授權物件地址搜尋;
- 重點關注無限額度、不認識的授權物件和很久不用的 DApp。
第五步:取消或調低授權
找到要處理的授權後,點選「Revoke(撤銷)」。Revoke.cash 也允許你點選編輯圖示,把授權額度調低而不是完全取消,適合以後還要繼續使用的協議。
第六步:在錢包裡確認交易
點選撤銷後,錢包會彈出一筆交易請求。確認以下幾點再籤:
- 交易物件是代幣合約,操作是把授權額度設為零(或你設定的更低額度);
- 網路和你選擇的鏈一致;
- 顯示的 Gas 費用在你的預期範圍內。
確認後等待交易上鍊。成功後重新整理頁面,這條授權就會從列表中消失。
取消授權為什麼要付 Gas?大概要多少?
取消授權本質上是呼叫代幣合約,把對某個地址的授權額度改成零,這是一筆改變鏈上狀態的交易,所以和普通轉賬一樣,需要用該鏈的原生幣支付 Gas:
| 鏈 | 支付 Gas 的幣 | 費用特點 |
|---|---|---|
| 以太坊主網 | ETH | 通常較高,隨網路擁堵波動 |
| Arbitrum、Optimism、Base 等二層網路 | ETH | 通常明顯低於主網 |
| BNB 智慧鏈 | BNB | 通常較低 |
| Polygon | POL | 通常較低 |
付 Gas 時留意三件事:
- 錢包裡要留一點原生幣:如果你的以太坊錢包裡只有 USDT 沒有 ETH,就無法取消授權;
- 以太坊主網可以挑時機:如果不是緊急情況,可以在網路不擁堵時操作,以節省 Gas;
- 被盜或疑似被盜時不要等:此時省下的 Gas 遠不如資產安全重要,應當立即取消。
Gas 的計算方法可以參考 Gas 費詳解。
取消授權之後,還需要做什麼?
取消授權能堵住一個漏洞,但不是全部。根據你的情況,還要考慮:
- 餘額已經很少的錢包:如果某個代幣餘額已經為零,授權暫時不會造成損失,但你以後再轉入這種代幣時風險就會重新出現,所以仍建議取消;
- NFT 的授權:NFT 的
setApprovalForAll授權同樣會顯示在授權管理工具裡,要一併檢查; - Permit 簽名:已經簽出但還沒被提交上鍊的 Permit 簽名,工具看不到。理論上可以通過讓簽名失效的方式取消,但按 Revoke.cash 的說法,這在實際中通常很難趕在騙子之前完成。如果你懷疑簽過惡意 Permit,最穩妥的做法是把相關代幣轉到一個新地址;
- 一個錢包多個帳戶:MetaMask 等錢包可以有多個帳戶,每個地址的授權都要分別檢查。
授權被盜和助記詞洩露怎麼區分?
兩種情況的處理方式完全不同,先判斷清楚:
| 現象 | 更可能的原因 | 處理方式 |
|---|---|---|
| 只有某一種或幾種代幣被轉走,原生幣(如 ETH)還在 | 代幣授權被利用 | 立即取消相關授權,轉移剩餘代幣 |
交易記錄顯示是某個合約呼叫 transferFrom 把幣轉走 | 代幣授權被利用 | 同上 |
| 原生幣也被轉走,或交易是從你的地址直接發出的 | 私鑰或助記詞洩露 | 取消授權沒有用,立即換新錢包 |
| 多條鏈、多個幣同時被清空 | 很可能是助記詞洩露 | 立即換新錢包,檢查裝置安全 |
判斷方法是在區塊瀏覽器裡開啟被盜的那筆交易,看「From」和交易呼叫者:如果交易是由別的地址發起、呼叫合約的 transferFrom 把你的代幣轉走,屬於授權問題;如果交易就是從你的地址簽名發出的,說明對方已經掌握了你的私鑰。
如果是助記詞洩露,請按 助記詞備份指南 重新生成一個安全的新錢包,把剩餘資產儘快轉過去,舊錢包不要再使用。
被授權釣魚盜幣後怎麼辦?
如果確認是授權被利用,按這個順序處理:
- 立即取消相關授權:用 Revoke.cash 或區塊瀏覽器找到對應授權,馬上撤銷;
- 轉移剩餘的同種代幣:如果你錢包裡還有這種代幣,在取消授權確認之前,可以先轉到另一個安全地址;
- 檢查其他鏈:同一個地址在其他鏈上可能也給過類似授權;
- 儲存證據:釣魚網站地址、被盜交易的 TxID、時間、金額、聊天記錄;
- 如果資產流向了交易所:聯絡該交易所的官方客服說明情況,平台是否能協助取決於其政策和執法要求;
- 向當地警方報案,並警惕主動聯絡你、聲稱可以「追回資金」的人,這類人幾乎都是騙子,詳見 常見加密貨幣騙局識別。
用交易所的 Web3 錢包,也會有授權風險嗎?
會。無論是 MetaMask、歐易 Web3 錢包,還是其他自託管錢包,只要你在鏈上使用 DApp,授權機制都是一樣的。錢包只是幫你簽名和傳送交易的工具,授權記錄在區塊鏈上的代幣合約裡,與你用哪個錢包無關。
不同的是,部分錢包內建了授權管理或風險提示功能,可以在錢包裡直接檢視和取消授權,使用方法見 歐易 Web3 錢包教程。但這些功能只是輔助,最終是否簽名仍然要你自己判斷。
相比之下,交易所帳戶裡的資產不涉及代幣授權問題,因為它們由交易所託管,你不需要對任何合約授權。這也是很多人把暫時不用於鏈上操作的資產留在交易所、或者分成「日常錢包」和「儲存錢包」的原因之一。
怎麼養成安全的授權習慣?
下面這些習慣可以大幅降低授權風險:
- 分錢包使用:準備一個只放少量資金的「互動錢包」專門用來連線 DApp,大額資產放在不連線任何 DApp 的錢包裡,或者使用 硬體錢包;
- 只授權需要的額度:不常用的 DApp 儘量只授權本次用量;
- 用完就撤:一次性使用的 DApp,用完後順手取消授權;
- 定期檢查:例如每月檢查一次所有常用鏈上的授權;
- 看不懂不籤:錢包無法解析的簽名、出現 Permit 字樣的簽名,沒有十足把握一律拒絕;
- 只從可信入口進入 DApp:不點選群聊、私信、空投通知裡的連結。
波場 TRC20 代幣也有授權問題嗎?
有。波場的 TRC-20 代幣標準同樣包含授權和代轉功能,原理和以太坊的 ERC-20 一致:你在波場上的 DApp 裡點過授權,對應的合約就獲得了動用你 TRC20 USDT 等代幣的許可權。釣魚者同樣會針對波場上的 USDT 下手,可能的形式包括假冒的「理財」「挖礦」「領取獎勵」頁面,誘導你在錢包裡確認一筆授權交易。
檢查波場上的授權,可以使用波場區塊瀏覽器或你所用錢包提供的授權管理功能,檢視方式和以太坊類似:找到代幣、授權物件和額度,對不認識或不再使用的授權執行取消。取消授權同樣是一筆鏈上交易,需要消耗能量和頻寬,資源不足時會燃燒 TRX,所以錢包裡要留一些 TRX。波場費用的計算方法見 Gas 費詳解。
檢查和取消授權時,新手最容易犯哪些錯?
- 只查了一條鏈:授權是按鏈分開記錄的,以太坊上乾淨不代表 BNB 智慧鏈、Arbitrum、波場上也乾淨;
- 在假的授權管理網站上操作:搜尋「取消授權」時遇到的仿冒網站,會把「撤銷」按鈕做成新的授權請求,簽名前一定要看清錢包彈窗裡的操作和物件;
- 錢包裡沒有原生幣:想取消授權卻發現沒有 ETH 或 BNB 支付 Gas,緊急時只能先從交易所提一點過來,耽誤時間;
- 以為取消授權能追回資產:取消授權只能阻止未來的轉移,已經被轉走的資產不會回來;
- 把助記詞洩露當成授權問題處理:如果是私鑰洩露,取消授權毫無作用,反而浪費了轉移資產的寶貴時間;
- 把正在使用的協議授權也一併取消:取消後再使用需要重新授權,不會造成資產損失,但要多付一次 Gas,可以先確認自己還在用哪些協議。
怎麼防止代幣授權被盜?記住這三點
- 授權會一直有效:在你取消之前,被授權的合約可以隨時在額度內動用你的代幣,無限授權意味著全部餘額;
- 簽名也可能是授權:Permit 和 Permit2 簽名不花 Gas,卻能產生授權效果,看不懂的簽名一律拒絕;
- 定期檢查、及時取消:用 Revoke.cash 或區塊瀏覽器檢查授權,取消授權是鏈上交易,需要準備少量原生幣支付 Gas。
如果你剛開始使用自託管錢包,可以接著讀 MetaMask 使用教程 和 Gas 費詳解;需要把交易所的資產轉到錢包時,可以參考 提幣到錢包教程。不熟悉的術語可以查 術語表。
常見問題
代幣授權(approve)是什麼意思?
授權是你允許某個智慧合約在一定額度內動用你錢包裡的某種代幣,比如在去中心化交易所兌換前,需要先授權它使用你的 USDT。授權一旦給出會一直有效,直到你主動取消或額度用完。
無限授權有什麼風險?
無限授權意味著被授權的合約可以隨時轉走你錢包裡這種代幣的全部餘額。如果這個合約有漏洞、被攻擊,或者本身就是釣魚合約,你的代幣可能在你不知情的情況下被轉走。
取消授權要手續費嗎?
要。取消授權本質上是一筆把授權額度改為零的鏈上交易,需要用該鏈的原生幣支付 Gas,例如以太坊用 ETH、BNB 智慧鏈用 BNB。
Permit 簽名為什麼危險?
Permit 是鏈下簽名,籤的時候不花 Gas,錢包也常常不會像鏈上授權那樣給出明顯警告,看起來像是普通登入簽名。騙子拿到簽名後可以自己提交上鍊,立刻獲得你代幣的授權並轉走。
取消授權能把被盜的幣找回來嗎?
不能。取消授權只能阻止對方以後繼續動用你的代幣,已經轉走的資產無法通過取消授權找回,但仍應儘快取消,防止剩餘資產和以後轉入的資產被盜。
還沒有帳戶?在幣安或歐易註冊
參考資料
讀完這篇,還可以看看
風險提示:加密資產價格波動劇烈,合約與槓桿交易可能導致本金全部損失。請遵守所在國家或地區的法律法規,只投入能承受損失的資金。閱讀完整風險提示