鏈圖NETWORK ATLAS
註冊 OKX

Approve 授權是什麼?惡意授權怎麼檢視和撤銷

先說結論

approve 是你允許某個合約動用你錢包裡某種代幣的授權,簽過之後一直有效,直到你撤銷。釣魚網站常騙你籤這類授權或 Permit 簽名。檢視和撤銷可以用 Revoke.cash 或區塊瀏覽器的授權頁,撤銷本身是一筆鏈上交易,要付 Gas。

你在去中心化交易所裡換一次幣,錢包通常會先彈出一個「授權」,再彈出一個「兌換」。很多人點完就忘了第一個彈窗,可它留在鏈上的效果比第二個更久。如果你只在歐易(OKX)這樣的交易所帳戶裡交易,不會遇到這件事;一旦開始用自己的錢包連線去中心化應用,就繞不開它。

approve 授權到底授權了什麼?

以太坊上的 ERC-20 代幣標準裡有一個 approve(spender, amount) 函式:你告訴代幣合約,允許 spender 這個地址從你的地址裡最多花掉 amount 數量的這種代幣。之後對方呼叫 transferFrom 就能直接轉走,不需要你再確認。Revoke.cash 的解釋是,代幣合約裡有一張記錄表,記著誰被你授權了、授權多少,每次有人要花你的幣,合約先查這張表。

幾個性質直接決定風險:

  • 授權針對的是一種代幣、一個網路上的一個地址。給 A 合約授權 USDT,不影響你的 USDC,也不影響你在別的鏈上的資產;同名的 USDT 在不同鏈上是不同的合約,授權也是各鏈各記各的,穩定幣的這種分佈方式見 穩定幣是什麼,USDT 和 USDC 有什麼區別。
  • 普通的 approve 授權不會自動失效,要你自己撤銷。Revoke.cash 的頁面寫到,被授權的合約可以隨時花這些代幣,合約一旦被攻破或本來就是惡意的,代幣就可能被偷;它舉的例子是 2023 年 4 月的 SushiSwap 事件,說明老牌專案也會出事。
  • 授權的數量由你簽名時的數值決定,很多應用為了省你下一次的 Gas 會預設請求「無限額度」。Ethereum.org 的安全頁建議:與合約互動時不要允許無限額度,只授權這次需要的數量。
  • 斷開錢包連線不等於撤銷授權。OKX Learn 的 DEX 文章明確說,斷開連線只是結束當前頁面的互動,不會撤銷已經寫在鏈上的授權。

NFT 的情況略有不同:approve 針對某一枚 NFT,setApprovalForAll 則是授權對方轉走你在這個合集裡的全部 NFT,多數 NFT 市場用的是後者。

錢包裡有 5,000 USDT、只想換 100 USDT,授權多少合適?

假設你的錢包裡有 5,000 USDT,打算在某個應用裡換 100 USDT。數字是為說明風險敞口而設的假設:

你授權的額度 應用本次用掉 授權剩餘 如果這個合約之後被攻破,最多可能被動用
無限 100 仍是無限 錢包裡全部 5,000 USDT(以及之後你再存進來的)
恰好 100 100 0 0,授權已經用完
500(多給了餘量) 100 400 400

精確授權的代價是下一次再用要重新授權一次,多付一筆 Gas;無限授權省了這筆 Gas,換來的是風險一直掛著。哪種合適,取決於你對這個應用的信任程度和使用頻率。對不常用的小專案、領取頁,精確額度更穩妥。Gas 為什麼每次都要付,見 Gas 費是什麼,為什麼有幣卻轉不出去。

approve、Permit、Permit2 有什麼區別?

形態 怎麼產生 要不要付 Gas 特點
普通 approve 鏈上交易 要 錢包通常有授權警告,帶額度數值
setApprovalForAll(NFT) 鏈上交易 要 一次授權一個合集的所有 NFT
Permit(EIP-2612) 鏈下簽名,由對方提交上鍊後生效 簽名時不要 只有部分代幣支援;簽名本身不會出現在授權列表裡
Permit2 先對 Permit2 合約做一次授權,之後用簽名向其他合約授權 首次要,之後簽名不要 帶過期時間;一次簽名可以涉及多個代幣,更難看懂

