此網頁僅供信息參考之用。部分服務和功能可能在您所在的司法轄區不可用。
本文由系統自動翻譯自原文。

什麼是 ERC-20?

ERC-20 是 Ethereum 上的一套同質化代幣介面標準。它面向一種負責記錄餘額和處理操作的鏈上程式,也就是代幣合約。ERC 是 Ethereum Request for Comments 的縮寫,指 Ethereum 的應用層標準與約定類別;20 是這項提案的編號。ERC-20 規定代幣合約應怎樣回答餘額和總供應量查詢,怎樣處理轉帳與授權,以及應發出哪些供應用讀取的操作紀錄(事件),讓錢包和其他應用能夠用相近方式接入不同代幣。

「同質化」表示同一種代幣的等量單位按合約記帳時可以互換。例如,同一合約記錄的 1 個單位不會因為來自不同地址就自動變成另一種類型。ERC-20 統一的是這些單位的操作方式,不是它們的價格、用途或可信程度。

統一介面解決接入差異

如果每個代幣合約都使用不同的函式名稱和參數,錢包每增加一種代幣就要重新學習一套查詢與轉帳方式,鏈上應用也很難重用既有程式碼。

ERC-20 規定了一組共同介面。錢包可以用同一種查詢方式讀取不同代幣的餘額,應用可以按約定請求轉帳,資料服務也可以讀取統一格式的轉帳和授權事件。

標準本身不會建立代幣。開發者仍要編寫或採用具體合約,並把它部署到網路。每個合約可以記錄自己的供應量、帳戶餘額和附加規則,因此兩個 ERC-20 代幣可能採用不同程式碼,也可能擁有完全不同的管理權限。

餘額、總量和顯示單位

ERC-20 合約按整數記錄代幣數量。balanceOf 用來查詢某個地址的餘額,totalSupply 用來查詢合約回報的代幣總量。

介面上看到的小數通常來自顯示規則,而不是合約真的儲存了小數。可選的 decimals 欄位告訴錢包應把整數向左移動多少位。例如,合約記錄 1,000,000 個最小單位,若 decimals 為 6,介面通常顯示為 1 個代幣。

這不會改變鏈上數量,也不會自動改變代幣價值。原始標準把名稱欄位 name、交易代碼欄位 symbol 和顯示小數位數欄位 decimals 都列為可選資訊;名稱和交易代碼還可能重複。可靠識別一個 ERC-20 代幣時,需要同時核對網路和合約地址,不能只看圖示或交易代碼。

直接轉帳怎樣發生

持有人直接把代幣從自己的餘額轉給另一個地址時,通常呼叫 transfer,並提供接收地址和以最小單位表示的數量。

合約執行時會檢查自己的規則。基礎情形下,餘額不足會導致操作失敗;實作還可能加入暫停、名單、轉帳費或其他限制。成功後,合約更新內部餘額,並發出 Transfer 事件,供錢包、區塊瀏覽器和資料服務識別這次變動。

Transfer 事件是讀取變化的重要線索,但最終餘額仍以合約狀態為準。應用還要確認交易已成功寫入正確網路,並確認事件來自正確的合約地址。

授權讓應用代為轉移限定數量

ERC-20 還支援「先授權,再由另一個地址或合約執行」的流程。它常用於去中心化交易、借貸或其他需要合約接收代幣的操作。

這個流程涉及三個角色:

  • 持有人擁有代幣,並決定是否授權;
  • 被授權方可以是另一個地址或鏈上應用;
  • 接收方是代幣最終轉入的地址,也可以與被授權方不同。

持有人呼叫 approve 設定授權額度。allowance 用來查詢還剩多少額度;被授權方呼叫 transferFrom,在餘額和剩餘額度允許的範圍內轉移代幣。授權成功時,合約會發出 Approval 事件。

授權不等於代幣已經轉出,但它會為被授權方留下後續操作空間。若額度很大或沒有及時撤銷,被授權應用一旦存在漏洞、被控制或行為不符合預期,就可能在授權範圍內轉走代幣。使用者需要核對被授權地址、代幣合約和額度,而不能只看應用頁面上的名稱。

修改授權額度需要注意什麼

原始 ERC-20 設計允許再次呼叫 approve,用新數值覆蓋舊額度。如果舊額度尚未使用,而持有人直接把它改成另一個非零值,被授權方可能在變更交易生效前用掉舊額度,並在變更後繼續使用新額度,合計超過持有人原本希望留下的新額度。

ERC-20 規範建議用戶端介面先把同一被授權方的額度設為 0,待歸零交易確認後再設定新值。這是一項針對授權變更流程的相容性建議,不表示所有錢包都採用相同互動,也不能替代對被授權合約的判斷。

撤銷授權通常也是把額度設為 0,並提交一筆鏈上交易。僅中斷錢包與網站的連線,通常不會自動改變已經寫入代幣合約的授權額度。

基礎標準的共同介面

從使用者角度,可以把基礎介面分為三組:

  • 查詢:讀取總供應量、地址餘額和剩餘授權額度;
  • 操作:由持有人直接轉帳、設定授權,或由被授權方代為轉帳;
  • 事件:記錄轉帳和授權成功,方便外部應用更新資料。

