夏日将尽:以太坊的ERC-777能否顺利取代ERC-20?
ERC-20是以太坊团队在2015年推出的适用于所有代币智能合约的单一标准,同时也是世界上最受欢迎的代币标准。而几月前以太坊团队承诺将会推出一个新的代币标准— ERC-777 —来全面取代ERC-20。这很大程度上是因为ERC-20存在一个无法消除的漏洞,即由于不正确操作而导致代币资产永远消失在智能合约中。为了解决这个漏洞带来的巨大损失,以太坊开发者创建了基于一个智能合约的中心化注册表的ERC-777。这一新的标准除了可以预防代币损失之外,同时也意在进一步开发以太坊区块链,且可以向后兼容ERC-20,是对代币发行流程的又一次简化。
夏天的结束是定下个人目标的好时机。我们不妨借着夏日最后的明媚阳光回顾这个夏天的重大事件,例如,Jordi Baylina、Jacques Dafflon 和Thomas Shababi承诺推出的已经准备好的ERC-777代币标准,它旨在取代目前世界上最受欢迎的代币标准,ERC-20。7月20日,Baylina在于柏林举行的DappCon论坛上做出了这个承诺。按照传统,人们在这个论坛上讨论与以太坊区块链相关的重要举措、工具和更新。开发者表示ERC-777已经做好发表准备,并且将于8月全面推出。
然而,8月来了又去,围绕着建立基于以太坊区块链的新标准的最新尝试,开发团队似乎依旧保持沉默,又或者他们正在默默酝酿一个大惊喜。虽然自7月以来在GitHub上就没有发布任何与ERC-777相关的更新,但我们或许可以从上周Baylina发布的一条推文中找出即将发布的新标准的蛛丝马迹。现在,让我们回过头来更好地了解这这个项目的背景。
为什么我们需要改变世界上最受欢迎的代币标准?这个标准是世界上最大的交易所之一Binance的交易代币以及超过6万个项目的基础,其中包括资本超过45亿美元的EOS。为了回答这个问题,我们需要比较现有标准和新标准,然后评估其应用风险。
以太坊成功史
尽管比特币被认为是世界上最受欢迎的加密货币,以太坊却不仅仅是第二大受欢迎的加密货币,它还是带来2016到2017年加密货币市场繁荣景象的区块链。如果没有以太坊平台,就永远不会出现“to the moon”这一短语,加密货币由此在几个月内从极客们的一种娱乐转变成了面向传统投资人和数百万普通人的新工具。
以太坊区块链的主要优点包括极简的应用程序开发过程以及通过智能合约实现的无障碍代币发行流程。现在,任何人都可以在一分钟内创建,也就是发行一种加密货币。这种便捷性导致了ICO的爆炸式增长。另一个可以进一步推动ICO市场的发展的工具则是一种简单的代币标准,由此就孕育出了ERC-20。
ERC-20代币标准
在标准化之前,以太坊开发人员必须为每一个代币创建一个独立的基于Solidity开发语言的智能合约。实际上,这意味着每一次都需要创建一个新的、独一无二的智能合约类型。而交换所或者钱包的创始人不得不为每一种新代币编写独一无二的编码来支持它们。出现的代币越多,这个过程的难度就越大。此外,在各自专属的智能合约上发行的代币彼此间几乎不兼容。
以太坊开发者创建了一种适用于所有代币的单一标准—ERC-20,ERC代表了“以太坊征求意见(Ethereum Request for Comment)”,而20则是GitHub的社区发行号码,这是随机的。
2015年,这个单一标准的出现彻底改变了加密货币行业,成为了该行业的核心指导方针,规范了在每个智能合约里需要执行的功能和事务。新货币的发行、兑换和变现从未如此简单。
该标准包含了智能合约的六个强制参数,并且负责三个主要方向:
1.设置代币的初始分布:
totalSupply — 决定了发行代币总量,在达到该数字后,智能合约将停止发行代币。
balance0f — 将初始数量的代币分配给任一地址的功能。
2.转移代币:
transfer — 根据ICO结果将初始地址的代币转移到指定地址的功能。
transferFrom — 在用户间转移代币的功能。
3.执行管理职能:
approve — 核实一个智能合约上可转移的代币额的功能。
allowance — 确定一个地址拥有足够代币以便向另一个地址转移代币的功能。
一旦制定了该标准,交易所和钱包就能够统一代码,以便处理用ERC-20协议创建的任何代币。正如预期的那样,采用以太坊技术的未来应用程序随之剧增。
ERC-20标准背后的挑战
去中心化网络的开发者首先是程序员,之后才是商人。因此,在决策过程中,他们几乎总是遵循形式逻辑。例如,一些开发人员可能不太关心“51%的黑客攻击”,或是因为币种本身贬值,或是因为攻击成本可能会超过黑客获得的利润。但似乎这种攻击的组织者有着完全不同的逻辑,2018年大量新的黑客攻击已经证明了这一点。
另外,对开发人员来说代币的功能只有在ICO发行中才是不可或缺的,他们并不在乎其他服务。事实证明并非如此,一些团队,甚至那些谈不上编程的团队,也开始探索区块链的可能性。举例来说,这也带来了为了娱乐效果而创建的代币,例如以太坊Useless token。
而其他的自定义功能甚至可能破坏用户安全性。例如,一些开发人员通过同时执行“approve”和“transferFrom”功能来实现充值交易所账户的操作。资金从发送者的账户中扣除,但未记入他们在交易所的资产负债表中,因为接受者的智能合约的存款功能尚未确定。问题是,以太坊开发者没有提供这种转账方式的选项,但也没有禁止它,而区块链从一开始就不支持合约的自定义功能。因此,加密货币的持有者损失了数百万美元,这些钱都永远地消失在网络中了,因为如果这笔资金的转账者没有马上取消这笔未完成的交易,这些代币就会消失。
安全审计员Dexaran注意到了这个漏洞,于是他开发了ERC-223标准,在其中添加了“tokenFallback”这个功能。一旦“transferFrom”功能未能执行,这个新功能就会被触发。然而,尽管有了这项新发明,这个由不具名的程序员开发的功能却未被广泛接受。
6月,在Solidity更新后,Lucas Cremer发现了该标准的另一个漏洞,他是一名来自德国的Solidity开发者。事实证明,在执行transfer功能的价值返回时,很大比例的ERC-20代币,也就是作者所说的“坏代币”,以另一种方式运作。这些代币合约的transfer功能没有返回任何值。实际上,受到影响的代币中包括Binance和OmiseGO平台上的代币。Corner指出,人们应该关注的是,这类资产可能会以一种不可预测的方式开始执行操作,他还警告称这个漏洞必须被“尽快”修复。
ERС-777:对ERC-20的一记重拳
由于成千上万的代币、交易所和钱包都和ERC-20有着紧密的联系,它的漏洞是不可消除的,因此以太坊开发者们已经决定推出一种新的标准,而其名字的灵感则源自于幸运数字777。
ERC-777的以太坊改进协议(EIP)于2017年11月20日发布并获得了社区的批准。但是,为了充分发挥作用,新标准需要一个辅助型的ERC-820协议,该协议规定了完成统一的智能合约注册的原则。这个中心化的注册表解决了以太坊区块链的主要问题,即无法决定合约执行的职能的问题。
它现在如何运作?任何具有职能描述的合约都可以一劳永逸地被输入注册表;并且,在执行交易时,区块链可以通过注册表来核查允许执行的操作。如果用户尝试支付代币执行无效操作,代币会被保留在账户中而不会再消失。
在柏林的Dappcon论坛上,Jodi Baylina 和Jacques Dafflon利用一个新术语“hook”来定义“在转移代币期间可以执行的功能”,从而解释了这个新标准的具体内容。这些功能和ERC-820协议一起提供了一种在ERC-20标准中缺乏的,简单但细节化的内省。因此,我们就可以核实一个代币是否携带有具体的特征以执行或者拒绝某项操作,使智能合约更加智能。当接收者的合约并不支持某类资产的接收或管理时,新的ERC-777标准解决了接收者代币丢失的问题。以太坊社区已经由于这个漏洞损失了数百万美元。很大一部分资金似乎已经永远卡在了一些最高级ICO项目的合约里。以下是一些例子:
然而,预防由不正确的交易导致的代币损失并非是这项新标准的唯一创新,其目的还在于进一步开发以太坊区块链。
例如,ERC-777的创建者第一次嵌入了一个“可信运算符(trusted operator)”,它可以代表所有者转移或者销毁代币。这是通过执行“授权运算符(authorizeOperator)”函数实现的,举例来说,它可以被用于执行ETH的即时自动支付。
此外,这个标准还允许你通过ITokenRecipient函数检查接收人的地址是否支持“白”或“黑”名单。且上述“hooks”操作还帮助实现了不同情境下对代币操作的监视,使你能够屏蔽特定地址,同时执行一系列其他操作,包括发送者和接收者对交易过程的干预。
如果你还想了解关于ERC-777的更多细节,你可以访问以太坊的GitHub上的相关帖子。
ERC-20的谢幕
ERC-777标准向后兼容ERC-20,同时所有基于旧标准的项目都可以无缝转移到新的标准中。我们可以假设通过旧标准执行代币操作的交易所和钱包,将对ERC-777的引入作出积极反应,后者最终将终结以太坊区块链中的传奇性“漏洞”。事实上,这将意味着在新标准中发行代币流程的简化,这可能会造成加密货币业活动的又一次激增,且与2016-2017年的热潮不相上下。
此外,新标准大大扩展了以太坊区块链系统的功能性,这将吸引开发人员的注意。围绕新标准的激烈讨论就是最好的证明。
最后,ERC-777标准涵盖了经过彻底修改、再设计的功能和逻辑,将避免和其他代币标准的交叉以及在执行智能合约时出现混淆。
谈到ERC-777的缺点,确实有一个:它依赖于一个智能合约的中心化注册表,这在区块链的去中心化意识形态中并非是一种理想的方案。这就需要以太坊开发者们通过其它方法来确保注册表的安全性。
一位加密货币方面的知名油管博主“Ivan on Tech”称,他确信ERC-777的成功不过是时间问题,即使实际上以太坊基金会彻底注销ERC-20的过程可能会很慢:
“展望未来,以太坊基金会确实需要支持ERC-777,它会取代ERC-20,因为它具有更出色的性能。因此,问题在于以太坊基金会依旧有相当的影响力,而他们目前在推广的还是ERC-20。这是他们目前推广最多的内容。但是,将来的情况可能是我们会转向ERC-777。”
或许,一个新的、充满潜力的代币标准将会为以太坊网络以及ETH的发展提供新的推动力,尤其是ETH自7月起已经跌至新低: 194美元。在此之前,既然GitHub正保持沉默,似乎除了等待以太坊团队完成他们的工作,我们也没有更好的选择。至少,我们都知道他们对此十分擅长。
作者: Julia Magas | 编译者:Maya | 来源:cointelegraph
微信扫描关注公众号,及时掌握新动向
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场