什么是ERC-777代币又有啥作用
扫描二维码
随时随地手机看文章
背景
ERC-777代币来自最初的EIP(以太坊改进建议)——https://eips.ethereum.org/EIPS/eip-777,由Jacques Dafflon、Jordi Baylina和Thomas Shababi编写。名称中的777实际上没有任何意义,只是由于 githubissues的当前索引生成。但是,您不能否认,这是一个让各地开发人员都情有独钟的数字。这个提议的最初动机是提供比当前ERC-20规范具有更少摩擦的事务。如果您在该领域工作的时间足够长,您就会知道维护自己钥匙和钱包的个人之间的交易很容易。您还知道,一旦您偏离了这个简单的用例,事情就会变得更加困难。
ERC-777将如何阻止伤害
以下是我在与以太坊合作时经历过的一些常见事情,以及ERC-777规范将如何为人们提供帮助。
第三方支出-运营商
ERC-20
在典型的ERC-20场景中,如果我想批准第三方帐户或智能合约使用我帐户的代币,我将需要两个事务来执行单个转账。我需要打电话来批准挥金人和他们被授权的支出金额,智能合约或地址将需要执行交易。问题不在于我必须批准这个账户,而在于我必须给它一个支出限制,确保它总是足够我进行交易。
ERC - 777
ERC-777标准希望通过引入运营商的概念来解决第三方支出问题。在服务体系结构中,运营商是一个众所周知的概念,因为它们是具有执行特定任务的特定权限帐户。对于ERC-777代币,运营商有两种类型——常规运营商和默认运营商 常规操符是一个地址,允许代表另一个地址发送和刻录代币。默认运营商是允许所有代币持有者发送和刻录代币的地址。
天然气消费解决方案
在交易所或dApp上使用钱包时,一个常见的问题是支付交易的天然气费。用户不希望或不需要关心是哪个块阻止了他们的事务,只要它是合理的速度就行了。使用“运营商”可以让您作为dApp或交易所所有者来管理消费成本,以维护用户体验。
所有权与支出
ERC20标准的优点之一是有很多代币与之兼容。这为它的开发和用户采用提供了一个很好的生态系统基础。然而,当您拥有以太坊钱包时,每个地址构成一个具有唯一公钥/私钥的帐户,如果您在一个交易所拥有数千名用户,但是您没有该用户资金的私钥,您如何提供结算呢?运营商将是一个很好的用例,因为它并不真正构成所有权,但将允许您为交易结算转移资金。需要注意的是,地址可以在任何时候添加/删除运营商,所以这是一件棘手的事情。
ERC-820合约
操作者的使用最终由另一个合约ERC-820启用。本合约作为一个通用的、无所有者的注册中心,任何帐户/地址都可以在其中检查它们试图发送的代币,以及发送到的目的地是否能够接收/管理这些类型的代币。这似乎是ERC-223的改进,该标准旨在帮助防止用户将代币发送到不兼容的智能合约。在正常的ERC-20用例中,发送方必须发送一个“批准”事务,然后才能将任何PokerCointoken发送到SureThing智能合约。在这种情况下,PokerCoin代币(ERC-777)开发人员只需向ERC-820注册他们的代币,并声明它与PokerCoin合约兼容。任何试图将未注册的pokercoin发送到ERC-820合约中的尝试都将失败。
ERC-777标准的另一个承诺是Hook。它们对我来说仍然有点神秘,但本质上它们将允许开发人员实现在事务执行前/后执行的代码块,以便通过事件发送通知、需要额外的输入、块地址或其他与流程相关的项。
总结
运营商和ERC-820的组合意味着我们知道可以在哪里发送代币,以及委托谁使用代币。作为我们虚构的dApp的用户,我可以放心地将PokerCoin的合约地址设置为“我的运营商”,并且根据开发商在PokerRegistry ERC-820智能合约上的注册,我可以将这些代币发送到的唯一目的地是PokerCoin合约。