不要因为一次攻击,就拒绝使用新技术。
假设有这样一个需求:你为了实现一个伟大的理想,需要筹集100个ETH作为启动资金,所以你发行了一个ERC777代币作为凭证,同时布署了一个众筹合约,你的支持者可以通过众筹合约向你购买代币,兑换比例为1ETH:100ERC777
想必很多同学都已经使用过ERC20 创建过代币,或许已经被老板要求在ERC20代币上实现一些附加功能搞的焦头烂额,如果还有选择,一定要选择 ERC777 。
这篇文章是对ERC777 功能型代币(通证)最佳实践 的一个补充,如果你仅仅是要实现一个自己的 ERC777 代币, 那么阅读另一篇就够了, 如果想对ERC777进行一些自己的定制,那么就有需要对源码有理解。
Hook 是一个强大功能,可以带来更灵活的组合性。向任何强大的武器一样,使用不当可能会伤害到自己。 当任意调用与 Hook 在一起,更要小心。
如果你持有一个ERC777代币,那么你就可以利用ERC777代币中的钩子函数方法,给自己布署一个账本合约来记录自己的账户每一次接收到的代币数量和对方账户等信息.
翻译EIP777提案,提案定义了ERC777 代币合约标准接口。
典型的重入漏洞,分析重入漏洞两板斧:1. 找循环 ,2. 找代币变化。
本文介绍了以太坊中的 ERC777 token 标准。ERC777 试图改进 ERC20 的一些缺点,例如增加了 hooks 和 operators 的概念,并利用 ERC1820 注册合约来实现更灵活的功能。尽管 ERC777 在设计上有所创新,但由于其复杂性和潜在的安全隐患,未能获得广泛应用,最终被认为设计过度。
本文分析了xSushi类似奖励合约中存在的两个潜在漏洞,第一个漏洞与ERC777代币的重入攻击有关,攻击者可以通过在转账前重新进入合约来廉价获取份额。第二个漏洞涉及在有其他用户存款时,首次存款者可以通过操纵交易顺序,使得其他用户的存款份额被舍入为零,从而窃取后续存入的资金。文章还对以太坊上的已部署合约进行了检查,以评估当前是否存在受威胁的资金。
该文档介绍了 OpenZeppelin Contracts 库中与 ERC777 代币标准相关的接口和合约。它涵盖了核心合约(IERC777、ERC777)以及用于开发对代币转账做出反应的合约的接口(IERC777Sender、IERC777Recipient),并提供了对每个接口和合约中函数的详细描述,包括功能、参数、事件和使用要求。
本文档介绍了OpenZeppelin Contracts库中的预设合约,这些合约集成了不同的以太坊标准,包括ERC20PresetMinterPauser、ERC721PresetMinterPauserAutoId、ERC1155PresetMinterPauser、ERC20PresetFixedSupply 和ERC777PresetFixedSupply等,并具有自定义扩展和模块,展示了常见的可直接部署的配置,适用于快速原型设计、测试和生产环境。
ERC777的特点
ERC777代币标准使用 防范风险
ERC777与ERC20兼容(兼容的意思就是ERC777的功能包括了ERC20的所有功能,实现兼容的方式就是,让ERC777直接继承IERC20接口。),同时引入了operator操作员的概念。