討論完一些區塊鏈議題,回到以太坊區塊鏈,我想說的最後一個主題,ERC-20。
在 EOS 利用智能合約成功進行 ICO 後,許多仿效者像雨後春筍般出現。每個專案、企劃都建立了自己的智能合約。每個智能合約內容皆是大同小異,主要都是輸入一定數量的 ETH 換取特定數量的 TOKEN。加上一些基本功能,例如:移轉、TOKEN名稱、總發行量等等。
TOKEN,中文常用代幣來稱呼,像是 EOS 發行的 TOKEN,就被稱為 EOS 幣!(現在 EOS 幣一般來說是指主鏈的 EOS,而不再是ERC-20的 EOS 幣!)
但是每個人都寫類似功能的智能合約,但是 Function 與使用方式不一樣,很不方便吧?(對開發人員而言),所以利用以太坊區塊鏈的 TOKEN標準ERC-20,能夠更快速與更方便其他人使用。
在 ERC-20 中定義了六個 Function 與兩個事件,在實作 TOKEN 智能合約時,遵循這個標準開發,就可以被稱為 ERC-20 TOKEN。
contract ERC20Interface {
# 以下註解說明若有錯誤,以官方說明為主。
# https://github.com/ethereum/EIPs/issues/20
# 查詢代幣發行量
function totalSupply() public constant returns (uint);
# 查詢某地址的擁有代幣數量
function balanceOf(address tokenOwner) public constant returns (uint balance);
# 查詢某智能合約或地址可操作的代幣數量
function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
# 將代幣轉出給某定址
function transfer(address to, uint tokens) public returns (bool success);
# 授權某智能合約或地址可操作的代幣數量
function approve(address spender, uint tokens) public returns (bool success);
# 將某帳戶的代幣轉到另一個帳戶
function transferFrom(address from, address to, uint tokens) public returns (bool success);
# 當發生轉移時觸發的事件紀錄
event Transfer(address indexed from, address indexed to, uint tokens);
# 當發生授權時觸發的事件紀錄
event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}
這個偉大的發明,讓各式各樣的『幣』像雨後春筍般出現。只要花費一點 GAS(以太坊區塊鏈的交易手續費),人人都可以印鈔票。隨便開啟一個虛擬貨幣交易所看看,有多少幣是你聽過的?現在在看到某個幣時,你可以看看是不是以太坊區塊鏈為底的 ERC-20。
現在有太多虛擬貨幣了,有大部分都是出自 ERC-20。有自己技術的主鏈幣,例如:BTC
、ETH 很少。
以太坊區塊鏈我知道的一些特色就介紹到這裡,歡迎指教與討論。