以太坊ERC20VS.ERC223VS.ERC777!以太坊是一个用于分散式应用程序的全球开源平台。使用以太坊人们可以编写完全按照程序运行的代码,控制数字值并且可以在世界任何地方访问。以太坊于2015年推出,它是世界领先的可编程区块链。开发人员可以在以太坊上构建新型的应用程序。以太坊是互联网新时代的基础它建立在不受任何公司或个人控制的开放式中立基础架构之上。
1.什么是以太坊令牌?
以太坊代币是建立在以太坊区块链之上的数字资产。这些可能代表从诸如黄金的实物到像Golem之类的本国货币(用于支付交易费用)的任何事物。将来,它们也可能代表债券和股票等金融工具。他们受益于以太坊的现有基础架构,因为开发人员无需构建全新的区块链。他们通过驱动对以太坊的本币以太币的需求来增强以太坊生态系统,而以太坊则是推动智能合约发展的动力。智能合约是自动执行的合约,买卖双方之间的协议条款直接写入代码行中。
在本文中我们将比较三个以太坊令牌,即ERC-20,ERC-223和ERC-777。以太坊开发人员通常会提交“以太坊改进提案”(EIP)。然后以太坊社区审查EIP并提供评论和建议,这可能会引发一些返工。在以太坊社区接受EIP后,它成为标准,我们称之为“以太坊征求意见”。ERC-20是这样一种以太坊令牌标准。这是一个著名的令牌标准,已被所有使用以太坊平台的ICO使用。默认情况下,开发人员使用它来创建新令牌。钱包和交易所很容易接受这些令牌。在ERC-20令牌发布之前,以太坊开发人员必须为他们的令牌设置规则,而这种方法缺乏标准化。ERC-20令牌更加标准化。
开发以太坊令牌时ERC-20标准规定的功能
使用“总供应量”功能获得代币的总供应量。
从另一个所有者帐户检索令牌余额。
将令牌发送到另一个所有者帐户。这些是“EOA”帐户。为此,我们使用传递函数。
将令牌从一个地址发送到另一个地址。令牌地址是合同地址。为此,我们将使用“transferFrom”功能。
允许另一个帐户在指定的限制内重复从您的帐户中提取资金。为此,我们使用“批准”功能。
通过使用配额功能,支出者可以将未使用的令牌返还给所有者。
2.燃烧令牌的ERC-20错误
尽管ERC-20令牌总体上有完整的文档记录和良好的实施方式,但ERC-20令牌标准仍存在错误。该错误已烧毁了价值数百万美元的代币。使用转移功能您只能将令牌发送到EOA帐户。如果您使用“转移”功能将会看到成功的交易,但是合同将永远不会收到代币。这将永久性地燃烧令牌并且无法检索令牌。通过使用错误的功能,几个用户永久失去了令牌!
3.ERC-223令牌标准-针对ERC-20错误的建议解决方案
ERC-223令牌标准是由以太坊开发人员开发的,该开发人员使用Reddit用户名“Dexaran”。他提出将其作为ERC-20错误的解决方案。
4.ERC-223令牌标准草案提出了以下解决方案:
它将以太坊区块链上的交易视为事件。
如果用户使用“转账”功能,它将显示错误并随后取消交易。
尽管用户支付以太坊“汽油价格”,但他不会丢失任何代币。
检查接收地址是否是合同帐户的附加参数被添加到“转账”功能。
如果发现收件人地址是合同帐户而不是EOA帐户,则假定合同已实施“tokenFallback”。
使用“toeknFallback”函数,我们可以回调令牌,以使事务不会燃烧令牌。
尽管ERC-223功能在很大程度上解决了ERC-20错误,但该建议存在一个弱点。如果接收方智能合约不具有“tokenFallback”功能,则将运行“Fallback”功能,从而导致令牌丢失。
5.ERC-777的建议包括以下内容:
引入的新功能是“发送”而不是“转移”,“授权操作员”而不是“批准”,以及“tokensReceived”而不是“tokenFallback”。
到目前为止,开发人员无法识别智能合约可以实现的功能。另一个称为ERC-820的令牌标准已在网络上实现了合同的中央注册。因此,现在有可能知道智能合约的接口和功能。ERC-777使用它来识别智能合约使用的接口。现在,开发人员将事先知道合同是否具有接收通过某些功能发送的令牌所需的功能。
使用ERC-777可以将运营商“列入白名单”。因此,以太坊网络用户现在将能够拒绝来自黑名单地址的付款。由于诸如非法活动历史和试图入侵网络之类的原因,地址可能被列入黑名单。
您现在将能够理解,在这三个令牌中,ERC-777令牌为开发人员提供了多种选择来防止令牌丢失。但是,ERC-777标准还具有以下风险:
一些以太坊开发人员认为“authoriseoperator”功能已被弃用。因此开发人员不应该使用它。此功能将需要更多的“气体”,这将给网络带来更多压力。
使用智能合约的中央注册表来查找合约使用的接口是有风险的。中央注册表可能存在错误,任何依赖它的内容都会产生不利影响。
只有时间会告诉以太坊生态系统将哪种标准作为“黄金标准”。作为开发商,您的主要责任是保护交易者和投资者的资金。如果您接受这种负责任的立场,您可能会同意,尽管存在风险,仍必须采用并实施ERC-777标准。