模糊测试和形式验证在区块链安全中的力量

  • zealynx
  • 发布于 2024-02-21 20:12
  • 阅读 10

本文介绍了在区块链项目中实施模糊测试和形式验证的重要性,并强调这些技术如何增强智能合约的安全性。包括模糊测试和形式验证的定义、优点,以及它们如何改进安全审查。此外,还展示了知名DeFi协议(如Uniswap、Optimism和Aave)如何使用这些技术来保障其平台的安全,以及NASA在形式验证方面的实践经验,旨在说明在区块链领域,安全措施对于保护用户资金和维护平台稳定至关重要。

介绍

在本文中,我想揭示为什么在项目中实施模糊测试(fuzzing)和形式化验证(formal verification)不仅重要,而且对你的成功至关重要。这些先进的安全技术已成为 Uniswap、Optimism 和 Aave 等行业巨头的黄金标准。原因何在?在一个单一错误可能导致数百万美元损失的生态系统中,安全是不可谈判的。

我们将探讨这些工具如何彻底改变智能合约的安全性,以及为什么行业领导者认为它们是不可或缺的。从早期漏洞检测到与投资者和用户建立信任,你将发现模糊测试和形式化验证并非大型参与者独有。

为什么要效仿这些顶级协议的例子?在整篇文章中,我们将揭示这些技术对任何规模的项目的好处。我将向你展示它们如何改变代码的可靠性,并将你的项目提升到更高水平的稳健性和信心。

什么是模糊测试?

模糊测试,或称模糊测试(fuzz testing),是一种将无效、意外或随机数据传递到系统中,以发现编码错误和安全漏洞的技术。

当应用于 Web 应用程序时,模糊测试通过确定数据注入点来有针对性地查找常见的 Web 漏洞,以识别哪些入口点可能容易受到此类漏洞的影响。

什么是形式化验证?

形式化验证(Formal Verification, FV)使用数学建模和逻辑分析来确保程序的安全性和正确性。FV 的一个关键方面是符号执行,它将符号值分配给输入,从而可以在单个分析中探索各种程序路径。

该技术有助于验证程序是否会违反某些条件或达到危险状态,使用 SMT 求解器等工具进行可行性评估。因此,符号执行增强了测试,提供了一种更全面的方法来建立程序的安全性和正确性。

模糊测试的益处

模糊测试代表了一种先进的安全测试方法,它使代码经受大量的输入,有条不紊地探索在传统测试过程中可能被忽视的场景。

主要特点:

  • 在相对较短的时间内执行数百万个测试用例
  • 提供全面而有效的覆盖

模糊测试的核心是由随机或半随机输入组成的复杂生成器。此组件生成连续的测试数据流,旨在探索目标的操作限制。

这些输入的多样性和通常出乎意料的性质允许模拟各种潜在的交互,包括那些可能挑战典型用法期望的交互,并因此揭示程序结构中的潜在漏洞。

此方法作为可能输入的广阔频谱的系统性探索者运行。每个生成的数据都充当一个唯一的测试用例,经过精心设计,以识别异常行为或隐藏的漏洞。

优点:

  • 全面和持续的测试覆盖
  • 显着克服了手动测试方法的局限性
  • 发现边界情况和罕见错误
  • 识别出逃脱传统方法的缺陷
  • 检测行为中的细微异常

形式化验证的益处

想象一下,有一种工具能够检查代码的每个角落,仔细探索它可能采取的所有可能路径。这正是形式化验证(FV)所做的。

FV 采用各种数学和逻辑技术来分析代码。

每种方法都为分析提供了独特的视角,从而可以对程序进行深入而多方面的理解。

使用的一种技术是符号执行,它使用抽象值而不是具体数据进行操作。这允许同时考虑多个场景,就好像我们给程序一张通配符而不是一个特定的数字。

结果是?

对你的程序进行全面而严谨的理解。FV 可以明确地证明某些危险条件是无法达到的,从而提供超越传统测试能力的安全保证。这就像有一队细致的侦探检查每一种可能的场景,无论多么不可能。

此方法提供:

  1. 关于程序行为的数学确定性水平
  2. 识别潜在的隐藏漏洞
  3. 符合安全规范和要求

因此,FV 充当不知疲倦的守护者,将软件的可靠性和健壮性提升到新的水平。

