市值: $2.6906T 0.59%
成交额(24h): $84.6845B 15.37%
恐惧与贪婪指数:

71 - 贪婪

  • 市值: $2.6906T 0.59%
  • 成交额(24h): $84.6845B 15.37%
  • 恐惧与贪婪指数:
  • 市值: $2.6906T 0.59%
加密货币
话题
百科
资讯
加密话题
视频
热门加密百科

选择语种

选择语种

选择货币

加密货币
话题
百科
资讯
加密话题
视频

如何审计智能合约? (安全基础知识)

Smart contract security requires combining static analyzers (Slither, MythX), manual review for reentrancy/access control, and rigorous testing—automated tools alone can’t catch logic flaws or novel attacks.

2026/02/25 19:00

了解智能合约漏洞

1. 当恶意合约在状态更改完成之前反复回调易受攻击的合约时,就会发生重入攻击,从而意外耗尽资金。

2. 当算术运算超过 uint256 的最大值或最小值时,会发生整数上溢和下溢,导致不正确的平衡或逻辑旁路。

3. 如果返回值未经验证,未经检查的外部调用可能会导致静默失败,从而允许执行在传输或函数调用失败的情况下继续进行。

4. 不当的访问控制使未经授权的用户能够调用特权功能,例如仅限所有者的升级或代币铸造。

5. 当关键状态转换依赖于可预测的交易顺序时,抢先交易就成为可能,从而暴露了拍卖或闪电贷套利等敏感操作。

静态分析工具及其作用

1. Slither 无需执行合约即可分析 Solidity 源代码中的常见反模式和漏洞,从而提供快速且可扩展的检测。

2. MythX 与 IDE 和 CI/CD 管道集成,以执行符号执行和基于模糊测试的分析,识别更深层次的逻辑缺陷。

3. Solhint 通过标记不一致的可见性说明符、缺少 require 语句和不安全的低级调用来强制执行编码标准和最佳实践。

4. Crytic 的 Echidna 使用以 Solidity 编写的自定义断言进行基于属性的测试,验证数千个生成输入的不变量。

5.并行使用多个静态分析器可以显着增加覆盖范围——没有一个工具可以捕获所有类别的错误。

手动代码审查要点

1. 跟踪所有外部调用并验证它们是否发生在状态更新之后,特别是在提现或转账功能中。

2. 确认所有用户提供的输入在影响存储或发出事件之前都通过 require 或 revert 语句。

3. 检查回退和接收函数是否存在意外行为,特别是在处理 ETH 传输以及复杂逻辑时。

4. 检查硬编码地址、幻数或未版本化的库链接,这些链接可能会影响再现性或引入隐藏的依赖项。

5.每个修饰符都必须经过可重入安全性、副作用以及与其他修饰符的可组合性审核。

单元检查之外的测试方法

1. 集成测试模拟多个已部署合约之间的交互,以暴露接口不匹配和意外的 Gas 消耗模式。

2. 模糊测试将随机输入注入公共函数,以触发单元测试经常遗漏的边缘情况行为。

3. 基于属性的测试定义了高级不变量,例如“总供应量永远不会减少”或“余额不能为负”,并在不同的场景中验证它们。

4.像Sepolia和Arbitrum Goerli这样的测试网提供了真实的环境,可以观察现实世界的气体动态和网络拥塞。

5. 必须在模拟区块时间戳操作下测试与时间相关的逻辑,以确保延迟或未来调度期间的正确性。

常见问题解答

问:我可以仅依靠自动化工具进行智能合约审计吗?答:不能。自动化工具可以检测已知的模式,但无法评估业务逻辑的正确性、经济激励或需要人类直觉和领域知识的新颖攻击向量。

问:在零知识证明合约的背景下,“可信设置”意味着什么? A:指初始生成zk-SNARK验证所需的密码参数;如果受到损害,它就会破坏健全性保证并允许伪造的证明通过验证。

问:为什么我应该避免使用 tx.origin 进行授权检查?答:因为 tx.origin 返回启动交易链的原始 EOA,因此很容易通过中间合约进行网络钓鱼,这些合约在保留原点的同时转发调用。

问:委托调用漏洞与常规调用漏洞有何不同?答:Delegatecall 在调用合约的上下文中执行代码,这意味着目标中的存储布局不匹配或未初始化的变量可能会直接破坏调用者的状态。

免责声明:info@kdj.com

所提供的信息并非交易建议。根据本文提供的信息进行的任何投资,kdj.com不承担任何责任。加密货币具有高波动性,强烈建议您深入研究后,谨慎投资!

如您认为本网站上使用的内容侵犯了您的版权,请立即联系我们(info@kdj.com),我们将及时删除。

相关百科

什么是 DAI?它与 USDT 有何不同?

什么是 DAI?它与 USDT 有何不同?

2026-09-08 17:00:22

