在 DeFi 合约中,常见模式是Checks-Effects-Interactions(检查-生效-交互)模式, 不够好,它会让开发者忘记协议的核心不变性。 作者提出了一个新的模式:FREI-PI: 功能检查-生效-交互+协议不变性,让我们更多关注协议的不变性(安全性)。
Checks-Effects-Interactions(检查-生效-交互)
功能检查-生效-交互+协议不变性
本文会涉及到slither中几类call的区别,slither遍历node时的常用的递归框架,以及将这两类知识应用到批量函数调用风险的检测中。
1.理解自杀函数检测自杀函数的风险与应用场景。自杀函数可以做为一种隐藏的transfer的手段。 2.shift汇编函数与其它语言的参数不一致,容易混淆。
Hook 是一个强大功能,可以带来更灵活的组合性。向任何强大的武器一样,使用不当可能会伤害到自己。 当任意调用与 Hook 在一起,更要小心。
09.状态变量覆盖的含义状态变量覆盖是指子类中的状态变量将父类的状态变量进行覆盖,子类和父类使用了相同名称的状态变量。在这种情况下,如果操作子类的状态变量不会修改父类的状态变量,而此时代码的真实意图可能是为了修改父类的状态变量。
1.理解数据依赖性的概念。 2.在源代码分析时,可以从用户的输入跟踪受影响的合约变量。
节点、表达式与IR的是什么样的关系?如何根据代码生如何提取出IR指令?在遍历节点时,有哪些对象经常用到。
比特币钱包软件让你可以在同一个应用中使用许多个 “钱包” 并生成无数个地址。理解 “xPub” 和 “xPriv” 可以帮助你理解这是怎么做到的。
本文详细介绍了Tornado Cash的工作原理,包括零知识证明、Merkle Tree的使用以及如何实现匿名加密货币转账。文章还讨论了Tornado Cash的智能合约架构、合法性问题以及潜在的安全风险。
在本文中,我会简要介绍比特币轻客户端的需要,以及为什么 “致密区块过滤器(compact block filters)” 比 “布隆过滤器(Bloom filters)” 更好地满足了这种需要。然后,我会深入解释致密区块过滤器是怎么工作的,并会附上在测试网上构造这样的过滤器的逐步讲解。
介绍Slither中Function对象常用的方法及应用示例
Contract对象常用方法分析及应用示例
slither API中常用对象结构解析
Yul 入门指南
由于对区块空间的需求不断增加,Web3 应用层现在存在于数百个不同的区块链、二层网络和应用链上。这种现实催生了两个新术语——跨链和多链。在本文中,我们将定义它们的含义,并概述它们之间的差异和独特的优点。
为了让一切都能顺利工作,签名(而不是 哈希值/原像)更有可能让我们满意。
本教程介绍了如何使用Solana命令行界面(CLI)铸造自定义Solana代币,包括创建代币、创建代币账户和铸造代币供应的三个主要步骤。此外,还介绍了其他几种简单快速的铸造代币方法,适合不同用户需求。
在 L2 成为主流后, 在多个L2 的钱包管理是一个需要解决的问题,使用keystore合约和钱包合约分离的架构是一个可行的方式, Vitalik 在文章中探讨了 3 种可能跨链证明方法来实现该架构。
本文是一个针对初学者的指导,详细介绍了如何使用 JavaScript 在 Solana 上创建和发送交易。通过逐步的说明和示例代码,读者可以轻松理解与 Solana 区块链交互的基础流程。
为 DeFi 带来依赖的多样性, 而不是依靠单一的预言机。DeFi 原语应该是零治理、无可升级性、无预言机或任何形式的外部依赖。
扫一扫 - 使用登链小程序
204 篇文章,732 学分
492 篇文章,675 学分
67 篇文章,586 学分
132 篇文章,558 学分
413 篇文章,499 学分