文章
本篇內容
  1. 授權額度屬於誰?先分清四個對象
  2. 連接、簽署、授權與轉帳,有什麼不同?
  3. 用一筆例子看懂:餘額 80,為什麼能授權 100?
  4. 「無限授權」不是無限餘額,也不是安全保證
  5. permit 的到期時間,等於授權額度到期嗎?
  6. 中斷連線、撤銷授權與公開資料,是三件事
  7. 常見問題
  8. 記住:權限、餘額與已完成轉帳要分開看
  9. 瀏覽 HypaForecast 市場

代幣授權是什麼?授權額度、餘額與轉帳的差別

代幣授權,是讓特定地址在一定額度內,代你移動某一種代幣的權限。授權額度(allowance)表示還有多少可用權限,不是已經轉出的數量,也不是錢包餘額。

因此,「連接錢包」「簽署訊息」「設定授權額度」與「轉帳」不能混為一談。看到確認按鈕,先要分清這次請求改變的是什麼;按鈕名稱本身並不足以說明權限。

本文以 ERC-20 代幣與 ERC-2612 permit 為範圍,解釋這些概念,不提供錢包操作或撤銷授權步驟。原生 ETH、SOL、NFT,以及 Permit2 等其他授權機制,不能直接套用同一套說明。

授權額度屬於誰?先分清四個對象

一筆 ERC-20 授權,要放在同一個網路、同一個代幣合約中理解,並分清兩個地址:

  • 持有人地址(owner):持有代幣、提供授權的一方。
  • 被授權地址(spender):可依授權移動代幣的一方,可能是應用程式使用的智慧合約。

網站名稱不是合約地址,代幣簡稱也不是代幣身分。同名代幣可能位於不同網路或不同合約;某個網路上的授權,不能直接當成另一個網路上的同名資產授權。

ERC-20 標準區分了幾個動作:approve 設定授權額度,transfer 從呼叫者自己的帳戶轉出代幣,transferFrom 則讓其他地址在授權範圍內轉出持有人的代幣。再次呼叫 approve 時,新數值會取代原本的額度,不是自動加在舊額度上。

理解這些差異的重點是:設定權限,不等於完成轉帳。 授權額度描述的是仍可使用的權限,不能拿來當作付款或收款證明。

連接、簽署、授權與轉帳,有什麼不同?

基本的錢包連線,是讓網站與你選定的帳戶建立互動,本身不等於設定 ERC-20 授權額度。不過,網站之後可能再提出簽署或交易請求;有些流程也可能把多種請求放在一起,不能只因為畫面寫著「連接」就把所有內容視為基本連線。

簽署訊息同樣要看內容。有些訊息用來登入,有些則可能授予可影響資產的權限。當下沒有支付 Gas,不代表這份簽署沒有後續效力。MetaMask 的 Dapp 說明可作為理解連線與後續請求的參考,但不同錢包的畫面與流程未必相同。

五種請求的概念比較
動作或請求要分清的對象不能直接推論
基本錢包連線哪個帳戶與哪個網站連線不等於代幣授權;也不能把合併提出的其他請求視為基本連線
訊息簽署訊息用途與授予的權限當下不付 Gas,不等於無風險或沒有資產影響
ERC-20 授權網路、代幣、持有人、被授權地址與額度不等於代幣已轉出,也不代表餘額已被預留
代幣轉帳代幣、轉出地址、收款地址、數量與完成狀態先前有授權,不足以證明轉帳已完成
撤銷特定授權改變的是哪一筆額度,以及變更是否已完成不會撤回過去的轉帳,也不代表所有其他權限都已取消
圖表 1:比較的是請求的意義,不是特定錢包的按鈕或操作順序。

代幣授權不等於把私鑰交給對方。但私鑰仍由你保管,也不表示被授權地址就安全:它可能在既有授權範圍內移動代幣。

用一筆例子看懂:餘額 80,為什麼能授權 100?

假設只有一個持有人、一種代幣、一個被授權地址,而且都在同一個網路。下表使用有限額度,並假設每次代為轉帳都扣減相同數量的授權額度。每一列都是已完成的狀態,不包含待處理或互相競爭的交易,也排除手續費、供給調整型代幣的餘額變動與其他操作。

所有數字都只是虛構的代幣單位,不是美元、Gas 或平台交易餘額。

同一組持有人、代幣與被授權地址的六個狀態
已完成的狀態代幣餘額剩餘授權額度
起始狀態800
授權額度設為 10080100
被授權地址代為轉出 3050(80 − 30)70(100 − 30)
網站與錢包中斷連線5070
持有人收到 207070
將這筆授權額度設為 0 的變更完成700
圖表 2:有限額度的已完成狀態範例;不代表所有代幣都會扣減最大額度或「無限授權」。

授權 100 並沒有補出缺少的 20,也沒有把 100 轉走,更沒有替對方預留 100。此時餘額仍是 80。代為轉出 30 之後,餘額是 50,剩餘授權額度是 70,兩者自然不必相等。

接著收到的 20,可能仍在既有剩餘授權可作用的範圍內,取決於代幣與授權的實作。最後,即使這筆額度已歸零,也不會讓先前轉出的 30 自動回到持有人帳戶。