模糊测试和形式化验证如何改进安全审查?

形式化验证和模糊测试的结合创造了一种互补且强大的安全方法,从而增强了传统的手动安全审查。

形式化验证

  • 严格而数学的分析
  • 静态分析的精度

模糊测试

  • 动态而全面的探索
  • 动态测试的广度

在开发项目中实施这些技术代表了安全策略的重大进步。它们将静态分析的精度与动态测试的广度相结合,从而提供比单独使用任一方法都更完整的覆盖范围。

在当前背景下:

  • 安全至关重要
  • 采用这些先进工具已成为一种战略必要性
  • 它们改善了漏洞检测
  • 它们提高了整体可靠性
  • 它们展示了对产品质量和安全的严肃承诺

合并形式化验证和模糊测试代表了对开发完整性和健壮性的投资。在日益复杂和充满威胁的数字环境中,这些技术在防范漏洞和确保最终产品质量方面提供了至关重要的优势。

技术 优势 最适合 主要特点
模糊测试 - 真实世界测试<br>- 错误发现<br>- 处理意外输入 - 复杂场景<br>- 查找边界情况<br>- 检测异常 - 自动化输入生成<br>- 高速执行<br>- 动态探索
形式化验证 - 全面分析<br>- 概念正确性<br>- 数学证明 - 安全保证<br>- 证明正确性<br>- 分析所有状态 - 数学技术<br>- 符号执行<br>- 静态分析

组合技术的协同作用

  1. 全面覆盖:

    • 通过模糊测试实现自动化广度
    • 通过形式化验证实现数学深度
    • 来自手动审查的情境洞察
  2. 协同优势:

    • 模糊测试:揭示不明显的漏洞
    • 形式化验证:确保逻辑正确性和符合安全属性
    • 手动审查:解决高级设计问题
  3. 迭代改进:

    • 来自每种方法的发现为其他方法提供信息并增强其他方法
    • 不断完善安全措施

模糊测试 vs. 形式化验证:优势和应用

特点 模糊测试 形式化验证 单元测试
方法 随机或意外数据 数学建模和逻辑 预定义的测试用例
覆盖范围 高,包括边界情况 给定模型的完整 限于测试用例
自动化 高度自动化 部分自动化 可变
复杂性 中等 低到中等
执行时间 对于复杂系统可能很慢 可变
错误检测 对未知错误有效 证明不存在某些错误 查找已知错误
适用性 广泛,尤其是在安全性方面 对高安全性系统至关重要 通用

对开发者和企业的益处

改进的安全性和质量

对于开发者

  • 发现边界情况和意外行为
  • 为关键属性提供数学确定性
  • 促进开发周期中的早期错误检测

对于企业

  • 增强协议安全性
  • 降低潜在漏洞造成的财务风险
  • 建立投资者和用户信任

修复错误的难度

阶段 难度
开发 简单
测试 中等
生产 困难
部署后 极其困难

主要优势概述

对于开发者

  • 更高的代码信心
  • 减轻了潜在漏洞带来的压力
  • 专注于创新而不是修复错误

对于企业

  • 符合法规要求
  • 更容易的合作伙伴关系和集成
  • 增加市场差异化

我们的工作

在本节中,我们将介绍如何将形式化验证和模糊测试技术集成到我们的区块链项目中的实际例子。这些案例研究证明了这些先进方法在增强智能合约安全性和可靠性方面的实际好处。通过分享我们的经验,我们旨在说明这些工具的实际影响,并激发它们在区块链开发中的更广泛应用。

Possum Labs:质押收益资产

Glif:流动性挖矿

Wedefin:去中心化指数基金

Revert:AMM 流动性提供商

Bastion Wallet:ERC-4337,帐户抽象 SDK

这些实践如何使这些协议受益

在去中心化金融协议中实施模糊测试和形式化验证具有显着的优势。这些技术通过识别传统方法可能错过的细微漏洞来增强安全性。它们提高了用户信任度,降低了经济风险,并允许随着系统的发展进行持续的安全评估。

此外,它们还可以防止潜在的灾难性故障和声誉损害。在快速扩张的市场中,展示强大的安全措施可以提供竞争优势,从而吸引更多的参与者和投资者。

为什么顶级 DeFi 协议会使用模糊测试和形式化验证?

在本节中,我想强调在项目中实施安全工具的至关重要性,大型协议毫不犹豫地采用了这种做法。

