绝大多数的区块链创业团队都在以太坊(Ethereum)上开发自己的项目,并使用以太坊网络发行自己的代币(Token),代币发行的标准需要遵从以太坊代币标准(ERC-Token Standard),这篇文章就帮你梳理一下以太坊的各种代币标准。
什么是以太坊代币标准(ERC-Token Standard)?
建立在以太坊网络上的区块链项目代币,需要遵从以下几种代币标准:ERC-20,ERC-223,ERC-621,ERC-721,ERC-827。其中 ERC 是 Ethereum Request for Comments 的简称,直译过来是 以太坊注释请求,本身这是一个包含结构化信息的网络指令。ERC-Standard 是由以太坊社区定义出来,用户和以太坊网络进行交互的规则。但本身这个标准并不是一尘不变的,社区开发者可以提出自己定义的新标准,但是这个标准需要被整个以太坊社区接纳才能应用在以太坊网络上。下面逐一介绍一下达成共识的 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 的扩展。也欢迎更多的开发者参与到区块链的更新和维护中来。
注:本文主要内容翻译自 https://blog.bankex.org/token-standards-80ee04c4be50
网友评论