深度解析

為什麼需要代幣授權?

進階 · 閱讀約需 5 分鐘
Why Token Approvals Exist

之所以需要代幣授權,是為了讓某個智慧合約,之後能在你設定的額度內,從錢包花費某一種代幣——常見代幣規則本來就不允許「隨便拉」。 合約不能直接拿走代幣。

重點摘要

  • 代幣授權之所以存在,是因為常見代幣規則不允許合約任意拉走你的餘額——必須先給指定花費者一筆授權額度。
  • 在以錢包為先的 DEX/dApp 路徑上,授權是權限層。兌換或入金,通常是另一次確認。
  • 授權額度一般是按代幣、按花費者分開的。授一次,不等於覆蓋所有代幣、所有合約。
  • 無限額度授權為的是方便(少彈窗、少付手續費)。若該花費者後來出問題,長期掛著的風險也會更大。
  • 剩餘額度是鏈上狀態。關掉網站、斷開錢包,都不會自動清掉。
  • 較新的 Permit/Permit2 類流程,仍然在授予花費權——往往只是更省事,不是可以不讀。

一句話結論

之所以需要代幣授權,是為了讓某個智慧合約,之後能在你設定的額度內,從錢包花費某一種代幣——常見代幣規則本來就不允許「隨便拉」。

交易者聽得懂的說法:

合約不能直接拿走代幣。 它必須先拿到花費權限。 這份權限寫在鏈上。 它可能比那次成交點擊活得更久。 無限額度、剩餘額度、撤銷,以及 Permit 式捷徑,都由此而來。

「授權是什麼」的詞條定義,見 什麼是代幣授權?。

本頁只講清一條判斷:授權不是多餘的摩擦,而是花費權如何被委託出去。

真正該問的交易問題

你打開以錢包為先的兌換。報價看起來沒問題。點下去——錢包卻先跳出 Approve/授權,成交過不去。

先把問題拆開:

這只是多餘的彈窗, 還是場所在按代幣規則索取花費權?

兩種理解不一樣。

當成多餘彈窗,你容易一路點確認。

當成設計要求,你會在簽章前讀清:哪一種代幣/哪一個花費者/額度多少。

實盤場景:不授權,兌換過不去

你持有 USDC,想在以錢包為先的 DEX 上兌換。

  1. 連接錢包。連接不等於授權。
  2. 輸入規模,看到報價。
  3. 確認卡住:錢包顯示為某個花費合約(常見是路由器)Approve USDC/授權 USDC。
  4. 你簽署授權額度。這通常要付手續費(Gas)。
  5. 第二次確認,才跑兌換。
  6. 成交之後,沒用完的額度,仍可能按「該代幣+該花費者」留在鏈上。

「原來成交前要先給權限。而且權限,成交後還可能留著。」

額度是什麼、提示怎麼讀 → 什麼是代幣授權?。

如何檢視或撤銷剩餘權限 → 需要操作清單時,見管理/撤銷類 User Guide。

設計原因:規則為什麼這樣定

在廣泛使用的 ERC-20 類規則下,餘額不會因為網站喊一聲,就進到任意合約。

典型路徑只有兩步:

  1. 你(持有人)授權某個花費者。
  2. 該花費者再在剩餘額度內,發起類似 `transferFrom` 的呼叫。

沒有這份授權,合約原則上不能把代幣從你的地址掏空。

這是安全預設,也是 DEX 在需要調動你已有代幣時跳出授權的原因。

原生網路幣通常不走同一套 ERC-20 風格的 approve。

NFT 類操作者授權是相關權限:一次點擊可授權合約處理許多資產。

本頁先講現貨 DEX 最常見的同質代幣授權。

為什麼 DEX 要在成交前要授權

場所要兌換、入金,或以其他方式調動你的 ERC-20 餘額時,需要給某個具體花費者花費權。

所以產品通常會:

  • 沒有額度(或上限額度用完)時,先要授權
  • 再讓你確認這筆市場動作

