什么是ERC20代币?

  • 2017-09-01
  • 182
  • 0
  • 0

数字货币的种类纷繁复杂,除了比特币、莱特币、Zcash、bitshares 等众多老牌币种, 都是独自的链,在自己的链上运行着自己特有的币外,另外有一种平台型代币,他们是依托以太坊而创建的,没有自己的链,而是运行在以太坊之上。

市面上,十有八九的数字货币都属于“代币”的类型,通过以太坊平台来发行的,这类数字货币通常是ERC-20代币。

简单地说,任何 ERC-20 代币都能立即兼容以太坊钱包(几乎所有支持以太币的钱包,包括Jaxx、MEW、imToken等,也支持 erc-20的代币),由于交易所已经知道这些代币是如何操作的,它们可以很容易地整合这些代币。这就意味着,在很多情况下,这些代币都是可以立即进行交易的。

先说下,比特币有个BIP的东西,Bitcoin Improvement Proposals, 即比特币更新建议,任何人都可以在Github上提建议,你的建议有可能被采纳,也有可能被拒绝。

比特币的状态都是根据BIP来进行跟踪的。最近讨论的比较热的比特币扩容方案,就是这个github网址里所提出的意见。

https://github.com/bitcoin/bips

以太坊也同样有个叫EIP的,也是一样的意思,征求大家的意见,任何人可以对以太坊的代币提出改进意见。

https://github.com/ethereum/eips

其中代号为20的一项是2015年11月提出的,是对代币定义一个标准的提议,否则不同的代币要定制不同的钱包,使用不同的操作方式,非常麻烦。

https://github.com/ethereum/eips/issues/20

代币标准是由一系列的函数构成的。

代码也很简单。

totalSupply

function totalSupply() constant returns (uint256 totalSupply)

获得代币总供应量。

balanceOf

function balanceOf(address _owner) constant returns (uint256 balance)

获得账户所有者余额

transfer

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

转移一定数量的代币。

transferFrom

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

从某地址到另一个地址,通常是一个交易所提币的操作。

approve

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

批准花费代币。

allowance

function allowance(address _owner, address _spender) constant returns (uint256 remaining)

是一个查询函数,返回交易所上的这个地址可以提多少币的结果。

两个Events

Transfer

event Transfer(address indexed _from, address indexed _to, uint256 _value)

transfer或者transferFrom被调用的话,触发转账的动作。

Approval

event Approval(address indexed _owner, address indexed _spender, uint256 _value)

表示相应的提币的请求被同意,可以正式提币了。


如果你写的Token的智能合约符合以上这些函数的标准,你的Token则被称之为标准的ERC20代币。

以太坊的官网也展示了一个发行Token的案例。

https://ethereum.org/token

如果在以太坊发行代币,符合ERC20的标准的话,那很多交易所就可以集成,在它们的交易所上实现代币的买卖、交易。

简单地来说,任何ERC-20代币都能立刻兼容以太坊钱包。

有了这套标准,代币的发行变得极其容易。目前越来越多的ICO都倾向于发行符合ERC20的代币了。

我是苏江,长期分享区块链思考,欢迎加我微信与我交流:su466120534

评论

还没有任何评论,你来说两句吧

发表评论