安全性是加密货币领域的一个重要且困难的挑战,它具有双重性。一方面,开发者寻求价格合理、值得信赖且随时可用的安全解决方案来辅助智能合约的创建。另一方面,用户被大量财务安全漏洞的新闻轰炸,这给广泛采用设置了障碍。构建者和消费者都需要一个明确的机制来确保加密货币领域的安全性。

本文深入探讨了处于智能合约演进不同阶段的项目的安全需求,并指出模糊测试,特别是实时链上模糊测试,是解决这些问题的主要工具。


智能合约的安全需求

让我们看看产品开发不同阶段对智能合约代码安全的不同需求:智能合约启动前、智能合约启动期间和智能合约启动后

智能合约部署不同阶段需要安全审计的概览


智能合约启动前阶段

在启动前阶段,主要需求是能够快速、经济且可靠地检查代码安全性或进行部分代码渗透测试的按需服务。

当前的集成开发环境(IDE)工具提供基本的调试功能,主要检测语法错误,而不解决业务逻辑缺陷。一些团队尝试利用静态应用程序安全测试(SAST)工具——这在传统软件开发中很常见——但这些工具并非专门为状态丰富的智能合约开发的独特环境而设计,可能会忽略潜在的漏洞。

另一种选择是在开发过程的早期聘请安全审计公司,定期审查每个开发里程碑的代码。然而,此类服务速度慢、成本可能很高,而且这些公司可能缺乏在整个开发阶段提供一致安全审查的能力。

鉴于这些挑战,我们主张将模糊测试作为代码开发期间按需安全检查的最佳解决方案。覆盖率引导的模糊测试可以大大帮助识别代码漏洞。

然而,本地部署的模糊测试工具可能无法检测到与其他协议交互中的漏洞。交易持续改变智能合约的状态,因此我们需要从区块链快速检测状态变化,以识别跨协议状态利用。这需要对传统模糊测试算法进行创新调整,以满足链上模糊测试的需求。**Fuzzland 开发的创新工具 Ityfuzz** 就是此类进步的典范,稍后将介绍。


智能合约启动阶段

当项目接近部署时,他们通常会聘请安全审计公司进行全面的代码审查,该公司的批准成为协议安全性对用户的事实保证。然而,有些情况下,安全审计未能识别所有漏洞,为未来的安全漏洞留下了空间。导致这种表现不佳的几个因素包括:代码复杂性、不断演变的黑客范式、人为错误和时间限制

**链上模糊测试审计可以通过解决这些人为限制来补充传统代码审计。**项目可以专门为链上模糊测试审计部署智能合约的私有版本。这允许全面测试智能合约对区块链上各种输入和状态变化的响应,在实时环境中发现漏洞。