比特大师:8号技师
"对于标准来说,最好的事情莫过于大量的人都去选择使用它。"—— Andrew S. Tanenbaum
以太坊上的代币,大家听说最多的可能就数ERC20了,作为第一代数字代币标准,ERC-20为那些使用以太坊区块链网络的代币项目做出过巨大贡献,自发明ERC20以来,它就成为以太坊上使用最多、最广的代币标准。
但是现在,ERC20代币标准受到了它"出生"以来最大的挑战,因为以太坊推出了一个全新的"改进版"代币标准ERC777,将用于在其区块链上发布代币,并带来了一系列全新的特性和功能。
ERC20称王的时代
ERC即是Ethereum Request for Comments的首字母简写,直译为以太坊征求意见,通常理解为以太坊开发者的协议提案或代币标准。
ERC有很多版本,但是自2015年ERC20诞生之日起,ERC20就成为最广为人知和应用最广的代币标准。ERC20最牛逼的地方在于它提供了一键发币的功能,并且允许钱包、交易所和其他智能合约以一种便捷的方式对接各种代币。(几乎所有支持以太币的钱包,包括Jaxx、MEW、imToken等,都支持 erc-20的代币)。
在ERC20标准之前,各种各样的token并不具有统一的规范,因此彼此独立,很难产生交集。而基于ERC20协议的token具有统一的规范,并且可以在不同的DApps上工作。ERC20规范可以让token更兼容,ERC20的标准化使得该类型的token非常具有优势,因为这些token可以应用于不同的平台和项目。
数字货币交易所也可以很容易地整合这些代币,这些代币可以很方便的进行交易,方便了token的价值流转和价值实现。ERC20协议简洁的发币过程,便利的代币交易通道,为2017年ICO的火爆提供了良好的基础条件。
ERC20的缺陷
虽然ERC20优势很大,也凭借这些优势实现了"垄断",但它也有一些重大缺陷,只不过人们暂时找不到更好的协议来替代它。
当ERC20代币钱包用户向钱包用户发送token时,不会出现问题;但当钱包用户向智能合约发送token时,这些token会永远消失。如果用户不知道这一点,出现操作失误,将会造成token的丢失。
ERC20里有两种操作代币转账的方法,分别是针对账户和智能合约地址。我觉得这里可以理解成个人账户,和一个有智能合约代码的"对公账户":
1.从你的账户把token发到别人的账户,用"Transfer"方法。
2.从你的账户把token发到一个智能合约地址,需要连续调用两个方法:"approve "和"transferFrom"。也就是两步:
a. 授权(approve):我允许这个智能合约账户来转我的token
b. 转币(Transfer):从我的账户转xxx token过去
这看起来没什么问题,但如果有人在操作的时候,不小心在一个"私对公"的转账功能里面,错用了"Transfer"呢?下面的错误就会发生:
举个例子,假设A把代币从钱包转到B智能合约,假设A转代币的时候错用了Transfer,结果就是A的余额减少了,而B那边其实收到了币,但由于使用了错误的转账方法,没有显示到账。
ERC777的优势
在ERC20之后,提出过很多新的提案,来试图改进它,如ERC223、ERC677。但是它们要么会出现新的重大漏洞,要么只是略对ERC作了修改,并无实质上的创新。直到ERC777的出现,才看到了新时代来临的曙光,ERC777标准将允许代币持有者获得更多的控制权和更容易的交易。
降费提速:在ERC777标准中,一些高级交易——比如在去中心化交易合约中进行代币兑换——能够在一次交易中完成,而不是像过去那样分成两笔交易才能完成,这样的话,不仅代币兑换成本大幅降低(更便宜),而且兑换速度也能变得更快。
向后兼容:ERC777兼容与ERC20兼容的所有应用程序,包括EtherDelta,IDEX,0x等。它具有ERC20所有的功能,同时还有附加功能
避免代币丢失:ERC777相对于ERC20的另一个优势是,防止以太币生态系统中不必要的加密货币损失。因为与ERC777兼容的地址能够拒绝某些特定类型的Token传入事件,例如来自黑名单地址的Token传入事件。
支持发送数据:ERC777可以像以太坊那样发送交易数据,调用智能合约的功能,使得可以使用超出以太坊本地可定制容量的Token。
如今,加密货币日益激烈的竞争不断促成新协议的发展,这些新标准的引入将帮助开发者解决现有协议中的各种问题,比如安全漏洞、低效率等等。对于以太坊而言,每一个新标准的出现,也都带来了更高级的函数集合。当时间来到2018年,我们可以看到新协议到来的时机已经成熟,ERC777很可能会成为下一个被广泛应用的协议。
精彩评论