您是从事加密项目的以太坊开发人员吗?您可能会使用ERC20标准来开发新令牌,但是,您需要了解改进工作。这将帮助您对使用哪种ERC令牌标准做出正确的决定,因此在本文中我将解释ERC777与ERC223与ERC20的比较.
我将以对ERC 20的解释开始进行比较,随后将解释它的缺点。然后,我将通过ERC 777和ERC 223解释以太坊社区所做的改进工作.
ERC20与ERC223与ERC777之间的比较
什么是ERC 20?
在比较ERC 20与ERC 223与ERC 777之前,我需要解释什么是ERC,以及ERC20代表什么。以太坊开发人员通常会提交“以太坊改善提案”(EIP)。以太坊社区审查EIP,发表评论,这可能会引发一些返工.
以太坊社区接受EIP之后,它成为标准,然后我们将其称为“以太坊请求评论”(ERC)。 ERC 20是这样一种以太坊代币的标准.
ERC 20是最著名的以太坊令牌标准,并且几乎所有使用以太坊平台的ICO都使用了它。开发人员默认使用它来创建新令牌,而钱包和交易所轻松接受ERC 20令牌.
在ERC 20之前,以太坊开发人员必须专门设置规则以遵循其令牌,并且这种方法缺乏标准化。现在有了ERC20,以太坊开发人员知道他们将只需要使用ERC 20标准即可。自2017年以来,这种标准化在推动ICO热潮中发挥了重要作用.
在“入门指南:什么是ERC20?”中阅读有关ERC 20标准的更多信息。.
什么是ERC 20标准功能?
ERC 20标准在开发以太坊令牌时规定了以下功能:
- 获取令牌的总供应量:您需要使用“ totalSupply”功能.
- 检索另一个所有者帐户的令牌余额.
- 将令牌发送到另一个所有者帐户:您需要使用“转移”功能。这些帐户是EOA帐户.
- 将令牌从一个令牌地址发送到另一个。令牌地址是合同地址,您需要使用“ transferFrom”功能.
- 允许另一个帐户在指定的限制内重复从您的帐户中提取资金。您应该为此使用“批准”功能.
- 支出者可以使用“津贴”功能将未使用的令牌返还给所有者.
燃烧令牌的ERC 20错误
尽管ERC 20标准的文档记录和实施总体上非常完善,但它存在一个错误,并且已经烧毁了价值数百万美元的代币。 “转移”功能仅允许您将令牌发送给其他所有者,即EOA帐户.
如果您想向智能合约账户(即以太坊账户的另一种形式)汇款,则需要使用“ approve”和“ transferFrom”组合。如果使用“转移”功能将令牌发送到智能合约,您将看到成功的交易,但是合约将永远不会收到令牌.
这会永久燃烧这些令牌,而您将无法检索它们。几个用户使用了错误的功能将令牌发送到智能合约,并永久丢失了令牌!
以太坊基金会知道该错误,但仍在继续推广ERC 20标准。我不知道他们这样做的原因。他们可能不理解问题的实质,或者存在抵制变革的阻力.
ERC223令牌标准:针对ERC 20错误的建议解决方案
以Reddit用户名“ Dexaran”命名的以太坊开发人员提出了EIP 223,并提供了针对此ERC 20错误的解决方案。在比较ERC 20与ERC 223与ERC 777之前,我将首先解释他的建议.
ERC223令牌标准仍是草案,以太坊社区尚未实施。它提出以下解决方案:
- 它将以太坊区块链上的交易视为事件,并使用“事件处理”概念.
- 如果用户使用“转移”功能将令牌发送到智能合约,它将引发错误,并随后取消交易.
- 用户支付以太坊“汽油价格”,但不会丢失任何代币.
- 该提议在“转账”功能中增加了一个附加参数,以检查收款地址是否为合同账户。.
- 如果发现收件人地址是合同帐户而不是EOA帐户,则假定合同已实施“ tokenFallback”.
- “ tokenFallback”功能允许回调令牌,因此交易不会燃烧任何令牌.
尽管ERC223在很大程度上解决了ERC 20错误,但该建议中存在一个弱点。如果接收方智能合约没有“ tokanFallback”功能,则将运行“ Fallback”功能,从而导致令牌丢失.
只有少数几个项目使用ERC 223,例如 AmigoCoin项目. 您可以在以下网址中阅读有关ERC 223提案的更多详细信息: GitHub EIP 223存储库. 此标准也称为ERC 23.
ERC777标准:解决ERC 20错误的改进建议
为防止由于ERC 20错误而导致令牌丢失的改进建议是ERC 777建议。它包括以下内容:
- 新功能:“发送”而不是“转移”,“ authoriseOperator”而不是“批准”,以及“ tokensReceived”而不是“ tokenFallback”.
- 长期以来,以太坊平台一直存在缺陷,因为开发人员无法识别智能合约实现的功能。 ERC 820(即另一种标准)已在网络上实现了合同的中央注册,因此现在可以知道智能合同的功能和接口。 ERC777使用它来识别智能合约使用的接口。现在,开发人员将预先知道合同是否具有接收通过某些功能发送的令牌所需的功能。.
- ERC 777允许运营商“白名单”,因此以太坊网络用户现在可以拒绝从黑名单地址付款。地址可能会由于多种原因而被列入黑名单,例如企图入侵网络,非法活动的历史.
您可以在ERC 777与ERC 20与ERC 223的比较中看到,ERC777如何为开发人员提供多种选择,从而可以防止令牌丢失。但是,ERC777标准还存在一些风险,如下所示:
- 一些以太坊开发人员认为不赞成使用“ authoriseOperator”功能,因此开发人员不应使用该功能。此功能还将需要更多的“气体”,这将给网络带来额外的压力.
- 使用智能合约的中央注册表来查找合约使用的接口是有风险的。中央注册表可能存在错误,任何依赖于此的注册表都会产生不利影响.
ERC777仍是草案,但是, 奥卡 令牌使用它。阅读提案 EIP 777 GitHub存储库.
ERC 777 vs ERC 20 vs ERC 223:保护资金很重要
虽然只有时间能说明以太坊生态系统将接受哪种标准作为“黄金标准”,但作为开发人员,您需要记住,保护交易者和投资者的资金是您的责任。如果您担任这种负责任的职务,您可能会同意,尽管很复杂,但仍应实施和采用ERC 777标准.
注意:如果您想了解更多有关一些关键ERC标准的信息,请阅读“您需要了解的ERC标准终极清单”.