ERC20代幣標準完整教學 2026

ERC20代幣標準完整教學示意圖 2026

最後更新:2026年3月 · 進階課程

文章核心摘要
以太坊ERC20代幣標準是整個加密貨幣生態的基石。本教學從技術規範出發,帶你深入理解6個必需函數與3個可選功能,並以實作步驟教你如何發行一顆符合ERC20標準的代幣。透過比較表格與圖表,你將掌握ERC20在DeFi、NFT市場中的實際應用,並避開常見的安全性陷阱。適合已具備區塊鏈基礎的讀者,完整提升ERC20開發與投資分析能力。

重點速覽 · 以太坊ERC20

12行精簡合約
6必需函數
98%錢包相容性
$1B+鎖倉價值

一、什麼是以太坊ERC20?定義與歷史

2015年,以太坊區塊鏈啟動,隨之而來的ERC20標準(Ethereum Request for Comments 20)由Fabian Vogelsteller在2015年11月提出,2017年正式成為以太坊社群共識。以太坊ERC20定義了一組通用的代幣介面,使得任何符合該標準的代幣都能在錢包、交易所、DeFi協議中無縫運作。目前已有超過400,000種ERC20代幣被部署,總市值佔整個加密市場的60%以上。

ERC20的誕生解決了「代幣碎片化」問題——在它出現前,每個代幣都有自己的轉帳函數名稱,交易所需要為每種代幣客製化整合。以太坊ERC20統一了`transfer`、`balanceOf`等函數,大幅降低開發與接軌成本。

二、以太坊ERC20的技術規範:函數與事件

一個符合以太坊ERC20標準的合約,必須實作以下6個函數與2個事件:

類別 函數/事件 簽章 強制性
必需函數 totalSupply() 回傳總發行量
必需函數 balanceOf(address) 查詢帳戶餘額
必需函數 transfer(address,uint256) 轉帳給指定地址
必需函數 transferFrom(address,address,uint256) 授權轉帳(代付)
必需函數 approve(address,uint256) 授權第三方提領額度
必需函數 allowance(address,address) 查詢剩餘授權額度
事件 Transfer(from,to,value) 每筆轉帳觸發
事件 Approval(owner,spender,value) 授權變更觸發
可選函數 name() 代幣名稱(例如USD Tether)
可選函數 symbol() 代幣符號(例如USDT)
可選函數 decimals() 小數位數(通常18)

上述函數的Solidity實作通常不到100行,但提供了完整的代幣管理能力。圖一以視覺化方式呈現ERC20的核心介面。

圖一:ERC20 標準函數與事件介面totalSupply()balanceOf(address)transfer(address,uint256)transferFrom(…)approve(address,uint256)allowance(address,address)event Transfer(…)event Approval(…)name() / symbol() / decimals()必需函數事件可選函數

三、如何發行ERC20代幣:六步驟實作

要發行一個屬於自己的以太坊ERC20代幣,你不需要從零寫Solidity。以下是在Remix IDE與MetaMask環境下的標準流程:

步驟 動作 說明 工具/注意事項
1 安裝錢包 下載MetaMask並連接到以太坊主網或測試網(Goerli) 確保測試ETH充足
2 撰寫合約 使用OpenZeppelin的ERC20模板,只需指定name、symbol import @openzeppelin/contracts/token/ERC20/ERC20.sol
3 編譯與測試 在Remix中編譯合約,並用JavaScript VM模擬轉帳 Solidity版本最好>=0.8.0
4 部署合約 透過MetaMask將合約部署到目標網路 Gas費用需ETH支付
5 鑄造與撥發 合約內可建構子中鑄造初始供應量,或另寫mint函數 注意控管鑄造權限
6 驗證與上架 在Etherscan驗證合約原始碼,並讓CoinMarketCap收錄 需要提供代幣標誌、官網等資訊
💡 實戰提醒:發行真正的ERC20代幣前,務必先在測試網部署並邀請社群試用,避免合約漏洞造成資產損失。

