375K改进ERC20的原因

对于EOS,Basic Attention Token(BAT)和Storj等基于ERC20令牌的主宰者,很难争辩接口合同的成功。以太坊社区显然已经围绕该标准获得了支持, & 开发者社区和金融市场都积极回应。但是,尽管ERC20标准取得了所有成功,但它导致了一个不太重要的错误:

ERC20令牌标准允许用户将ERC20令牌发送到不符合ERC20的令牌地址,从而导致最终用户蒙受金钱损失.

当用户向无法识别ERC20代币的以太坊合约发送ERC20代币时,该用户将永远失去使用其资金的权限。由于这个问题,目前到底有多少资金被锁定?同样,这不是一个小数目:

  • 310,067 GNT 被困在Golem合同中(目前价值约21.7万美元).
  • 242 REP 被困在Augur合约中(目前价值约$ 15K).
  • 814 DGD 被困在Digix DAO合同中(目前价值约$ 125K).
  • 14,506 1ST 被困在FirstBlood合同中(目前价值约$ 12K).

这些合约中冻结的ERC20代币超过$ 370K +;由于ERC20代币的列表在不断增长,因此该数字很可能保守地低估了合同中冻结的这些代币的总量。上面的列表绝不是详尽无遗的-这些只是更流行的ERC20代币中的一些.

上述任何合同都不会收到任何ERC20令牌-因此,当用户将令牌发送到这些地址时,交易将由网络确认;但是,接收合同无法识别令牌。它不知道如何处理这些代币,从而导致资金永远被锁定。同样,令牌不会被拒绝-接收合同只会完全忽略它们.

这些交易大部分是最终用户无意间执行的, 转移 函数(与之前介绍的自动transferFrom函数相对)。回想一下ERC20同时使用了两个Transfer & TransferFrom-事实证明,某些最终用户正在使用Transfer直接将ERC20令牌发送给意料之外的合同, & 因此无法识别传入的令牌.

最终,以太坊社区的一些成员决定通过请求新的ERC令牌标准来直接解决此问题。 GitHub上此新令牌标准的发行号为#223.

ERC223提案

GitHub用户Dexaran于2017年3月5日提出了新的ERC标准(ERC223),旨在解决此令牌回退失败问题。他的GitHub问题#223新令牌建议的摘要如下:

下面描述了令牌合约和与指定令牌一起使用的合约可以实现的标准功能,以防止将令牌意外发送到合约并使令牌交易像以太交易一样.

Dexaran的令牌提议实现了两个核心功能,以立即阻止分散的应用程序用户意外地将令牌发送给尚未准备好接收所述令牌的智能合约:

  1. 整合ERC20 转移 & 从转移 功能整合为一个 转移 具有三个参数的函数:(地址_to,uint _value,字节数据).
  2. 接收 合同,如果收到代币, 必须 包含一个 TokenFallBack 确切定义如何处理传入令牌类型的函数.

转移 & 从转移 -> 转移

导致此常见问题的ERC20标准的关键部分是,最终用户选择错误地使用了用于传输的两种功能之一(传输 & 从转移).

ERC223建议用一个替换两个功能 转移 功能.

ERC223允许dapp最终用户将令牌发送到 任何 以太坊地址,无论该合约是钱包还是合约,都具有相同的转移功能。这里的逻辑是,通过消除用户触发转移功能的选项 或者 一个TransferFrom函数到一个单独的Transfer函数,最终用户不再有可能使用不正确的函数.

新提出的Transfer函数接受三个参数(以前仅接受两个参数),更重要的是,它看起来要在接收地址上调用TokenFallback函数。没有这三个已定义的参数,Transfer函数将无法编译。没有包含TokenFallback函数的接收地址,传输函数事务将失败 & 没有令牌将被转移.

函数tokenFallBack()

在以太坊开发中,存在合约修改器 应付款 用于准备接收以太币的合同-这意味着合同现在正在使用数字货币。如果有合同 包含应付款修饰符,发送的交易将被取消 & 回来。没什么,这是以太坊101.

关于ERC223 tokenFallback函数的一种类似思考方式是,payable修饰符用于准备接收以太币的合同,因为tokenFallback函数用于准备接收x币的合同.

在此标准中,合同制定者 必须 如果他们希望其合同使用特定的令牌,请实施tokenFallback。如果接收者是非合同地址,则将执行ERC223令牌交易,就像当前任何ERC20令牌传输一样。另一方面,如果接收方是合同,则ERC223令牌合同将首先尝试调用接收方合同上的tokenFallback;如果未找到tokenFallback函数,则事务将失败.

ERC的演变

尽管ERC223的草稿状态很粗糙,但另一个ERC标准迫在眉睫-ERC721。ERC721专注于 不可替代的 CryptoKitties,Decentraland土地等资产, & 甚至一天的房地产资产。 ERC 721的进度可以在这里找到: https://github.com/ethereum/eips/issues/721

所有这些都表明,以太坊社区在年轻时就非常认真地致力于通过在不断增长的新开发人员面前摆放正确的标准来改善其智能合约平台。慢慢地,但是可以肯定的是,ERC代币错误将减少-然后问题将变成最新的标准规模?

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me