在深入研究之前,必须强调这些工具在任何技术开发中的关键作用。我们都目睹了许多影响各种类型应用程序的黑客攻击和漏洞,并且我们知道这些事件可能造成的破坏性后果。

许多机构、应用程序和组织投入大量资源,以尽可能地保证其系统的安全。这项投资至关重要,因为如果不能保证高水平的安全性,那么拥有卓越的代码几乎毫无用处。

任何违规行为,无论多么小,都可能引发灾难性后果,例如资金损失、用户信任度下降,甚至投资者离开。重要的是要注意,从这些问题中恢复通常非常复杂。

UNISWAP

是什么原因促使他们使用模糊测试/形式化验证?

随着时间的推移,促使 Uniswap 采用这些技术的原因与他们新的实现方式日益复杂以及他们对协议安全性的承诺直接相关。

例如,这些技术已用于:

  • 确保集中流动性算法的数学正确性,集中流动性算法是 Uniswap v3 的一个基本组成部分。
  • 确保他们的价格形成和流动性管理机制在所有可能的条件下都按照预期的方式运行,从而最大限度地降低意外行为或漏洞的风险。
  • 通过实施先进的模糊测试技术,在整个开发过程中不断提高安全性。这种主动方法有助于在开发周期的早期阶段识别潜在问题。

这些实践不仅加强了协议的技术完整性,而且还通过展示对日益复杂和竞争激烈的 DeFi 生态系统中安全性的坚定承诺,提高了用户和投资者的信心。

OPTIMISM

他们如何使用形式化验证来保护他们的协议?

Optimism 已将高级形式化验证集成到他们的持续集成(CI)系统中。此实施主要侧重于验证其 L1 合约的可暂停性机制。

验证过程的重点是:

  • 验证可暂停性机制是否正常运行,从而可以在必要时停止 L2 到 L1 的交易。
  • 确保随着代码的演变而维护验证。

验证执行符号属性测试,从而可以对所有可能的输入进行详尽的数学验证,从而超越传统模糊测试的限制。

在 Optimism 的 CI 中进行这种集成可以持续验证关键属性,从而减轻与代码更改相关的风险并提高部署后协议的整体安全性。

AAVE

他们如何使用形式化验证来保护他们的协议?

Aave 通过以下方式使用持续形式化验证来保护他们的协议:

  • 对所有代码贡献实施持续的自动化验证
  • 利用集成到开发过程中的高级形式化验证工具
  • 开发一种新的符号执行工具,用于全面路径覆盖
  • 创建一个开源的安全规则数据库,供社区贡献

为什么采用这种方法?

  • 它可以确保持续检查不断发展的代码的安全性
  • 它可以在部署前检测到漏洞
  • 它可以减轻治理引入的更改带来的风险

优点

  • 提供关键代码区域的安全性的数学证明
  • 实现对复杂规范进行 24/7 分析
  • 允许快速检测和预防潜在漏洞

LIDO

他们为什么使用模糊测试和形式化验证技术?

Lido 实施这些先进的安全措施主要是因为他们的质押协议的性质至关重要,以及他们管理的资产价值很高。

这些技术使他们能够确保其质押和奖励系统的数学准确性,严格测试跨不同网络的操作,并在推出新功能之前识别潜在漏洞。

通过这种方法,Lido 旨在保护用户资金并维持其平台的稳定性。

NASA 和形式化验证:DeFi 安全的模型

虽然 NASA 似乎与 DeFi 世界相去甚远,但其安全和系统完整性方法为区块链协议提供了宝贵的经验教训。

NASA 对形式化验证的承诺

NASA 一直是使用形式化验证技术的先驱,他们认识到形式化验证技术在关键任务系统中的重要性,在这些系统中,不允许出现故障:

  • 长期实践:自 1970 年代以来,NASA 一直在使用形式化方法,近几十年来更加重视。
  • 大量投资:NASA 用于软件开发和验证的预算的很大一部分分配给了形式化方法。
  • 广泛应用:NASA 在各种项目中应用形式化验证,从飞行控制系统到火星探测器软件。

NASA 使用形式化验证的主要例子

  1. 航天飞机:NASA 使用形式化方法来验证航天飞机的飞行控制软件。
  2. 火星好奇号探测器:火星科学实验室(包括好奇号探测器)的关键任务软件经过了严格的形式化验证。
  3. 与星共生计划:NASA 在为太阳观测卫星开发软件时采用了形式化验证技术。