名稱、交易代碼和小數位屬於可選顯示資訊。標準還要求呼叫方能夠處理操作回傳 false 的情況,而不能假定每次呼叫不是成功就是自動報錯。實際接入時,應用需要面對已經部署的不同實作,不能只檢查函式名稱是否存在。

哪些能力不屬於基礎標準

ERC-20 沒有統一規定代幣應如何建立最初供應,也沒有要求合約必須繼續鑄造或支援銷毀。鑄造、銷毀、暫停、凍結、名單、交易費、投票權、升級和管理角色,都可能由具體實作另外加入,也可能完全不存在。

標準也不規定:

  • 代幣供應是否有上限,以及誰能改變供應;
  • 代幣是否對應儲備、商品、服務或其他鏈下權利;
  • 代幣價格、流動性或交易場所;
  • 管理員能否暫停、凍結或升級合約;
  • 其他網路上的同名代幣是否與它屬於同一資產安排。

因此,讀取 totalSupply 只能得到合約目前回報的總量,不能單獨說明未來會否增發;看到相同 symbol 也不能證明兩個合約代表同一種代幣。

代幣合約與原生 ETH

ETH 是 Ethereum 網路的原生資產,用於支付網路執行交易所收取的 Gas 費,也由協議直接記錄。ERC-20 代幣則由智能合約維護餘額和操作規則。

兩者都可以在地址之間轉移,但呼叫路徑並不相同。普通 ETH 轉帳不需要呼叫某個 ERC-20 合約,ETH 本身也不是 ERC-20 代幣。某些應用使用合約把 ETH 對應為一種 ERC-20 形式,以便接入只接受 ERC-20 介面的程式;這會引入另一份合約及其規則,不能把兩種紀錄直接視為同一物件。

介面相容不等於行為完全相同

「支援 ERC-20」通常只說明錢包或應用能呼叫基礎介面。具體代幣仍可能表現不同:

  • 轉帳時扣除額外費用,使接收數量低於輸入數量;
  • 管理員可以暫停轉帳、凍結地址或改變實作;
  • 某些舊合約沒有按應用預期回傳結果;
  • 顯示欄位缺失、重複或由不可信來源提供;
  • 額外邏輯讓普通轉帳在特定條件下失敗。

所以,ERC-20 提供的是共同語言,不是統一業務規則。判斷某個代幣能否安全接入,需要檢查具體合約地址、程式碼或驗證資訊、管理權限和實際呼叫結果。

常見問題

所有 Ethereum 代幣都是 ERC-20 嗎?

不是。Ethereum 還有面向獨立編號代幣或其他用途的標準,也可以存在自訂介面。ERC-20 主要服務於按數量記錄、等量單位可互換的代幣。

代幣都使用 18 位小數嗎?

不是。decimals 是可選顯示欄位,不同代幣可以使用不同數值。應用在計算和顯示數量前應讀取並正確處理具體合約的設定。

把錢包與網站中斷連線就撤銷授權了嗎?

通常沒有。中斷連線會阻止網站繼續透過目前工作階段請求錢包操作,但鏈上授權仍由代幣合約記錄。撤銷通常需要把相應額度改為 0,並讓交易成功寫入網路。

收到 ERC-20 代幣就說明它是真的嗎?

不能。任何人都可能部署名稱或交易代碼相似的合約。應核對網路、合約地址和可信資訊來源;標準相容性不能證明發行方身分、儲備或價值。

其他區塊鏈能直接使用這套標準嗎?

ERC-20 是 Ethereum 應用層標準。能夠執行 Ethereum 風格智能合約的其他網路可能採用相似介面,但每個網路上的合約地址和狀態彼此獨立。跨鏈移動通常還涉及橋或另外的發行安排,不是 ERC-20 介面自動完成的。

相關詞條

繼續了解代幣標準、加密代幣、智能合約和Gas 費,或返回加密貨幣術語表。

參考來源

免責聲明
本文章可能包含不適用於您所在地區的產品相關內容。本文僅致力於提供一般性信息,不對其中的任何事實錯誤或遺漏負責任。本文僅代表作者個人觀點,不代表 OKX 的觀點。 本文無意提供以下任何建議,包括但不限於:(i) 投資建議或投資推薦;(ii) 購買、出售或持有數字資產的要約或招攬;或 (iii) 財務、會計、法律或稅務建議。 持有的數字資產 (包括穩定幣) 涉及高風險,可能會大幅波動,甚至變得毫無價值。您應根據自己的財務狀況仔細考慮交易或持有數字資產是否適合您。有關您具體情況的問題,請諮詢您的法律/稅務/投資專業人士。本文中出現的信息 (包括市場數據和統計信息,如果有) 僅供一般參考之用。儘管我們在準備這些數據和圖表時已採取了所有合理的謹慎措施,但對於此處表達的任何事實錯誤或遺漏,我們不承擔任何責任。 © 2026 OKX。本文可以全文複製或分發,也可以使用本文 100 字或更少的摘錄,前提是此類使用是非商業性的。整篇文章的任何複製或分發亦必須突出說明:“本文版權所有 © 2026 OKX,經許可使用。”允許的摘錄必須引用文章名稱並包含出處,例如“文章名稱,[作者姓名 (如適用)],© 2026 OKX”。部分內容可能由人工智能 (AI) 工具生成或輔助生成。不允許對本文進行衍生作品或其他用途。