最後更新:2026年3月 · 進階課程
以太坊ERC20代幣標準是整個加密貨幣生態的基石。本教學從技術規範出發,帶你深入理解6個必需函數與3個可選功能,並以實作步驟教你如何發行一顆符合ERC20標準的代幣。透過比較表格與圖表,你將掌握ERC20在DeFi、NFT市場中的實際應用,並避開常見的安全性陷阱。適合已具備區塊鏈基礎的讀者,完整提升ERC20開發與投資分析能力。
重點速覽 · 以太坊ERC20
一、什麼是以太坊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代幣:六步驟實作
要發行一個屬於自己的以太坊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代幣支撐了整個去中心化金融(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% |
下圖三以雷達圖比較三種標準在「開發難度、相容性、功能彈性」上的表現:
六、安全性與最佳實踐
發行以太坊ERC20代幣看似簡單,但合約漏洞可能導致資產歸零。以下是必備的安全措施:
- 使用經過審計的模板:OpenZeppelin的合約經過數百次安全審查,絕不要自己寫轉帳邏輯。
- 避免無限鑄造:若合約有mint函數,務必設置onlyOwner或時間鎖。
- 防止重入攻擊:轉帳時遵循「檢查-生效-交互」模式,或使用ReentrancyGuard。
- 測試覆蓋率:在Hardhat或Foundry中撰寫單元測試,達到100%分支覆蓋。
- 漏洞賞金:上線前舉辦安全漏洞獎勵計劃,吸引白帽駭客。
常見問題 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,



