作者|桑幣區識編輯團隊
發布|2026/10/28
更新|2026/10/28
第一次在去中心化交易所交換代幣,錢包可能先跳出「Approve」,之後才讓你確認交換。這兩個步驟分別做了什麼?為什麼離開網站,權限還可能繼續存在?
代幣授權是讓指定地址或合約,依代幣規則動用你部分資產的機制。它可以讓交易、借貸等應用運作,但授權的對象、額度與有效條件,都需要看清楚。
本文以 Ethereum 與 EVM 網路常見的 ERC-20 模式為主,介紹如何授權、查詢與撤銷,也會說明 Permit、Permit2 及 NFT 權限的差異。其他網路或新型帳戶的權限設計,不能直接套用全部細節。
代幣授權是什麼?
在常見 ERC-20 模式中,持有人可以呼叫代幣合約的 approve,為某個 spender 設定可使用額度;spender 再依規則透過 transferFrom 轉移代幣。
這裡的 spender 是獲准動用資產的地址,常見為應用使用的合約。實際權限記錄在代幣合約中,不是只存在網站的登入狀態。
因此,授權前至少要確認:在哪條網路、哪個代幣合約、自己的哪個帳戶、哪個 spender,以及多少額度。
延伸閱讀:智能合約是什麼。
Approve、Allowance、Spender 與 Revoke 有何不同?
| 名稱 | 意思 | 使用時怎麼看 |
|---|---|---|
| Approve | 設定授權額度的操作 | 同意讓哪個地址使用哪個代幣 |
| Allowance | 目前允許使用的額度 | 不是餘額,也不等於已經花費 |
| Spender | 被授權動用資產的地址 | 核對合約地址,不能只看顯示名稱 |
| transferFrom | 依代幣規則代為轉移 | 常見於交換或存入應用的流程 |
| Revoke | 撤銷既有權限的通稱 | ERC-20 常見做法為把額度設為 0 |
授權不是把私鑰交給對方。它是在特定合約規則下給予權限;對方可能不必再請你簽署新的交易,就能在有效權限內動用資產。
連接錢包、授權、簽名與轉帳有什麼不同?
| 操作 | 主要效果 | 是否等於轉出代幣 |
|---|---|---|
| 連接錢包 | 讓應用取得你同意提供的帳戶資訊與請求操作的管道 | 單純連線不是代幣轉出 |
| ERC-20 Approve | 設定 spender 的額度 | 一般不是當下交換,但會建立使用權限 |
| 訊息簽名 | 產生對某份資料的簽章 | 可能只是登入,也可能承載資產權限 |
| 轉帳/交換 | 執行實際資產移動或應用操作 | 依交易內容決定 |
「簽名不用付 Gas」不等於沒有資產效果。安全判斷要看簽了什麼,而不是只看錢包按鈕寫 Sign、Approve 還是 Confirm。
為什麼 Swap 常需要先授權?
假設你要透過某個交易合約,用 100 USDC 換成另一種代幣。合約需要依你的付款指示取用 USDC,才能完成交換。
常見流程分成:
- 連接正確帳戶與網路。
- 為應用需要的 spender 設定 USDC 額度。
- 等待授權生效,再確認實際交換。
- 查看交換結果與剩餘授權。
若既有額度已足夠,或應用採用其他簽署與交易組合,畫面不一定每次出現兩筆獨立交易。
授權成功也不保證交換成功;交換仍可能因報價、滑價、期限或其他條件失敗。此時原本授權可能仍有效。
延伸閱讀:DEX 去中心化交易所教學、USDC 完整介紹。
指定額度與無限授權怎麼選?
假設你有 1,000 枚某代幣,這次只需要使用 100 枚。
| 設定 | 大致效果 | 取捨 |
|---|---|---|
| 授權 100 枚 | 額度配合當次需求 | 日後使用可能需重新授權 |
| 授權 500 枚 | 留有後續操作空間 | 有效可用額度較高 |
| 無限/極大額度 | 通常設定遠高於餘額的數值 | 減少重複設定,但擴大持續權限 |
一般標準額度會在 transferFrom 花費後扣減,但部分代幣實作對最大額度有不同處理,不能假設每次使用後都會自動歸零。
若極大額度長期有效,未來再轉入同一帳戶的同種代幣,也可能在權限範圍內。這不代表授權一種代幣就能直接控制所有其他資產;範圍需依實際合約與其他權限判斷。
設定較小額度能限制部分曝險,但無法把惡意合約變成安全合約。首先仍要確認對象與操作合理。
Permit 是什麼?不付 Gas 的簽名也能授權嗎?
ERC-2612 定義的 permit,允許持有人透過簽署結構化資料,讓有效簽章被提交至代幣合約,以修改 allowance。它和直接由持有人送出 approve 交易的流程不同。
簽署者可能不在簽名當下支付 Gas,但資料之後仍可由他人提交上鏈。因此,簽名畫面需要核對 owner、spender、value、網路與合約,以及 nonce、deadline 等相關資訊。
Permit 的提交期限,不一定是授權額度本身的到期時間。以 ERC-2612 而言,deadline 限制的是簽章可被接受的時間;生效後的 allowance 不會只因這個期限經過就自動清零。
並非所有代幣都支援相同 permit 格式。已簽但尚未使用的訊息,也不一定會出現在一般鏈上授權清單中。
Permit2 和 Permit 有什麼不同?
Permit2 是另一套合約與簽名機制,不能直接等同 ERC-2612。使用者通常先透過代幣合約授權 Permit2,再依應用流程簽署相應權限。
Uniswap 官方文件將主要用途分為:
- SignatureTransfer:以一次性簽名支援相應轉移。
- AllowanceTransfer:設定帶有額度與期限的 spender 權限。
這表示可能同時存在「代幣對 Permit2 的底層授權」與「Permit2 內的應用權限」。撤銷時要看自己要關閉哪一層,不能只撤掉一個網站連線就認為全部失效。
同樣地,不能因為 Permit2 是常見基礎設施,就不核對實際簽署的 spender、額度與條件。
NFT 的 Approve 與 SetApprovalForAll 一樣嗎?
不一樣。以 ERC-721 為例,approve 可針對單一 NFT 設定授權;setApprovalForAll 則是對該 NFT 合約中、由你持有的資產設定 operator 權限。
這種「全部」通常指特定收藏合約的資產,不是整個錢包所有代幣。撤銷操作也與 ERC-20 數量額度不同,不能直接套用相同畫面。
本文後續流程以一般 ERC-20 為例。若查到的是 NFT 或帳戶委派等權限,應依相應工具與官方說明核對。
如何查詢代幣授權?
可以使用錢包提供的權限頁面、對應網路的區塊瀏覽器 approval checker,或 Revoke.cash 等工具。
查詢一般可用公開地址進行,不需要輸入助記詞或私鑰。是否需要連接錢包,取決於工具與接下來要做的操作。
建議依序核對:
- 所在網路與持有資產的帳戶。
- 代幣合約與名稱是否對應真正資產。
- spender 地址與你曾使用的應用是否一致。
- 目前額度,而不只看過去的授權交易。
- 是否涉及 Permit2、NFT 或其他不同權限類型。
同一個地址在不同網路的授權,不能當作同一筆權限。清單沒有顯示某項目,也不代表所有未使用簽章或帳戶層權限都不存在。
如何撤銷授權?六步操作教學
步驟一:自行開啟可信工具
從已確認的官方入口進入,不透過陌生訊息裡的緊急撤銷連結。確認網址與所在網路。
步驟二:選擇正確帳戶與權限
先查清楚 token、spender 與額度。優先處理確定不再使用、無法辨識或相關應用已發生問題的權限;不必為了清理畫面而與陌生垃圾代幣互動。
步驟三:選擇撤銷或調整額度
一般 ERC-20 撤銷通常把 allowance 設為 0。若只是調整到較小額度,依代幣與工具流程處理;部分代幣可能要求先歸零,再設定新值。
步驟四:核對錢包提出的操作
確認是預期網路、代幣合約與 spender,並且額度降低或歸零。若工具要求把資產轉給陌生地址,或提高不相關的權限,先停止。
步驟五:支付所需網路費並等待生效
一般鏈上撤銷需要交易費;工具本身也可能有批次或付費功能,實際以當時報價為準。未上鏈、失敗或尚未生效的操作,不能當作撤銷完成。
步驟六:重新查詢狀態
確認對應額度已降低或歸零。日後再次使用同一服務,可能需要重新授權。
上述為依官方文件整理的通用流程,未替讀者實際連接錢包、簽名或操作資產。
來源:MetaMask 撤銷授權說明、Uniswap 撤銷指引。
斷開連線、刪掉 App 或餘額歸零,授權會失效嗎?
一般不會因此自動失效。網站連線與鏈上 allowance 是不同狀態,關閉頁面、刪除瀏覽器擴充或斷開連線,不會直接修改代幣合約記錄。
餘額歸零也不表示額度已撤銷。若之後轉入相同代幣,既有權限仍可能影響這些資產。
相反地,撤掉某個 spender 的特定代幣額度,也不等於已關閉所有其他 spender、其他網路或 NFT 權限。
撤銷授權能追回被盜資產嗎?
不能把撤銷當成退款。它主要是限制未來透過相關權限發生的資產移動,不會自動追回先前已轉出的資產,也無法保證搶在惡意花費前確認。
若只是曾對可疑 spender 授權,可核對並撤掉對應權限;若私鑰或助記詞已外洩,攻擊者可能自行簽署新的操作,單靠撤銷就不足以恢復控制安全。
兩種情況的處理不同,應保留交易資料,透過可信官方管道確認,不再把備份交給所謂追回服務。
與這種授權問題不同,地址投毒主要誘導複製錯誤收款資訊,不能只撤銷代幣額度就解決所有誤轉問題。
代幣授權常見問題 FAQ
Approve 就是已經換幣了嗎?
一般不是。它通常先設定使用額度,交換或存入是後續操作,也可能依應用設計合併流程。
斷開錢包連線會撤銷授權嗎?
不會自動撤銷既有鏈上額度,需另外處理相應權限。
無限授權會把所有幣都授權出去嗎?
一般 ERC-20 額度針對特定網路、代幣、持有人與 spender;不是自動涵蓋所有資產。但其他權限可能另外存在。
授權過的代幣餘額歸零,還需要檢查嗎?
需要依後續用途評估。餘額為零不表示額度歸零,之後存入相同代幣仍可能受到既有權限影響。
不用付 Gas 的簽名一定安全嗎?
不是。Permit 等簽名可能承載資產使用權限,之後由其他人提交上鏈。
Permit 的 deadline 到期後,授權一定消失嗎?
不一定。ERC-2612 的 deadline 是簽章提交期限,不能直接當成已生效 allowance 的到期日。
撤銷授權需要費用嗎?
一般鏈上操作需要網路費,批次或付費工具還可能有服務費。查詢與真正提交撤銷應分開看。
撤銷一次就能保護整個錢包嗎?
不能。需要分網路、代幣與 spender 核對;私鑰外洩、未使用簽章與其他帳戶權限,也不是單筆撤銷就能全面處理。
資料來源
- ERC-20:Token Standard
- ERC-2612:Permit Extension
- Uniswap:Permit2 Overview
- ERC-721:NFT 授權介面
- MetaMask:撤銷智能合約額度
- Revoke.cash:FAQ
- Uniswap:How to revoke a token approval
*本文由桑幣區識編輯團隊依據官方資料及公開資訊整理,內容僅供資訊與教育用途,不構成投資建議。