今天來聊聊整個以太坊合約應用裡面一個很特殊的東西 token

token 在區塊鏈裡面,我覺得翻譯成 代幣 會比較適合,而不是一般語言常用的翻譯 令牌,那到底它是什麼意思呢?

簡單來說它也是透過合約去規範多少 eth 換多少 代幣,也可以規範整個代幣全部的總發行數量,至於這個代幣的數值,就是儲存在合約的紀錄中。講到這邊大家又會問?那是不是任何人都可以自己寫合約自訂自己的代幣?那這樣它有什麼貨幣效力呢? 所以以太坊的合約規範裡面有設定一個東西,叫做ERC20,它是一個 interface ,只要符合這個 interface ,它就具備完整的貨幣交易機制。

下面來看一下一個 ERC20 的 interface

contract ERC20 {
    //總代幣發行量
    function totalSupply() constant returns (uint totalSupply);
    //owner戶口結餘
    function balanceOf(address _owner) constant returns (uint balance);
    //傳送代幣到位址
    function transfer(address _to, uint _value) returns (bool success);
    //從 a 地址 傳送代幣到 b 地址
    function transferFrom(address _from, address _to, uint _value) returns (bool success);
    function approve(address _spender, uint _value) returns (bool success);
    function allowance(address _owner, address _spender) constant returns (uint remaining);
    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);
}

只要 contract 中有實現上面的東西,它就是一個合法且具備完整交易功能的 token,透過這個 token 機制,可以使整個 contract 更靈活的應用。

這種作法在很常應用在 ICO (Initial Coin Offering),數字貨幣首次公開募資