在 DeFi 合约中,常见模式是Checks-Effects-Interactions(检查-生效-交互)模式, 不够好,它会让开发者忘记协议的核心不变性。 作者提出了一个新的模式:FREI-PI: 功能检查-生效-交互+协议不变性,让我们更多关注协议的不变性(安全性)。
Checks-Effects-Interactions(检查-生效-交互)
功能检查-生效-交互+协议不变性
本文会涉及到slither中几类call的区别,slither遍历node时的常用的递归框架,以及将这两类知识应用到批量函数调用风险的检测中。
1.理解自杀函数检测自杀函数的风险与应用场景。自杀函数可以做为一种隐藏的transfer的手段。 2.shift汇编函数与其它语言的参数不一致,容易混淆。
Hook 是一个强大功能,可以带来更灵活的组合性。向任何强大的武器一样,使用不当可能会伤害到自己。 当任意调用与 Hook 在一起,更要小心。
09.状态变量覆盖的含义状态变量覆盖是指子类中的状态变量将父类的状态变量进行覆盖,子类和父类使用了相同名称的状态变量。在这种情况下,如果操作子类的状态变量不会修改父类的状态变量,而此时代码的真实意图可能是为了修改父类的状态变量。
比特币钱包软件让你可以在同一个应用中使用许多个 “钱包” 并生成无数个地址。理解 “xPub” 和 “xPriv” 可以帮助你理解这是怎么做到的。
在本文中,我会简要介绍比特币轻客户端的需要,以及为什么 “致密区块过滤器(compact block filters)” 比 “布隆过滤器(Bloom filters)” 更好地满足了这种需要。然后,我会深入解释致密区块过滤器是怎么工作的,并会附上在测试网上构造这样的过滤器的逐步讲解。
Yul 入门指南
由于对区块空间的需求不断增加,Web3 应用层现在存在于数百个不同的区块链、二层网络和应用链上。这种现实催生了两个新术语——跨链和多链。在本文中,我们将定义它们的含义,并概述它们之间的差异和独特的优点。
为了让一切都能顺利工作,签名(而不是 哈希值/原像)更有可能让我们满意。
在 L2 成为主流后, 在多个L2 的钱包管理是一个需要解决的问题,使用keystore合约和钱包合约分离的架构是一个可行的方式, Vitalik 在文章中探讨了 3 种可能跨链证明方法来实现该架构。
为 DeFi 带来依赖的多样性, 而不是依靠单一的预言机。DeFi 原语应该是零治理、无可升级性、无预言机或任何形式的外部依赖。
以太坊的下一次升级主要是引入了EIP4844(Proto-danksharding), 这篇文章介绍了Proto-danksharding 是如何降低大幅 Rollup 的成本, 以及他有哪些局限性。
2023 领先的区块链数据 API 服务
如何创建 零知识证明并在Solidity 合约中验证
使用好 NatSpec 注释规范,可以帮助开发者为智能合约创建更有效的文档。
Cicada:一个新的、开源的 Solidity 库,利用时间锁谜题和零知识证明来实现私人链上投票。
zellic 整理在审计过程把不断地看到Bug ,方便我们审视自己的Move合约。
理清账户抽象的关键概念, 以及为什么 ERC-4337 很重要
闪电网络可以说是比特币有史以来最具影响力的重量级创新技术。它能够以高效且低成本的方式进行交易,无需占用任何链上空间,同时又能完全保留比特币的抗审查和免信任特性。
扫一扫 - 使用登链小程序
58 篇文章,253 学分
108 篇文章,209 学分
15 篇文章,173 学分
58 篇文章,163 学分
17 篇文章,157 学分