「無限授權」不是無限餘額,也不是安全保證

錢包有時會把非常大的授權上限標示為「無限」。這個上限可以高於目前餘額,但不會創造代幣。較大的額度可能減少重複授權的次數,同時也留下持續可用的權限;日後收到的同一種代幣,也可能受到這筆授權影響。

較小的額度限制了這筆授權可動用的數量,卻不保證惡意的被授權地址無害、合約不會變更,或整個應用程式值得信任。它也不能當成你所有資產、所有授權的總損失上限。MetaMask 的額度說明解釋了額度的用途;本文不以某個介面的標示,保證所有代幣實作相同。

permit 的到期時間,等於授權額度到期嗎?

不一定。這裡談的是 ERC-2612:它讓持有人透過簽署訊息來設定 ERC-20 授權額度,而不必由持有人親自送出一般的 approve 交易。其他地址也可以提交這份 permit;提交者與被授權地址,不一定是同一方。

ERC-2612 的訊息包含持有人、被授權地址、額度、nonce 與 deadline。nonce 用來防止同一份授權被重複使用;domain 則區分合約與鏈等簽署範圍。這些條件和有效簽章都要符合,permit 才能被接受,不能只看金額或「到期時間」幾個字。

最容易誤會的是 deadline。它限制的是這份 permit 最晚何時能被接受,不是已建立的授權額度會自動失效的時間。若 permit 在期限內被接受,依 ERC-2612 所定義的狀態變更,授權額度已被設為指定值;不能因為之後超過 deadline,就認為那筆額度已經歸零。

這個區別來自 ERC-2612 規格的接受條件與額度更新方式。它不代表所有名為 permit 的機制都相同,也不代表每種 ERC-20 代幣都支援 ERC-2612。其他授權機制可能另有有效期限或規則,需要分開理解。

中斷連線、撤銷授權與公開資料,是三件事

中斷網站與錢包的基本連線,不會自動清除代幣合約中已存在的授權額度。網站連線權限與合約中的代幣使用權限,並不是同一筆設定。

中斷連線也不會把一般公開的 Ethereum 鏈上紀錄藏起來。只要知道地址,其他人仍可透過區塊鏈瀏覽器查看公開記錄的 ETH 餘額、代幣持有量與交易紀錄;查看這些公開資料不需要先取得代幣授權。授權額度管的是被授權地址可代為移動多少代幣,不是誰能看見公開餘額。這不代表所有應用程式的私人資料或隱私保護交易都公開。

撤銷某筆代幣授權,則涉及改變那筆授權額度。提出撤銷請求,不等於變更已完成;只有已完成的狀態,才能用來描述這筆額度是否已改變。即使這筆額度已設為 0,也不能推論其他獨立簽署的授權、進階權限或其他代幣的額度都已取消,更不會撤回先前已完成的轉帳。

關於這些差異,可參考 MetaMask 的連線與撤銷說明及 Ethereum 區塊鏈瀏覽器文件。這裡比較的是權限與紀錄的性質,不是特定錢包的操作教學。

常見問題

只連接錢包,就會給網站代幣授權嗎?

基本連線本身不會設定 ERC-20 授權額度。但後續或合併提出的簽署、交易與進階權限請求,必須分開理解,不能全部當成基本連線。

授權 100,就是轉出 100 嗎?

不是。授權設定的是權限,轉帳才是移動代幣。在本文範例中,餘額 80、授權額度 100 可以同時存在;設定額度後,餘額仍是 80。

授權額度可以比錢包餘額高嗎?

可以。額度不是被預留的餘額,也不會增加你持有的代幣。日後收到的同一種代幣,可能仍受既有剩餘授權影響,實際行為取決於代幣與授權的實作。

中斷連線,就等於撤銷授權嗎?

不是。中斷基本連線不會自動清除合約中的額度。改變特定額度需要另一個已完成的狀態變更,也不會撤回過去的轉帳或隱藏公開鏈上紀錄。

簽署時不用付 Gas,或 permit 有期限,就不用擔心嗎?

不能這樣判斷。簽署可能授予影響資產的權限;ERC-2612 的 deadline 限制 permit 被接受的時間,不會讓已建立的額度自動到期。其他 permit 機制也可能有不同規則。

記住:權限、餘額與已完成轉帳要分開看

授權額度回答「特定地址還能代為移動多少這種代幣」,餘額回答「地址目前持有多少」,已完成轉帳則回答「哪些代幣已經移動」。連線狀態、簽署期限與公開資料的可見性,又是另外幾個問題。把它們分開,才能看懂請求的意義;這仍不能代替對特定合約或交易風險的判斷。

延伸閱讀:Gas 上限與 Gas 價格。Gas 描述的是執行交易的資源與費用,不能拿來當作代幣授權額度。

資料範圍:ERC-20 與 MetaMask 基本概念資料於 2026 年 10 月 20 日查閱;公開鏈上資料的說明於 10 月 23 日查閱;ERC-2612 與連線、撤銷差異的資料於 10 月 25 日核對。這些日期不是文件的發布日期,也不表示已測試目前各錢包的介面或某筆交易。

瀏覽 HypaForecast 市場

下列連結僅供站內導覽,與本文介紹的代幣授權機制無關。