授權給的是權限。

成交是在該權限下花費代幣;沒有權限,就會失敗。

把兩次點擊都當成「繼續」,等於把兩個不同決定揉成一個習慣。

你會反覆碰到的設計後果

按代幣、按花費者

給 路由器 A 授權 USDC,不等於授權 USDT,也不等於授權 路由器 B。

第一次造訪、碰到多種代幣,可能連彈好幾次授權。這是範圍規則在起作用,不是 App 故意多要點擊。

為什麼會有無限額度授權

無限(或最大值)授權很常見:少重複彈窗,也少重複付手續費。

它們也會放大長期掛著的風險:若該花費者現在惡意、有漏洞,或以後被攻破,它可能已有權在不經你再授權的情況下拉走該代幣。

方便與長期曝險,是同一設計的兩面。

為什麼會剩下額度

額度按「持有人–代幣–花費者」記在鏈上。

前端可以消失。「斷開連接」可以成功。這條對應仍可能留著,直到被用完、調低或撤銷。

所以,你早就不用的舊場所,仍可能留在風險清單裡。

為什麼要有撤銷/調低

清理是另一次鏈上寫入。通常要付手續費,也要你簽章。

斷開 ≠ 撤銷。

撤銷/調低有助於擋住以後的拉取。它不能把已經被拿走的代幣變回來。

操作步驟與工具 → 管理/撤銷類 User Guide。費用細節 → 什麼是手續費(Gas)?。

較新的模式:摩擦更少,仍是同一權限族

有些流程用 Permit 式簽章設定額度,不必再單獨發一筆 approve 交易。

有些設計(包括 Permit2 類樞紐)走共用授權合約:先給樞紐一筆持續有效的授權,再為各應用使用帶金額/時限的簽章。

這些模式是為了減輕兩步確認的負擔,有的還能加過期或更細的範圍。

它們並不等於可以不讀。釣魚頁若騙到一筆糟糕的 Permit 式簽章,仍可能像糟糕的經典授權一樣交出花費權。

Permit2 架構深講不在本頁。這裡的判斷只有一句:捷徑仍然在轉移花費權。

為什麼攻擊者也盯上同一套設計

盜幣方喜歡授權和 Permit 式簽章,因為他們可以變現持續有效的花費權限,而不必偷走你的助記詞。

假的「領取」「驗證」「同步」「鑄造」提示,常常要的就是真實 DEX 做兌換時也需要的那層權限。

動機寫在這裡。完整的官方連結與防釣魚說明 → 如何驗證官方連結並避免釣魚。

快速場景對照

場景設計解釋了什麼
不授權,兌換過不去沒有額度,花費者拉不走
選無限「省得再授權」省事 vs 更大的長期風險
成交完了,額度還在鏈上權限 ≠ 網站工作階段
Permit2 類樞紐先授一次樞紐持續權限+之後帶範圍的簽章
假領取要 Approve/Permit攻擊者在複用花費權這一層

不必每次把每一行都過一遍。

下單前先確認:你是不是在授予花費權,以及授給誰。

不要和這些搞混

本頁不是「再定義一次授權」。

它回答的是:為什麼會有這層權限,以及無限額度、剩餘額度、撤銷、Permit 式捷徑為何由此而來。

如果你按以錢包為先交易——包括在 edgeX 這類場所上——把每一次 Approve/授權或 Permit 式提示,都當成在代幣規則下交出持續有效的花費權,而不是裝飾性的勾選。

簽章前讀清:代幣、花費者、額度。

若只需詞條定義,見 什麼是代幣授權?。

準備好下一步了嗎?

從本頁透過官方連結繼續註冊或開始交易。

在 edgeX 開始交易

免責聲明

本內容僅供學習參考,不構成投資建議。交易數位資產及衍生品存在風險,交易前請確保了解相關產品,並結合自身情況審慎決策。