ERC-20

區塊鏈領域的專有名詞不少,有些專有名詞是技術相關的,我們今天來看看ERC-20,由於NFT的爆紅,比較多人可能會聽到ERC-721,但我們今天先來看看ERC-20。

維基百科上面寫的ERC-20,就一行:

ERC-20:

ERC-20是以太坊區塊鏈上的一種智能合約協議標準。根據Etherscan.io的資料,截至2018年11月19日,一共有142273種加密貨幣兼容ERC-20。

ERC-20是一種以太坊上的智能合約協議標準,有了這個標準,開發者們可以很容易的依照這個標準來創建代幣,因為符合標準,所以這些代幣就可以自動的與支援ERC-20的服務與軟體互相操作。它有一個重要的概念是這些代幣是”同質”的,不同代幣間可以互換,這一點與NFT(非同質化代幣,ERC-721標準)是很不一樣的。

ERC-20的函數:

為了符合ERC-20的標準,則該合約必須包含六項強制函數:totalSupplybalanceOftransfertransferFromapprove 及 allowance。這樣,只要是符合ERC-20的合約,都有這些函數來進行交易。此外,還可以指定 namesymbol 及 decimal 等optional函數。以下我們來看看這些函數的solidity函數簽名及定義囉。

totalSupply

function totalSupply() public view returns (uint256)

返回該合約代幣的總供給量。

balanceOf

function balanceOf(address _owner) public view returns (uint256 balance)

輸入一個address後,返回該address持有的代幣量。

transfer

function transfer(address _to, uint256 _value) public returns (bool success)

利用此函數可將某數量的代幣轉給某address,此函數執行是並會觸發Transfer事件。

transferFrom

function transferFrom(address _from, address _to, uint256 _value) public returns (bool success)

此函數可將某數量的代幣從某個指定的address轉到另一個address

approve

function approve(address _spender, uint256 _value) public returns (bool success)

此函數可限制智能合約從電子錢包提走的代幣數量。此函數執行時亦會觸發Approval事件。

ERC-20的好處

因為其同質化代幣的特點,互相單位之間可以容易的互換,加上統一的標準,使得開發人員很容易的使用新合約產生所需要的新代幣。一個非常常見的應用即為穩定幣。