本文详细介绍了智能合约审计的概念、流程、常见漏洞、gas 优化以及常用工具。智能合约审计是对智能合约代码进行详细分析,以预先识别安全漏洞并找到防止恶意行为者利用的解决方案,并消除低效的编码实践,确保智能合约的安全、可靠和高效运行。
定义
智能合约审计是对智能合约代码的详细分析,旨在先发制人地识别安全漏洞,找到防止恶意行为者利用的解决方案,并消除低效的编码习惯。
智能合约审计在整个 DeFi 生态系统中使用,以提供对协议代码的深入审查,帮助识别错误、低效代码以及这些问题的解决方案。智能合约 必须是防篡改的,这至关重要,因此审计是任何区块链项目安全流程的关键部分。
代码审计对于任何应用程序都很重要,但对于去中心化应用程序(dApp)尤其重要,因为它们构建在其之上的区块链是不可变的。如果代码漏洞导致用户资金损失,则无法取回这些资金。迄今为止,超过 50 亿美元 在 DeFi 中因黑客攻击而损失。
在本文中,我们将研究智能合约审计的实际含义、如何进行审计、需要注意的常见智能合约漏洞、Solidity gas 优化策略、流行的审计工具等等。
截至 2023 年 2 月 20 日,DeFi 中因黑客攻击造成的总损失价值为 51.3 亿美元。
智能合约审计涉及对协议的智能合约代码进行详细分析,以识别安全漏洞、不良编码实践和低效代码,然后确定解决这些问题的方案。审计有助于确保Web3 中去中心化应用程序的 安全性、可靠性和性能。
在智能合约审计期间,安全专家团队将审查应用程序的代码、逻辑、架构和安全措施,以使用自动化和手动流程来识别任何潜在问题。他们专门寻找可能容易受到恶意攻击的任何代码区域,以及任何需要改进的区域。
智能合约代码最终将部署到诸如 Avalanche、BNB Chain 或 Ethereum 之类的区块链上。一旦合约生效,所有人(从最终用户到恶意行为者)都可以访问它们,这就是为什么在启动或更新去中心化应用程序之前必须解决所有漏洞的原因。
审计完成后,审计员会发布一份摘要报告,其中提供有关他们的发现、如何解决这些发现以及任何其他问题的详细信息,以及解决未解决问题的路线图。在经过全面的智能合约审计之后,项目可以放心地部署其合约,因为应用程序的完整性是安全的并且用户资金受到保护。
智能合约安全和审计101 - YouTube
Chainlink
14.8万订阅者
Chainlink
搜索
信息
购物
点按取消静音
如果稍后没有开始播放,请尝试重新启动设备。
你已退出帐号
你观看的视频可能会被添加到电视的观看历史记录中,并影响电视推荐内容。要避免这种情况,请在你的计算机上取消并登录 YouTube。
取消确认
分享
包含播放列表
检索分享信息时出错。请稍后重试。
稍后观看
分享
复制链接
在以下设备上观看
0:00
/ •直播
•
智能合约审计利用各种技术和工具来缓解薄弱环节并使协议更加强大。
被审计的项目必须启动代码冻结,并向审计员提供技术文档,包括代码库、白皮书、架构和任何其他相关材料。该文档应向审计员提供代码旨在实现的目标、其范围以及确切实现方式的高级指南。
自动化测试也称为形式验证引擎,它会检查智能合约的每种可能状态,并针对可能破坏合约功能或安全性的问题发出警报。审计员还可以进行集成测试、对单个函数进行单元测试以及探测安全漏洞的渗透测试。
安全专家团队会仔细检查每一行代码,识别错误和漏洞。虽然自动化测试非常适合识别代码中的错误,但人工工程师更有能力检测合约逻辑或架构问题、技术上正确并通过自动化测试的不良编码实践、gas 优化机会以及诸如抢先交易之类的常见攻击的薄弱环节。
每个错误都会根据其可能导致利用的严重程度进行分类:
审计员起草一份初步报告,其中总结了代码缺陷和其他问题,以及关于项目团队如何修复这些问题的反馈。一些智能合约服务提供商拥有一支专家团队,可以帮助修复发现的每个错误。通过解决所有问题,项目可以确保其智能合约已准备好部署。
审计员在详细的最终报告中包含所有发现,并将所有问题标记为已解决或未解决。该报告将提供给项目团队,并且通常会公开,以便协议的用户和其他利益相关者具有完全的透明度。
以下是当前智能合约审计清单中的常见漏洞。
当智能合约函数调用不受信任的外部合约时,可能会发生重入攻击,从而使该外部合约能够通过递归调用原始合约来耗尽用户资金或进行其他恶意操作。
当智能合约执行算术运算并输出一个超过当前存储容量的数字时,可能会发生整数溢出或下溢,从而导致不正确的计算。
结构不良的代码可能会泄露有关 dApp 未来购买的信息,其他用户可以抢先交易这些信息,从而以牺牲协议为代价来锁定有保证的利润。
重放攻击发生在恶意延迟或重复数据以破坏接收者的情况下,尤其是在硬分叉事件期间,在该事件中,更新系统上的消息用于从旧系统中提取资金。
如果 dApp 使用公开已知的数字(例如区块哈希)来播种随机数,则它很容易受到攻击,这就是为什么许多协议都使用 Chainlink VRF 来实现随机性的原因。
打算设为私有的函数必须定义为私有,因为 Solidity 中的默认可见性属性是公共的。如果是公共的,则任何人都可以调用该函数。
中心化会引入单点故障,如果单个私钥或类似项受到威胁,则可能会破坏协议的安全性。时间锁和授予 DAO 特权是处理中心化风险的常用技术。
Solidity 有许多编译器版本。dApp 应该锁定它们使用的编译器版本,以便用户无法使用不同的版本对其进行编译,这可能会导致不同的字节码和意外的复杂情况。
Gas 指的是在 Ethereum 网络上执行特定操作所需的费用。Gas 优化是使智能合约代码的执行成本更低的过程,随着项目扩展并需要更多 gas 才能运行,这变得越来越重要。它还有助于防止恶意滥用协议。
Solidity gas 优化技术包括:
高级智能合约安全和审计工具 - YouTube
Chainlink
14.8万订阅者
Chainlink
搜索
信息
购物
点按取消静音
如果稍后没有开始播放,请尝试重新启动设备。
你已退出帐号
你观看的视频可能会被添加到电视的观看历史记录中,并影响电视推荐内容。要避免这种情况,请在你的计算机上取消并登录 YouTube。
取消确认
分享
包含播放列表
检索分享信息时出错。请稍后重试。
稍后观看
分享
复制链接
在以下设备上观看
0:00
/ •直播
•
流行的智能合约安全审计工具包括:
智能合约审计通常花费 5,000 美元到 15,000 美元,尽管这可能会因代码复杂性和技术支持要求而更高。
智能合约审计员必须对软件工程有深入的了解,了解特定于特定区块链环境的语言,例如 Ethereum 的 Solidity,并了解去中心化金融等关键垂直领域。审计员通常赚取 10 万美元到 25 万美元之间,有些人的收入超过40万美元。
通过清理代码库、收集所有文档,然后冻结代码来为智能合约审计做准备。在本 Hacken 的帖子 中了解更多信息。
完成智能合约安全审计的时间取决于代码的大小和复杂性。虽然简单的Token合约可以在 48 小时内完成审计,但完整的去中心化应用程序可能需要数周时间才能完成审计。
观看 智能合约审计公司 Cyfrin 的联合创始人 Patrick Collins 和安全研究员 Tincho 演练 他们准确的审计流程,该流程获得了 100,000 美元的漏洞赏金,以及 Patrick 的漏洞赏金教程,其中介绍了查找智能合约漏洞的顶级策略。
如果你正在寻找审计员推荐,请随时 联系我们的技术专家。
Chainlink VRF 支持的 35 多个区块链 RNG 用例
Chainlink VRF 支持的 35 多个区块链 RNG 用例
- 原文链接: chain.link/education-hub...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!