市场波动模式1. 自2021年以来,Bitcoin超过68%的交易日在24小时窗口内价格波动超过15%。 2. 在流动性较低的时期,尤其是在 02:00 至 06:00 UTC 期间,以太坊表现出比 Bitcoin 更高的日内波动性。 3. 稳定币脱钩事件(例如 2023 年 3 月的 USDC 事...

为什么稳定币会失去 1 美元的挂钩?

为什么稳定币会失去 1 美元的挂钩?

2026-09-08 02:00:03

储备构成和透明度差距1. 许多稳定币声称完全由现金或短期美国国债支持,但储备披露往往缺乏实时验证机制。 2. 第三方证明可能仅每季度进行一次,从而留下较长的窗口,使不匹配的资产负债结构仍未被发现。 3. 一些发行人持有的商业票据或逆回购协议存在未反映在公共资产负债表中的交易对手风险。 4. 链下银行...

什么是加密货币中的自我托管以及为什么它很重要?

什么是加密货币中的自我托管以及为什么它很重要?

2026-09-10 04:19:32

定义和核心机制1. 自我保管是指个人保留对其私钥的完全控制权,而不将该权力委托给任何第三方服务的做法。 2. 自我托管钱包的服务器上不持有资产;相反,它提供了一个使用本地存储的加密密钥与区块链网络交互的接口。 3. 用户的设备(无论是智能手机、台式机还是硬件模块)托管种子短语和私钥,并且在正常操作期...

什么是闪电网络? Bitcoin 交易如何变得更快?

什么是闪电网络? Bitcoin 交易如何变得更快?

2026-09-08 07:00:16

闪电网络核心架构1. 闪电网络作为直接构建在 Bitcoin 区块链之上的第二层协议运行,完全依赖 Bitcoin 的加密安全模型,无需引入新的共识规则。 2. 使用2-of-2多重签名地址在参与者之间构建双向支付通道,双方必须共同签名才能将资金移出通道。 3. 每个通道都通过链上融资交易进行初始化...

什么是加密预言机?区块链如何获取真实世界的数据?

什么是加密预言机?区块链如何获取真实世界的数据?

2026-09-08 19:20:07

定义和核心功能1. 加密预言机是一种可信的第三方服务,充当区块链网络和外部数据源之间的桥梁。 2. 它获取、验证链下信息,并将其传递给部署在链上的智能合约,例如价格、体育比分、天气状况或 API 响应。 3. 如果没有预言机,智能合约将与现实世界的事件隔离,无法执行依赖于外部触发器的逻辑。 4. 预...

Bitcoin 与莱特币:主要区别是什么?

Bitcoin 与莱特币:主要区别是什么?

2026-09-08 20:20:11

起源和基础架构1. Bitcoin 于 2009 年出现,作为首个去中心化加密货币,建立在使用 SHA-256 哈希算法的工作量证明共识机制之上。 2. 莱特币于 2011 年作为 Bitcoin 开源代码库的直接分支推出,但用 Scrypt 取代了 SHA-256,有意提高了早期 ASIC 主导地...

什么是 DAI?它与 USDT 有何不同?

什么是 DAI?它与 USDT 有何不同?

2026-09-08 17:00:22

市场波动模式1. 自2021年以来,Bitcoin超过68%的交易日在24小时窗口内价格波动超过15%。 2. 在流动性较低的时期,尤其是在 02:00 至 06:00 UTC 期间,以太坊表现出比 Bitcoin 更高的日内波动性。 3. 稳定币脱钩事件(例如 2023 年 3 月的 USDC 事...

为什么稳定币会失去 1 美元的挂钩?

为什么稳定币会失去 1 美元的挂钩?

2026-09-08 02:00:03

储备构成和透明度差距1. 许多稳定币声称完全由现金或短期美国国债支持,但储备披露往往缺乏实时验证机制。 2. 第三方证明可能仅每季度进行一次,从而留下较长的窗口,使不匹配的资产负债结构仍未被发现。 3. 一些发行人持有的商业票据或逆回购协议存在未反映在公共资产负债表中的交易对手风险。 4. 链下银行...

什么是加密货币中的自我托管以及为什么它很重要?

什么是加密货币中的自我托管以及为什么它很重要?

2026-09-10 04:19:32

定义和核心机制1. 自我保管是指个人保留对其私钥的完全控制权,而不将该权力委托给任何第三方服务的做法。 2. 自我托管钱包的服务器上不持有资产;相反,它提供了一个使用本地存储的加密密钥与区块链网络交互的接口。 3. 用户的设备(无论是智能手机、台式机还是硬件模块)托管种子短语和私钥,并且在正常操作期...

什么是闪电网络? Bitcoin 交易如何变得更快?

什么是闪电网络? Bitcoin 交易如何变得更快?

2026-09-08 07:00:16

闪电网络核心架构1. 闪电网络作为直接构建在 Bitcoin 区块链之上的第二层协议运行,完全依赖 Bitcoin 的加密安全模型,无需引入新的共识规则。 2. 使用2-of-2多重签名地址在参与者之间构建双向支付通道,双方必须共同签名才能将资金移出通道。 3. 每个通道都通过链上融资交易进行初始化...

什么是加密预言机?区块链如何获取真实世界的数据?

什么是加密预言机?区块链如何获取真实世界的数据?

2026-09-08 19:20:07

定义和核心功能1. 加密预言机是一种可信的第三方服务,充当区块链网络和外部数据源之间的桥梁。 2. 它获取、验证链下信息,并将其传递给部署在链上的智能合约,例如价格、体育比分、天气状况或 API 响应。 3. 如果没有预言机,智能合约将与现实世界的事件隔离,无法执行依赖于外部触发器的逻辑。 4. 预...

Bitcoin 与莱特币:主要区别是什么?

Bitcoin 与莱特币:主要区别是什么?

2026-09-08 20:20:11

起源和基础架构1. Bitcoin 于 2009 年出现,作为首个去中心化加密货币,建立在使用 SHA-256 哈希算法的工作量证明共识机制之上。 2. 莱特币于 2011 年作为 Bitcoin 开源代码库的直接分支推出,但用 Scrypt 取代了 SHA-256,有意提高了早期 ASIC 主导地...

查看所有文章

User not found or password invalid

Your input is correct