智能合约安全审计
摘要
智能合约安全审计还可以对项目的智能合约进行详细分析。这些措施对于保障合约投资资金非常重要。由于区块链上的所有交易都是最终交易,因此一旦资金被盗将无法找回。通常情况下,审计员会检查智能合约的代码,生成一份报告,并将报告交予项目组使用。然后会发布一份最终报告,并详细说明所有悬而未决的错误,以及为解决性能或安全问题所做的工作。
导语
智能合约安全审计在去中心化金融 (DeFi) 生态系统中十分普遍。如果您投资了区块链项目,那么您的决定可能在一定程度上会受到智能合约代码审查的影响。
虽然大部分人都明白审计对网络安全的重要性,但深入研究一行行代码的却寥寥无几。我们来看一下智能合约安全审计中常用的方法、工具和结果,方便您做出更明智的决定。
什么是智能合约审计?
智能合约安全审计会对项目的智能合约代码进行检查和评论。通常情况下,这些合约会用 Solidity 编程语言编写,并由 GitHub 提供。若 DeFi 项目要处理的区块链交易价值数百万美元或有大量参与者,则安全审计尤其有价值。审计通常遵循以下四个步骤:
1. 将智能合约提供给审计组进行初步分析。
2. 审计组将他们的发现提交给项目组,供其采取行动。
3. 项目组根据发现的问题进行修改。
4. 审计组会将新的修改和悬而未决的错误考虑在内,然后发布最终报告。
对于许多加密用户而言,在投资新的 DeFi 项目时,智能合约审计不可或缺。它已经成为了重要项目的标准。某些审计机构也成为了行业领导者,提高了其审计工作在投资者眼中的价值。
我们为什么需要智能合约审计?
大量的价值通过智能合约进行交易或锁定在智能合约中,它们极易成为黑客攻击的目标。即使小小的编码错误也可能导致巨额资金被盗。例如,以太坊区块链上的 DAO 黑客攻击夺走了价值约 6000 万美元的以太币,甚至导致了以太坊网络硬分叉。
由于区块链交易无法撤销,因此确保项目代码的安全至关重要。区块链技术的高度安全性使得事后难以取回资金和解决问题,因此最好不惜一切代价预防可能出现的漏洞。
智能合约审计是如何运作的?
智能合约审计的过程在审计机构之中相当标准。虽然每个审计员的方法可能略有不同,但一般的流程如下所示:
1. 确定审计范围。智能合约和项目规范是由项目(其预期目的)和整体架构定义的。项目规范有助于审计组在编写和使用代码时了解项目目标。
2. 根据所需的工作量提供初步报价。
3. 运行测试。其确切性质将根据审计组、他们的分析工具和方法而改变。通常情况下,会采用手动和自动两种测试方式。
4. 创建包含了所发现错误的报告初稿,提供给项目组以获得反馈和后续修正。
5. 考虑团队为解决提出的问题所采取的行动,然后发布最终报告。
智能合约审计
燃料效率
智能合约审计并不只关注区块链安全,还着眼于效率和优化。有些合约会通过一系列复杂的交易来完成预期功能。由于以太坊这样的网络燃料费用相对较高,高效的合约可以节省大量交易成本。
优化其性能也是开发人员的一项技能指标。低效的步骤会存在更多的故障点,应尽量避免。燃料成本很高时,智能合约可能无法执行,使用燃料低成本限制时更是如此。
合约漏洞
审计中的大部分工作涉及检查合约的安全漏洞。虽然一些问题很容易看到,但许多漏洞运用了先进的技术和策略来抽走资金。例如,市场操纵可以结合弱势智能合约进行闪电贷款攻击。为了发现这些问题,审计员会开始破译测试过程,模拟对智能合约的恶意攻击。常见漏洞包括:
1. 可重入性问题:当一个智能合约在任何影响得到解决之前对另一个外部合约进行外部调用。然后,由于该原始合约的余额尚未更新,外部合约可以递归调用该原始智能合约并以它不应该有的方式与之交互。
2. 整数上溢和下溢:智能合约进行算术运算,但输出超过了存储容量(通常是小数点后 18 位)时。这可能导致计算金额出错。
抢先交易机会:结构不良的代码可以为市场的购买或销售提供预警。这反过来又会使其他人利用这些信息,为谋取私利而开展交易。
平台安全漏洞
大多数审计包括查看托管合约的网络,甚至还包括用于与 DApp 交互的 API。如果一个项目可能容易受到 DDoS 攻击,或者其网站 UI 遭到破坏,这意味着用户实际上会将他们的钱包连接到恶意的区块链应用程序。
什么是审计报告?
审计报告是审计结束时出具的报告。为了提高透明度,项目组应与社区分享其发现。大多数报告会按严重程度对问题进行分类,如严重、重大、轻微等。报告还会将问题的状态列出,因为在最终报告发布前,项目仍会有时间来解决这些问题。
除执行摘要外,标准报告还将包含建议、冗余代码示例以及编码错误所在位置的完整细节。在最终版本发布之前,该项目有时间对报告的调查结果采取行动。
何处提供智能合约审计?
许多智能合约审计服务机构已经因服务出众而声名鹊起。其中有两个特别受欢迎,从他们那里获得审计将需要提供初步报价和移交信息。
CertiK
在智能合约审计方面,CertiK 是行业领导者。成百上千个项目已经通过他们对智能合约进行了审计。BSC 最大的自动化做市商 (AMM) PancakeSwap 就是其中一个例子。下面是 Certik 为 PancakeSwap 所做审计的截图。
此外,币安孵化器支持的绝大多数项目都通过 CertiK 对合约进行了审计。CertiK 发布了一个审计项目排行榜,并附有安全评分,您可以对每个项目进行比较。请注意,除了以太坊,CertiK 还承接 BSC 和 Polygon 项目。
ConsenSys Diligence
ConsenSys 由以太坊联合创始人 Joseph Lubin 经营,是加密货币行业在区块链开发方面的知名品牌之一。在 ConsenSys Diligence,该公司提供以太坊智能合约审计。他们还提供自动化服务,以检查以太坊虚拟机(EVM) 合约中常见的错误。
审计一份智能合约的费用是多少?
确切的审计费用取决于需要检查的智能合约数量。通常情况下,审计费用约达数千美元。若是特定的大型项目,费用则很容易超过 10,000 美元。负责审计工作的审计公司及其声誉也会影响到您要支付的费用。