# 解析——ERC777有什么用？

By [加密劲旅——葛见圣](https://paragraph.com/@btcus) · 2022-03-24

---

**ERC777**由\* Jacques Dafflon、Jordi Baylina Thomas Shababi\*于2017年11月20号创建,这是一种兼容ERC20标准的高级代币标准，主要提供了一些新的功能：运营商及钩子。

该代币标准在保留向后兼容ERC20的前提下定义了一种与代币合约交互的新方式，它定义了一些与代币合约交互的新特征，即运营商功能，通过此功能能够允许第三方账户代表某一**合约或者地址**进行代币的发送交易；以及提供钩子功能，给该**合约或者地址**对其账户中的代币更多的控制权，防止运营商作恶，同时可以定义地址或者合约对某些代币进行控制以及提供拒绝接收某些代币功能。

此处的运营商的意思是可以允许第三方地址对你的账户或者对某一合约进行一定权限的访问使用，例如一般的转账交易，合约的交互，且由运营商支付费用。举两个实用案例如下：

1.有些朋友有多个以太坊钱包地址，不管是用于薅空投还是分批管理自己的代币资产；这样的情况下有时候会遇到这样的情况，即多个地址中只有一个地址具有ETH，别的地址都没有ETH，当需要对没有ETH的钱包地址进行代币交易或者转账时候，一般情况下只能通过向这些地址发送一些ETH作为手续费，然后进行转账操作，这样的过程相对而言繁琐，且会耗费一定的手续费。而ERC777的运营商功能允许某个地址充作其它地址的运营商，即多个地址的持有人可以将自己唯一一个有ETH 的地址作为其它地址的运营商，当其它地址需要转移代币时，可以直接由有ETH的地址代为操作，及由运营商地址控制，且手续费由运营商地址出，实际转移代币的地址无需支付手续费，这样的情况大大降低了重复多个钱包地址之间切换的冗余操作。

2.又如，某区块链公司的老板使用某种基于ERC777的A代币作为工资发放，公司账户一共有500万的A代币，而经过人事的计算，本月共应发总工资为200万代币A，那么公司老板就可以将财务的以太坊钱包地址作为运营商，并授权200万 A代币的使用权限，那么财务便有权限使用公司地址500万中的200万 A代币，并且对于公司来说，其余的金额是安全的。

而钩子的是可以对运营商的权限做一定的限制的：

1.如公司老板可以通过钩子规定运营商对公司账户中授权的200万A代币的走向做一个限制，规定只能转向某些已经标名备注了的地址，例如公司全体员工地址，以及限定单笔可发送的最大值等等。

2.钩子功能同样还能提供拒绝接受代币的功能，例如，拒绝接受某种代币发送至公司地址，等等。

另外此标准提出的运营商有两种类型，一种是1.指定运营商。2.默认运营商。指定运营商是指授权另一个地址发送以及销毁代币的地址。默认运营商市值允许代表所有代币持有者发送和销毁代币的地址，即代币部署的地址。

ERC777标准兼容ERC20，除了以上问题之外，还解决了ERC20转账至合约账户丢失代币的问题，即代币不小心转账至合约账户，由于ERC20合约没有定义接收代币的功能，而又无法返还代币，导致代币被卡在合约中无法取出，导致发送者丢失代币，ERC777如同ERC223一般，也解决了这个问题，即当ERC777代币不小心转至合约地址时，会被退回，从而免于丢失。

综上，ERC777的代币特征如下：

1.提出并实现了运营商功能以及钩子功能。

2.解决了代币误转丢失的问题。

3.兼容ERC20代币标准。

但是ERC777目前存在较多问题，发生过被攻击事件，慎用。

_以上内容仅供分享，不做投资意见_

本文内容如有不正确之处，敬请指出。

更多内容分享：

---

*Originally published on [加密劲旅——葛见圣](https://paragraph.com/@btcus/erc777)*
