什么是ERC777代币,以及它与ERC20代币的不同之处

时间:2024-03-13 13:39:31

什么是ERC777代币,以及它与ERC20代币的不同之处

 

ERC777代币介绍

与以太坊生态系统中广泛采用的ERC20标准不同,ERC777标准通常被称为城里的新生儿。一个潜力巨大的孩子。有些人甚至声称ERC777标准是ERC20标准的有效继承者。ERC777标准规范在EIP777(以太坊改进提案文件中有详尽描述。

在这篇博文中,我们将探讨这些大胆的主张是否合理,并与ERC20标准相比,对ERC777的优势(以及一些缺点)进行深入概述。

ERC777解决了哪些ERC20的问题?

假设您希望允许第三方帐户(或合约)使用您的代币。最常见的需求是在使用去中心化交易所智能合约交易代币时。

此过程中的第一步是你需要通过调用ERC20智能合约上的approve方法函数来批准转账账户并设置他们有权获得的资金限额。除了用你的资金信任第三方之外,你还需要确保支出限额始终足以满足所需的交易。

ERC777运营商

ERC777标准通过引入运营商的概念来解决上述问题。像往常一样,运营商是某些具有执行特定任务权限的帐户。在ERC777标准下,有两类运营商:

  1. 默认运营商
  2. 指定运营商

一个指定运营商是允许代表另一个地址发送和销毁代币的地址。 一个默认运营商是允许代表所有代币持有者发送和销毁代币的地址。

 

任意ERC777代币持有者地址可以通过调用authorizeOperator方法函数授权给一个指定运营商获得权限。与此类似,任意ERC777代币持有者都可以通过调用revokeOperator方法函数撤运营商地址的授权(包括默认运算符)。

在易代币的ERC777实现中, 默认运营商是用于部署代币的地址。

利用运营商功能的另一个小的(并且不太明显的)好处是用户不再需要担心交易费Gas价格。现在可以将其委托给运营商。

ERC777挂钩 - 一个额外的安全机制

ERC777挂钩是与转账方和接收方帐户绑定(挂钩)的代码段。实质上,它们是智能合约实例:

  1. IERC777Sender接口有一个函数tokensToSend
  2. IERC777Recipient接口有一个函数tokensReceived

 

这两个接口的智能合约的地址实例存储在ERC1820注册表中,与它们“挂钩”的地址配对。

如果转账地址在注册表中具有匹配的IERC777Sender实例,则在执行交易之前将调用其tokensToSend函数。如果未找到匹配的实例,则转移交易将照常进行。

如果接收地址在注册表中具有匹配的IERC777Recipient实例,则在执行交易后将调用其tokensReceived函数。如果接收地址是普通地址且未找到匹配的实例,则转账将照常进行。但是,如果收件人地址是合约地址,并且未找到匹配的实例,则将取消转账交易

在下图中,你可以看到“挂钩”转账调用的流程。

什么是ERC777代币,以及它与ERC20代币的不同之处

因此,挂钩的引入使我们能够增强ERC777代币的转账功能,即使在部署代币之后也是如此。它还提供了取消交易的可能性,如果此交易未满足某些条件。

ERC777的缺点

ERC777的新功能确实带来一些小缺点:

  1. 由于它使用挂钩,转账交易费用略高
  2. 持有代币需更谨慎的审查,因为你必须信任你选择的运营商

 

使用易代币创建你自己的ERC777代币!

ERC777代币生成工具