區塊鏈 11 | 什麼是ERC20? ERC721?

ERC20 Interface, ERC721 Inrterface

Megan
Learn & Record
7 min readMay 11, 2021

--

Photo by Chris Barbalis on Unsplash

ERC20

ERC-20 是一個 以太坊 區塊鏈 上的 智能和約 的一種協議標準。

ERC 的全名叫“Ethereum Request for Comment”,也就是“以太坊徵集修正意見書”。可以理解為 ERC 就是給大家發提案的地方,任何人對以太坊有意見和建議都可以發提案,如果採納了 , 就推動了以太坊的發展。既然 ERC 是意見提案,自然就會有編號,20 就是這個關於標準 Token 提案的編號。

在這份協議裏,只定義了標準接口,也就是合約中一定要有的函數。你自己的合約中可以多寫其他方法,但一並不能沒有ERC20定義的方法。包括六個強制性功能:

  • totalSupply: 在不需要支付 ETH 礦工費的情況下就可以查詢到任意 Token 的流通總量。
  • balanceOf: 查詢具體某一個以太坊地址所擁有 Token 的數量。
  • transfer: 調用這個函數可以實現“轉賬”,需提供2個參數:收件地址和轉賬金額。
  • transferFrom: 這個函數是transfer的便捷替代方案,它與transfer類似,都可以轉移代幣,但是transferFrom不同處在於,轉移的代幣不一定是本人的。舉例來說,小明雇用了一個資產管理人來幫他配置資產,資產管理人得到小明的授權後可以使用transferFrom來配置資產。
  • approve: 可以限制智能合約從餘額中提取的代幣數量
  • allowance: 可以與approve函數結合使用。如果你已經授予合同管理你的代幣,可以用這個函數來檢查能提取的代幣量。例如,假設你批准某服務可使用20個代幣,某服務已經使用了12個代幣,調用allowance函數後應返回8個代幣。

還有 2 個 event 則是作為紀錄重要事件之用,如 Token 之間轉賬記錄,不會影響智能合約運作,可以視為一般系統中的日誌 Log。

  • event Transfer
  • event Approval

初始設定

ERC20 開始時需要設定:名稱(name)代號(symbol)位數(decimals)。

  • 名稱(name): 代幣的全名。
  • 代號(symbol):代幣的簡稱,通常會設定成 3 至 4 個字母,比如以太幣代號為 ETH。
  • 位數(decimals):代幣能夠支持的最小單位,通常會設定成18。因為以太坊的最小單位是 Wei,1 個以太幣 = 10 的 18 次方 Wei。

ERC721

ERC721 則是用於處理不可替換資產的另一種以太坊代幣標準。可替換資產像是貨幣,它可以被其他任何平等單位替代,但諸如房屋、傢俱則屬不可替換資產,它不能被替代,也不能被分割,這就是 ERC721 規格標準的主要效果。在 ERC721 標準下,能將資產轉為唯一的、獨特的 256 位元代幣。而這種代幣可以通過區塊鏈上的智能合約追蹤,從而建立數位化資產。

值得一提的是,因為 ERC721 標準是由 Axiom Zen 技術總監 Dieter Shirley 提出的,該公司風靡全球的DApp遊戲「Crypto Kitties」,也成為第一個採用 ERC721 標準的去中心化遊戲應用。

ERC721定義的方法:

每個符合ERC-721的合同都必須實現ERC721和ERC165接口。

ERC721 跟 ERC20 合約有點類似,功能大同小異。

參考文件

--

--