以太坊代币标准简介2
下面逐一介绍一下达成共识的 5 种以太坊代币标准。
ERC-20
这种标准是最广泛被大家认可的一种代币形式,大多数区块链项目 ICO 的过程都是经由以太坊网络发行一个自己的代币,遵从 ERC-20 标准,网上有很多文章,例如《零基础教你发行你自己的REC-20代币》,就是说明如何在以太坊网络上发行一个自己的专属代币,这也说明 ERC-20 标准是非常简单易操作的。这个标准从 2015 年开始开发,到 2017 年 9 月迭代成为了一个非常完善的版本。基于这个标准创建的代币(Token)可以很方便的被支持以太坊的钱包和交易所接受,同时,如果你使用以太坊浏览器,你还能随意的查看在网络上的转账记录,以及转账的金额。
可以说 ERC-20 的出现,启动了区块链项目 ICO 的繁荣,让基于以太坊的项目变得更容易获得投资,间接启动了整个区块链行业这一波的繁荣。
有兴趣的人可以查看:《ERC-20 标准接口和功能定义文档》 ,简单的列举一些通用的标准函数:
函数 totalSupply() 定义 Token 的总量;
函数 balanceOf(address tokenOwner) 显示用户账户余额;
函数 allowance(address tokenOwner, address spender) 返回剩余金额,显示 address spender 能从 address tokenOwner 里提取的数量;
函数 transfer(address to, uint tokens) 转移对应的金额到指定地址;
函数 approve(address spender, uint tokens) returns (bool success) 允许 address spender 提取部分 Token ;
函数 transferFrom(address from, address to, uint tokens) returns (bool success) 从一个地址转移 token 到另一个地址;
拥有以上所有必要的函数实现我们称为兼容 ERC-20 标准,但在具体实现中会做一些扩展,下面就是一个扩展的例子,我们称为 ERC-223 。
ERC-223
这个标准在 2017 年 3 月被创建出来,支持所有 ERC-20 的函数、智能合约以及服务,并解决了一些 ERC-20 的缺陷,比如说:在 ERC-20 标准下如果你输入了错误的收款地址,你转账的费用可能会永远丢失,但在 ERC-223 里这个问题被避免了,同时在这个标准下你需要消耗的 GAS 费用只有 ERC-20 的一半。
ERC-621
ERC-621 是于 2017 年 5 月发布的基于 ERC-20 升级的标准,解决了 ERC-20 不允许 Token 总量更改的问题,不过为了解决这个问题,ERC-621 增加了两种新的函数:increaseSupply 和 decreaseSupply 。参见《Token 标准扩展#621》。
ERC-827
2018 年 1 月发布了一个新的更新 ERC-827。他虽然只为自己的改进增加了 30 行代码,但是比 ERC-20 更加灵活,除用于转账外,还可以转移数据和让第三方在获取用户允许的情况下为用户转账。参见《Token 标准#827》
ERC-721
。 发布于 2017 年 9 月的 ERC-721 与 ERC-20 有很大的区别,如果说 ERC-20 与 ERC-223 ERC-621 能够在使用中自由转换的话,ERC-721 是不可与 ERC-20 Token 互相转换的,因为 ERC-721 拥有唯一性。
在以太坊猫(CryptoKitties)游戏里,用户可以买卖并养育一直数字猫,每一只猫都是唯一的,并且有自己的个性,这里的猫就应用了 ERC-721 标准,这种 Token 依然可以在交易所里交易,只不过无法分割是一个独立的整体。参见《不可替代的Token#721》。
基本的介绍到这里了,可以看到除 ERC-721 的结构特殊之外,其他的标准都是基于 ERC-20 的扩展。也欢迎更多的开发者参与到区块链的更新和维护中来。