下圖二總結了從規劃到上線的完整步驟:

圖二:發行ERC20代幣的6步驟流程① 錢包設定② 合約撰寫③ 編譯測試④ 部署上鏈⑤ 鑄造撥發⑥ 驗證上架

四、以太坊ERC20的應用場景與案例

以太坊ERC20代幣支撐了整個去中心化金融(DeFi)生態。以下列舉三種主要應用與代表性代幣:

應用分類 代表代幣 合約地址(精簡) 市值(2026/01)
穩定幣 USDT (Tether) 0xdAC17F…3C70 ~980億美元
去中心化交易所 UNI (Uniswap) 0x1f9840…420 ~60億美元
預言機 LINK (Chainlink) 0x514910…4C ~45億美元
治理代幣 AAVE (Aave) 0x7Fc665…70 ~25億美元
合成資產 SNX (Synthetix) 0xC011a…C2 ~12億美元

這些代幣全部遵循以太坊ERC20標準,因此可以在MetaMask、Ledger等錢包中直接交互,也能在Uniswap、Curve等DEX中交易。2025年後,隨者EIP-1559與Layer2的普及,ERC20代幣的交易成本已大幅降低。

五、以太坊ERC20 vs 其他代幣標準

雖然以太坊ERC20是最廣泛使用的標準,但非同質化代幣(NFT)與多代幣標準也逐漸崛起。下表比較三種主流標準:

特性 ERC20 ERC721 (NFT) ERC1155 (多代幣)
代幣類型 同質化 非同質化 同質+非同質混和
單一地址持有 餘額數值 唯一ID 可同時管理多種ID
適用場景 貨幣、治理、質押 數位藝術、遊戲道具 遊戲、批量交易
Gas效率(批量轉帳) 低(單筆單函數) 極低(需逐筆) 高(單筆多id)
市值佔比 ~85% ~10% ~5%

下圖三以雷達圖比較三種標準在「開發難度、相容性、功能彈性」上的表現:

圖三:三種代幣標準比較(主觀評分)開發難度 (低→高)ERC20ERC721ERC1155相容性 (廣→窄)ERC20ERC721ERC1155功能彈性 (低→高)ERC20ERC721ERC1155ERC20ERC721ERC1155

六、安全性與最佳實踐

發行以太坊ERC20代幣看似簡單,但合約漏洞可能導致資產歸零。以下是必備的安全措施:

  • 使用經過審計的模板:OpenZeppelin的合約經過數百次安全審查,絕不要自己寫轉帳邏輯。
  • 避免無限鑄造:若合約有mint函數,務必設置onlyOwner或時間鎖。
  • 防止重入攻擊:轉帳時遵循「檢查-生效-交互」模式,或使用ReentrancyGuard。
  • 測試覆蓋率:在Hardhat或Foundry中撰寫單元測試,達到100%分支覆蓋。
  • 漏洞賞金:上線前舉辦安全漏洞獎勵計劃,吸引白帽駭客。
⚠️ 常見陷阱:有些ERC20代幣(如USDT)不完整實作回傳值,導致某些合約無法正確轉帳。建議使用SafeERC20包裝。

常見問題 FAQ

Q1: 以太坊ERC20代幣發行需要多少成本?

A: 主要成本來自以太坊主網的Gas費用。部署一個簡單的ERC20合約約需0.05~0.15 ETH(依網路壅塞狀況而定)。若要鑄造大量代幣,需額外支付儲存成本。

Q2: 如何驗證一個代幣是否真的符合ERC20標準?

A: 使用Etherscan的「代幣檢測器」或手動檢查合約是否包含所有必需函數。也可使用工具EIP-20的檢查清單。

Q3: ERC20與ERC721可以互相轉換嗎?

A: 不可以直接轉換。但你可以寫一個封裝合約(Wrapped ERC721)將NFT鎖倉後鑄造對應的ERC20,

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端