目錄
- 前言
- 什麼是 ERC-20 標準?
- 快速回顧以太坊代幣
- ERC-20 代幣如何建立?
- ERC-20 代幣有什麼功用?
- 您可以挖掘 ERC-20 代幣嗎?
- ERC-20 代幣的優點和缺點
- ERC-20、ERC-1155、ERC-223、ERC-721 – 差異在哪裡?
- 總結
前言
什麼是 ERC-20 標準?
ERC-20 由 Vitalik Buterin 和 Fabian Vogelsteller 於 2015 年撰寫,提出了相對簡單的以太坊代幣格式。只要遵循大綱的內容,開發人員即可省下很多開發時間。相反地,他們可以建立廣泛用於此產業的基礎。
請注意,ERC-20 標準已發展成 EIP(特別是 EIP-20)。由於受到廣泛使用的緣故,因此在原始提案的幾年後演變為此情況。但是,即使多年後,名稱「ERC-20」仍然存在。
快速回顧以太坊代幣
不同於 ETH(以太坊的原生加密貨幣),ERC-20 代幣並非由帳戶持有。這些代幣只會存在於合約中,就像是自含型資料庫,更為代幣指定了規則(也就是名稱、幣種、可分割性),並保留將用戶餘額映射至其以太坊位址的清單。
若要移動代幣,用戶必須將交易傳送至合約,同時要求它在其他地方配置一些他們的餘額。例如,如果 Alice 想將 5,000 枚 BinanceAcademyToken 傳送給 Bob,她就會調用 BinanceAcademyToken 智能合約內部的功能,並要求如此操作。
看似定期的以太坊交易中含有她的調用,且該交易會支付 0 ETH 給代幣合約。該調用也會包含在交易的其他欄位中,並指出 Alice 希望進行的操作 – 在我們的情況下,也就是將代幣轉帳給 Bob。
既然已更新目前進度,那就進一步了解典型 ERC-20 合約的結構吧。
ERC-20 代幣如何建立?
以下是出現在以太坊專門建立之 Solidity 語言的函數。
totalSupply
function totalSupply() public view returns (uint256)
balanceOf
function balanceOf(address _owner) public view returns (uint256 balance)
transfer
function transfer(address _to, uint256 _value) public returns (bool success)
transferFrom
function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)
換句話說,您可以授權某個人 – 或另一份合約 – 代表自己轉帳資金。可能用例包括:支付基於申購的服務,且您不想為此每天/每週/每月手動傳送付款。相反地,您會讓程式幫您完成所有操作。
approve
function approve(address _spender, uint256 _value) public returns (bool success)
在最壞的情況下,如果 DApp 嘗試提現您所有資金或發現漏洞,您就只會損失 20 枚代幣。這可能不太理想,但絕對比損失所有的持有貨幣更有吸引力。
allowance
function allowance(address _owner, address _spender) public view returns (uint256 remaining)
可選函數
ERC-20 代幣有什麼功用?
大部分針對 ERC-20 代幣提出的申訴皆與其靈活性有關。設定慣例並不會限制發展,因此各方得以實行其他功能,並設定特定參數來符合自己的需求。
穩定幣
如果是典型的法幣支援穩定幣,發行者會持有歐元、美元等儲備金。接著,他們會為儲備金中的每個單位發行代幣。這意味著如果收益池妥善保管了 10,000 美元,發行者即可建立 10,000 枚代幣,且每次可贖回 1 元。
從技術上來說,您可以非常輕鬆地在以太坊中實行。發行者只會推出包含 10,000 枚代幣的合約。接著,他們會將其分發給用戶,並承諾他們稍後能以一定數量的法幣贖回代幣。
如上所述,治理此系統的合約相對來說非常簡化。但是,推出穩定幣需要處理很多外部因素,例如物流、合規性等。
證券型代幣
功能型代幣
您可以挖掘 ERC-20 代幣嗎?
代幣不需要自動分配。許多群眾募資活動可讓用戶使用多種不同的數位貨幣付款(例如 BNB(幣安幣)、BTC、ETH 及 USDT)。接著會將各自餘額分配給用戶提供的位址。
ERC-20 代幣的優點和缺點
ERC-20 代幣的優點
同質化
如果您的代幣是為了作為某種貨幣,這就是很理想的情況。您不會希望個別單位的特徵很明顯,因為這會因此變為非同質化,且比起其他代幣,部分代幣會變得更有價值 – 或更沒有價值,使用時的目的也會受到損害。
靈活性
普及性
在加密貨幣產業中,ERC-20 的普及性就是吸引人將其作為藍圖的原因。市場上有太多交易所、錢包及智能合約皆相容於新發行的代幣。而且,開發人員支援和文件也非常豐富。
ERC-20 代幣的缺點
可擴展性
與許多加密貨幣網路一樣,以太坊還是有發展中的困難。按照目前的形式,這並未妥善擴展 – 嘗試在尖峰時間傳送交易時,即會導致高額手續費和延遲情況。如果您發行 ERC-20 代幣時遇到網路堵塞的情況,其可用性就會受到影響。
詐騙
雖然技術本身不成問題,但就某些方面來說,發行代幣的便利性也算是一項缺點。我們可以輕而易舉地建立簡單的 ERC-20 代幣,意味著任何人都辦得到 – 無論好壞。
ERC-20、ERC-1155、ERC-223、ERC-721 – 差異在哪裡?
ERC-20 為第一個(也是目前為止最受歡迎的)以太坊代幣標準,但並非唯一的標準。多年來誕生了許多其他的標準,包括提出 ERC-20 改善方案,或是嘗試共同達成不同的目標。
ERC-1155 標準可視為 ERC-721 和 ERC-20 的改良方案,其概述了在相同合約中支援同質化和非同質化兩種代幣類型的標準。
ERC-223 或 ERC-621 等其他選項則是為了改善可用性。前者落實了安全保障,以免出現意外的代幣轉帳情況。後者則新增了額外函數,藉此增減貸幣供給量。
總結
ERC-20 標準已主導加密貨幣資產世界多年,且我們不難看出原因何在。透過相對輕鬆的可用性,任何人皆可部署簡易合約來符合廣泛的用例(功能型代幣、穩定幣等)。但是,ERC-20 的確缺乏一些其他標準所賦予的功能。後續的合約類型是不是會取而代之,我們可以繼續觀察下去。