Permit 的好處是可以只授權剛好夠用的額度,也不用多付一筆授權的 Gas。壞處是 Revoke.cash 特別指出的:簽名是鏈下的,不少錢包(Revoke.cash 舉了 MetaMask 的例子)對普通授權會彈警告,對 Permit 簽名卻沒有這種警告,看上去像是在「登入網站」,實際上你是在授權。

釣魚網站怎麼利用授權把幣轉走?

Revoke.cash 的「被盜後怎麼辦」文章把常見手法歸成幾類,可以用來對照自己的情況:

  • 直接授權給騙子的合約:釣魚網站讓你批准一個由他控制的合約,然後把幣轉走。
  • 一次簽名清空多個已授權資產:典型是掛單簽名,誘導你籤一份「以 0 ETH 出售」的訂單,或者針對 Permit2 的簽名。文章指出,這類攻擊的特點是「一次性」,籤一次,已經授權過的資產被一次性拿走。
  • 偽裝成「Security Update」「Claim」「Claim Rewards」之類的直接轉帳:這不是授權,是你親手簽了一筆轉帳,授權列表裡看不出來。

判斷你被偷的是哪一種,可以看被盜的範圍:只丟了一種資產,更像授權或直接轉帳;多種資產跨多條鏈、多個地址同時丟,更像助記詞洩露,這就不是撤銷授權能解決的了,見 助記詞保管與洩露應對。授權請求往往來自仿冒頁面,頁面真假的判斷見 搜到的歐易官網是真的嗎,釣魚網站怎麼識別。

OKX 的反詐文章還提醒過一點:陌生的代幣或轉帳記錄出現在你的錢包裡,本身不會讓資產受損,風險在於它引導你去批准合約或點連結。對這類記錄不要點連結、不要兌換、不要批准。

簽名前怎麼判斷這個授權該不該籤?

彈窗出現時,把這幾項逐個過一遍,任何一項答不上來就先不籤:

看什麼 正常情況 需要停下的情況
當前網址 是你自己輸入或書籤進入的 來自別人發的連結、搜尋廣告
被授權地址(spender) 能在專案官方文件裡對上 一串你不認識、查不到來源的地址
代幣和數量 與你這次要做的事匹配 要求「無限」,或代幣與操作無關
彈窗型別 普通授權,有明確警告 頁面叫「登入」「驗證」,實際是簽名授權
事情本身 你主動發起 頁面跳出來說「領取」「安全升級」

怎麼檢視和撤銷錢包裡的授權?

用 Revoke.cash

Revoke.cash 頁面稱其支援 80 多個網路,可以連線錢包,也可以直接輸入地址(或 ENS 名)檢視。步驟:

  1. 開啟 Revoke.cash(自己輸入網址或用確認過的書籤;Revoke.cash 的說明也建議把常用的加密網站存成書籤),連線錢包或輸入你的地址。
  2. 選擇要檢查的網路。授權按鏈分開,一條鏈查一次。
  3. 載入完成後看到該鏈上的授權列表。可以按時間排序,懷疑剛中招就選從新到舊;也可以按被授權地址搜尋。
  4. 在目標授權上點「Revoke」,錢包裡確認。也可以點額度旁邊的鉛筆圖示,把額度改小而不是完全撤銷,適合你還要繼續使用的應用。

用區塊瀏覽器

Etherscan 以及 Polygonscan 等同類瀏覽器也有授權頁。Etherscan 的入口在頂部導覽「More」選單下的 Token Approvals,輸入地址,選擇代幣型別(ERC20、ERC721、ERC1155),記得開啟「顯示所有授權」的開關,然後在目標行點 Revoke。其他鏈用對應的瀏覽器,流程相同。