为什么形式化验证对 NASA 至关重要

  1. 零容忍错误:在太空任务中,即使是微小的软件错误也可能导致灾难性故障、损失价值数十亿美元的设备,甚至导致人员伤亡。
  2. 复杂系统:航空航天系统非常复杂,传统的测试方法不足以满足需求。
  3. 不可重复的条件:许多太空场景无法在地球上完全复制,因此对正确性的形式证明至关重要。
  4. 长期可靠性:太空任务可能会持续数十年,因此需要能够在长时间内保持可靠且无法进行修补或更新的软件。

DeFi 的经验教训

NASA 的需求与 DeFi 协议的需求之间的相似之处令人震惊:

  • 两者都处理着可能导致重大财务损失的高风险环境。
  • 两者都在复杂且经常不可预测的环境中运行。
  • 两者都需要长期的可靠性和安全性。

通过采用 NASA 严谨的形式化验证方法,DeFi 协议可以显着增强其安全态势,从而有可能防止灾难性故障并建立对生态系统的更大信任。

通过在知名协议中实施模糊测试和形式化验证发现的漏洞

在区块链领域,上述所有内容甚至更加相关。该领域的许多协议都处理着大量的资本,尤其是在 DeFi 项目中。

随着时间的推移,这些协议吸取了一个重要的教训:如果不能保证其长期安全性,那么拥有一个绝妙的想法或创新的产品是不够的。在这些平台上,即使是最轻微的安全问题也可能会造成灾难性的后果。

Compound Finance:

在清算系统中检测到一个关键漏洞。在极端的市场条件下,不正确的抵押品因素计算可能会导致不合理的清算,从而使用户的资产面临风险。

MakerDAO:

拍卖机制存在重大缺陷。在高波动时期,拍卖可能以远低于实际价值的价格结束,这可能会给协议造成巨额资金损失。

Uniswap v3:

费用计算中的一个细微错误威胁到流动性提供商的盈利能力。累积费用中的舍入问题可能导致一段时间内逐渐但显着的损失。

Aave:

形式化验证可以防止闪电贷中出现关键漏洞。人们发现,攻击者可以瞬间操纵资产价格,从而让他们在不公平的有利条件下获得贷款。

Chainlink:

在价格聚合系统中识别出潜在漏洞。这些缺陷可能允许操纵输入数据,从而损害跨网络报告价格的完整性。

Synthetix:

在质押和奖励机制中发现了一些问题。在高波动情境下,不正确的奖励计算可能导致不公平的分配,从而影响代币经济和用户信任。

哪些协议可以从这些类型的测试中受益

该领域中最杰出的项目,那些从一开始就与我们同在的项目,都具有一个共同的模式:他们已经知道如何有效地管理其资源并在一段时间内保持强大的安全实践。

这些协议会定期进行审计,并将审计与侧重于模糊测试和形式化验证的众多测试活动相结合。特别有效的策略是在协议开发期间实施大量模糊测试,并在最关键的点上采用形式化验证方法。

受益于这些高级安全实践的协议种类之多令人惊讶。下面,我们提供了一张表格,说明了采用这些技术的项目的多样性,从而证明了安全是重中之重:

类别 协议
借贷 Aave、Compound、MakerDAO
DEX Uniswap、SushiSwap、PancakeSwap
衍生品 Synthetix、dYdX、Perpetual Protocol
保险 Nexus Mutual、InsurAce、Etherisc
游戏和 NFT Decentraland、OpenSea
收益耕作 Yearn Finance、Harvest Finance、Beefy Finance
稳定币 DAI (MakerDAO)、USDC (Centre)
隐私 Tornado Cash、Monero、Zcash
预言机 Chainlink、Band Protocol、API3
资产管理 Set Protocol、Enzyme Finance、dHEDGE
Polygon、Avalanche Bridge、Wormhole
身份 Civic、Ontology、SelfKey
存储 Filecoin、Storj、Sia
预测 Augur、Gnosis、Polymarket
代币化 RealT、Harbor、Polymath
  • 原文链接: zealynx.io/blogs/The-Pow...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
zealynx
zealynx
江湖只有他的大名,没有他的介绍。