数字货币发展到2016年,从Ethereum开始,能发行代币(token)的数字货币系统越来越多,追根溯源,代币首创其实是Ripple,瑞波支付网络内叫IOU,瑞波网关发行的CNY、USD、JPY以及BTC等等IOU,就是代币。
俗话说:“没有规矩,不成方圆”,期初代币发行是很随意的,从总量到发行方式,简而言之ERC20就是给代币套上一些约束其行为和属性的一套规范。
1.ERC20定义
ERC20代币规范,就是一套约定好的智能合约函数和事件名称。什么是代币呢?代币(Token)是区块链中定义价值的方式,用于标定金融或数字资产。
// https://github.com/ethereum/EIPs/issues/20
2 contract ERC20 {
3 function totalSupply() constant returns (uint totalSupply);
4 function balanceOf(address _owner) constant returns (uint balance);
5 function transfer(address _to, uint _value) returns (bool success);
6 function transferFrom(address _from, address _to, uint _value) returns (bool success);
7 function approve(address _spender, uint _value) returns (bool success);
8 function allowance(address _owner, address _spender) constant returns (uint remaining);
9 event Transfer(address indexed _from, address indexed _to, uint _value);
10 event Approval(address indexed _owner, address indexed _spender, uint _value);
11 }
通过这些函数集,可以得到代币发行总量、余额、代币转让分发和批准花费等功能。有了这些规范,就有了设计开发钱包的依据,可以得到所有按照这些规范开发钱包的支持。
2.ERC20优点
1.很容易被交易所和钱包支持:
ERC-20标准是在2015年11月份推出的,使用这种规则的代币,表现出一种通用的和可预测的方式。简单地说,这意味着任何ERC-20 代币都能立即兼容以太坊钱包,由于交易所已经知道这些代币是如何操作的,它们可以很容易地整合这些代币。这就意味着,在很多情况下,这些代币都是可以立即进行交易的。
2.很容易编程实现:
ERC-20规范规定了代币该如何运行,但其并不包含代码。即便如此,代币创建人依旧可在公开的GitHub库中找到他们所需的代码。通过复制和粘贴代码,一个稍有编程经验的人就可以在分分钟内创建出一种 ERC-20标准代币。
3.REC20的缺陷
ERC-20标准还有待完善,其中已知的一个缺陷是将代币直接发送给代币的智能合约将导致资金损失。这是ERC20代币存在的最大问题,也是开发者一直希望改进的地方。ERC20代币无法发送给一个与之不兼容的合约,也正因为这样,资金存在丢失的风险。例如,当您从钱包中向另一个用户发送代币时,该钱包将调用合约来更新数据库。所以如果您试图将代币直接传输到合约中,那么由于该代币的合约无法响应,所以就“丢失”了。为了解决这个问题,出台了ERC223代币规范。
参考资料
联系我
请关注我的微博:瑞波支付
欢迎加入我的QQ群:56937187