撤銷的幾點現實

  • 撤銷是把額度設成 0 的一筆鏈上交易,需要用該網路的原生幣付 Gas。錢包裡一點原生幣都沒有,就撤銷不了。
  • 撤銷只能阻止以後的盜取,不能找回已經丟的幣。
  • Permit 簽名在被對方提交上鍊之前,不會出現在授權列表裡,因為 Revoke.cash 這類工具看不到鏈下簽名。Revoke.cash 說,簽名有可能在被啟用前取消,但騙子通常會立刻啟用,幾乎來不及。一旦啟用,就能像普通授權一樣撤銷。
  • Permit2 有兩層:你對 Permit2 合約本身的授權,和 Permit2 替你發給各個應用的子授權。Revoke.cash 建議不用時撤銷前者;後者帶有效期,可以等它過期,期限太長就手動撤銷或改小。
  • 如果你懷疑自己剛在釣魚頁簽過掛單類簽名,先去撤銷對相關合約(比如 Permit2、各 NFT 市場合約)的授權。Revoke.cash 的說明說,這是阻止這類簽名生效的唯一辦法,而且時間視窗很短。
Revoke.cash 首頁,輸入錢包地址就能檢視授權情況,檢視不需要連線錢包
Revoke.cash 首頁,輸入錢包地址就能檢視授權情況,檢視不需要連線錢包。2026 年 11 月 4 日截圖,檢視原頁面 ↗
Revoke.cash 的授權列表,每一行寫著授權了什麼幣、給了誰、額度多少,右側可以撤銷。這裡查詢的是一個公開的交易所錢包地址
Revoke.cash 的授權列表,每一行寫著授權了什麼幣、給了誰、額度多少,右側可以撤銷。這裡查詢的是一個公開的交易所錢包地址。2026 年 11 月 4 日截圖,檢視原頁面 ↗

平時怎麼減少授權帶來的風險?

  • 授權額度按需填寫,別點預設的「無限」。Ethereum.org 提到不少以太坊錢包帶有額度保護功能,授權彈窗裡也留意一下數值欄。
  • 每隔一段時間查一遍授權,把不再用的撤銷,尤其是用完就不再碰的小專案和各類「領取」頁。
  • 大額資產放在不參與 DeFi 的地址裡,這個地址不要產生任何授權。用於互動的地址只放小額。分地址的思路見 託管錢包、自託管錢包、硬體錢包怎麼選。
  • 對要你「簽名登入」「驗證身份」的頁面,先確認網址,再看錢包展示的內容裡被授權地址(spender)和代幣數量是什麼。

授權和撤銷授權時,最容易犯哪些錯?

做法 後果
以為斷開錢包連線就等於撤銷授權 授權仍在鏈上有效,對方合約仍能動用額度內的代幣
總是點預設的「無限」 合約或應用一旦出事,敞口是整個餘額
撤銷時錢包裡沒有原生幣 撤銷交易發不出去,授權繼續有效
看到陌生代幣空投就去「領取」 「領取」頁可能就是授權或直接轉帳的入口
只撤銷了一個地址的授權,卻忘了其他鏈 授權按鏈、按代幣分開,其他鏈上的授權仍在

TRON 錢包轉不出資產,是授權出了問題嗎?

如果你在 TRON 錢包裡發現轉不出資產,不一定是授權問題。OKX 的幫助文章描述了另一種騙局:騙子誘導你簽署一筆修改帳戶許可權的交易,使錢包的控制權被轉移,資產看得見卻動不了。這屬於帳戶許可權(多籤)被改,不是代幣授權,和代幣授權是兩回事,處理辦法見 OKX 幫助中心對應文章。如果你打算用歐易自家的鏈上錢包,功能和風險邊界見 歐易 Web3 錢包是什麼,怎麼用。

這篇文章參考了哪些資料

以下資料查閱於 2026 年 11 月 4 日。平台規則可能因地區、帳戶和時間變化。

下一站助記詞和私鑰怎麼保管?洩露後要立刻做什麼

你可能還想了解

怎麼識別釣魚網站?搜到的歐易官網是真的嗎從域名讀法、連結來源、頁面索取的內容三個角度,識別仿冒歐易(OKX)和錢包的釣魚頁面,並說明誤入之後該做什麼。約 9 分鐘
託管錢包、自託管錢包、硬體錢包怎麼選對比託管錢包、自託管熱錢包和硬體錢包在控制權、恢復方式和主要風險上的差別,並按資產規模和用途給出分層的選擇思路。約 9 分鐘
收到歐易客服電話說帳戶異常是真的嗎?整理假冒平台客服的常見話術,對照歐易(OKX)官方說明,列出官方客服不會做的事,以及怎樣用官方管道驗證對方身份。約 9 分鐘