如果你对加密货币有所了解,大概率听说过 ERC-20 标准。但 ERC-777 又是什么?它是另一种以太坊代币标准吗?答案是肯定的,而且它还与 ERC-20 密切相关。
ERC-777 可视为 ERC-20 标准的最新升级版本,是目前应用最广泛的代币标准的进化形态。虽然表面上看只是技术规范的调整,但对于计划开发区块链项目的开发者而言,理解两者的异同至关重要。
本文将深入解析 ERC-777 的核心机制、独特优势、潜在风险及实际应用场景,助你全面把握这一重要标准。
什么是 ERC-777 代币标准?
ERC-777 是以太坊区块链上推出的同质化代币标准。它在 ERC-20 的基础上开发而成,旨在以全新方式与代币合约交互,同时保持向后兼容性。
该标准不仅支持在网络中创建新的同质化代币,还显著简化了复杂的代币交易交互流程,消除了在铸造(minting)、销毁(burning)和小数位处理上的模糊地带。实现这一功能的核心,在于其独特的“钩子(hook)”机制。
钩子机制的工作原理
ERC-777 的钩子功能使得智能合约、操作者及地址能够感知即将发生的交易,从而控制或拒绝接收/发送特定代币。主要包含两个钩子:
- tokensReceived:由接收账户实现,在代币到账时触发
- tokensToSend:由发送账户使用,在代币转出前触发
通过设置钩子来接受或拒绝特定代币,接收方可以降低收到不兼容代币类型的概率,从而避免资产意外损失。
ERC-777 的操作方式与以太币(Ether)类似:用户通过“发送”功能转移代币,到达目标地址后触发“接收”代码。正是在这个过程中,ERC-777 与 ERC-20 的区别变得明显。
在 ERC-20 标准下,代币从一个智能合约流向另一个合约,只有发行者能在智能合约内进行更改。而 ERC-777 的调用不能多次执行,这提高了安全性和效率。
该标准还利用了 ERC-820 来实现合约元数据注册,支持基本自省功能,进一步增强了向前和向后兼容性,同时添加了新特性。
ERC-777 的 8 大核心优势
除了标志性的钩子机制外,ERC-777 还具备以下优势:
- 采用与以太币相同的 send (dest, value, data) 方法发送代币
- 任何合约和常规地址都可设置 tokenReceived 钩子,代币收到时即触发,避免了 ERC-20 要求的双重调用
- 注册 tokensToSend 功能让智能合约和地址能够控制并最终拒绝发出的代币
- 同样地,注册 tokenReceived 功能使其能够控制并拒绝接收的代币
- 代币持有者可授权和撤销操作者来管理其代币,这些操作者可以是经过验证的合约(如交易所)、支票处理器或自动收费系统
- 所有代币交易都包含 userData 字节字段,操作者交易中还包含 _operatorData_,发送方和操作者均可无限制地使用它们向接收方传递数据
- 即使是不支持 tokensReceived 功能的钱包,也能以向后兼容的方式实施 ERC-777 标准
向后兼容性:与 ERC-20 的无缝协作
向后兼容性意味着 ERC-777 代币可以与 ERC-20 代币无缝交互,没有任何摩擦或限制。这使得在接受 ERC-20 的任何场景中,都可以使用 ERC-777 代币。
因此,ERC-777 标准确保了现有 ERC-20 生态系统不会被打乱。一个代币合约甚至可以同时采用两种标准。尽管某些功能可能无缝重叠,但 ERC-777 还有一些必须遵循的额外规则和功能。
ERC-777 和 ERC-20 的状态修改功能是解耦的,因此它们可以独立运行。然而,ERC-20 功能应仅限于旧合约的调用。
对于实现 ERC-20 标准的新合约,新钩子(_tokensToSend_ 和 tokensReceived_) 的功能优于 ERC-20。当代币收到 _transfer 和 transferFrom 调用时,合约必须检查地址是否实现了钩子。如果实现了任一钩子,就必须调用它。
如果调用 ERC-20 合约上的 transfer 选项而未使用 tokenReceived_,则必须接受 _transfer 调用,即使它可能被锁定。
如果未使用 tokenToSend 钩子,则不会采取特定操作。但是,只有在不满足条件时(例如资金不足)才能取消移动。
EIP 在验证 ERC 标准中的角色
EIP(以太坊改进协议)是一个正式的系统,用于提出对以太坊区块链网络的新升级、功能和更改。
它就像是整个以太坊社区的市政厅,任何成员都有机会创建 EIP,详细说明建议修改的规格。因此,EIP 可被视为一种公告板,供以太坊研究人员、开发者和普通用户审查和讨论,然后集体决定前瞻性流程。
EIP 有三种主要类型:标准跟踪(Standards Track)、元(Meta)和信息(Informational)。每种类型都有自己的子类型,其中之一就是以太坊意见征求(ERC)。
ERC 是一个协议,用于提出和标准化以太坊网络上的新智能合约和代币标准。在提出生态系统更改和升级方面,它们与 EIP 非常相似,但有几个显著差异。
与 EIP 不同,ERC 专门专注于确定新的智能合约和代币标准。与 EIP 相比,ERC 不需要网络所有参与者的一致批准。
ERC 标准为以太坊平台上使用的新代币或智能合约生成规则和规范。这些通常包括同质化或非同质化代币的名称和符号、小数位和总供应量。通常是开发者提出 ERC,但社区的任何成员也可以提出。
以太坊意见征求具有深远的意义,因为它提供了一种标准化方法来设计区块链上的新智能合约和代币。这进一步使这些新项目与其他基于以太坊的应用程序集成更顺畅、更易访问。
👉 查看实时代币工具
ERC-777 的潜在风险与挑战
ERC-777 带来了新的增强功能,使代币在交互时更加响应迅速。然而,这一标准也伴随着一定的风险和挑战。
即,ERC-777 标准可能容易受到各种攻击。因此,许多开发者建议改用 ERC-20 标准。关键问题似乎是智能合约容易受到 DOS(拒绝服务)攻击,这主要是由于钩子和回调机制。
前面已经提到,钩子是 ERC-777 升级的核心。它们让外部智能合约在代币转移发生之前或之后进行干预。然而,这可能是一把双刃剑,因为它为恶意行为打开了大门。
以下是 ERC-777 代币可能被滥用于 DOS 攻击的一些潜在场景:
- 恶意代币接收者:外部用户执行 DOS 攻击并从智能合约转移代币
- 代币分配:ERC-777 代币分发给多个用户
- 回调恢复:恶意行为者编程智能合约恢复交易,从而阻止智能合约的进一步执行
- Gas 消耗:恢复交易会消耗 Gas。由于以太坊实施 Gas 费用,这可能导致宝贵资源的浪费,进一步影响网络的效率
为了减轻漏洞,有必要进行审计和安全检查。如果需要,开发者可以包含锁以防止单次交易中的多次进入。最后但同样重要的是,建议始终检查最终余额是否符合预期余额。
如何获取 ERC-777 代币
如前所述,ERC-777 是在以太坊网络上创建同质化代币的标准。因此,一些 ERC-777 的示例包括但不限于 Bancor (BNT)、MakerDAO (MKR) 和 Loopring (LRC)。
这些代币可以通过多种方式获取,就像任何其他标准的代币一样:
- 中心化和去中心化交易所:多个 DEX 和 CEX 支持这些代币,并将其纳入可交易资产列表。DEX 基于点对点交易,提供更高的匿名性。另一方面,CEX 可能提供更高的流动性,但需要创建账户并提交身份证明
- 空投:关注(新)区块链项目和代币分发事件可能会让你获得新代币。一些项目向早期支持者或特定代币的持有者免费空投代币
- ICO 和代币销售:首次代币发行和代币销售是通过投资少量资金筹集资本的完美机会。参加这些活动可能会让你在早期阶段获得 ERC-777 代币
- 点对点交易:最后但同样重要的是,点对点(P2P)交易可能是获取新代币的便捷方式。你只需要在自己的网络中寻找卖家并设置钱包,就可以购买 ERC-777 代币了
请记住,要获取 ERC-777 代币,你需要有一个兼容的以太坊钱包(例如 MetaMask)来存储和管理你的代币。此外,始终进行尽职调查并彻底研究资产——这将为你节省时间和金钱。
常见问题
ERC-777 与 ERC-20 的主要区别是什么?
ERC-777 引入了钩子机制,允许在代币转账前后执行特定操作,提供了更精细的控制能力。同时保持了与 ERC-20 的完全向后兼容性,使两种标准的代币可以无缝交互。
ERC-777 如何提高交易安全性?
通过 tokensReceived 和 tokensToSend 钩子,用户和合约可以主动控制接收和发送的代币类型,避免意外接收不兼容或恶意的代币,从而减少资产损失的风险。
为什么 ERC-777 容易受到 DOS 攻击?
钩子机制允许外部合约在转账过程中执行代码,这为恶意行为者提供了机会,他们可以通过设计恶意合约来 revert 交易或消耗大量 Gas,从而破坏正常业务流程。
普通用户如何识别 ERC-777 代币?
用户可以通过以太坊区块浏览器查看代币合约的代码标准,或查阅项目官方文档。常见的 ERC-777 代币包括 Bancor、MakerDAO 和 Loopring 等知名项目。
ERC-777 适合哪些应用场景?
该标准特别适合需要复杂交互逻辑的 DeFi 应用、自动化支付系统、代币化资产管理平台等场景,其中需要对代币流转有更精细化控制的用例。
如何确保 ERC-777 代币的安全存储?
建议使用支持该标准的官方钱包或经过验证的硬件钱包,定期更新软件版本,并仅从官方渠道获取合约地址,避免网络钓鱼和欺诈风险。
核心要点
ERC-777 同质化代币标准因其允许更复杂的代币交易交互而脱颖而出。作为 ERC-20 的扩展,ERC-777 与其向后兼容,可以与它交互而不是取代它或使其过时。
该代币标准因其“发送”和“接收”钩子而突出,这些钩子使用户对代币交易有更多控制权。正是这些钩子将 ERC-777 与其他代币标准区分开来,并使其成为 ERC-20 的升级版。
与所有同质化和非同质化代币标准一样,ERC-777 也有其自身的优势和挑战。主要好处是钩子和向后兼容性,它们实现了众多功能。然而,该标准容易受到 DOS 攻击,可以通过仔细的审计和安全检查来预防。