超越代码漏洞:DeFi协议的经济审计与安全
DeFi 协议的漏洞不仅来源于代码缺陷或攻击,还包括市场波动、治理操纵和流动性危机等经济因素。传统的技术(代码)审计主要关注代码是否按预期运行,但通常无法考虑市场压力或操纵等经济条件对协议稳定性的影响。
技术(代码)审计旨在确保代码按预期运行,并且不存在可被利用的漏洞或缺陷。然而,技术审计的范围通常局限于对协议本身的独立审查,而未能考虑更广泛的经济环境或协议之间的相互依赖性。
什么是经济审计?
经济审计是一种超越技术审计范畴的安全实践。技术审计通常聚焦于发现代码漏洞或缺陷,而经济审计则通过模拟真实市场条件和压力测试,评估协议在各种经济场景下的表现。
经济审计的重点在于理解 DeFi 协议内部的经济交互,以及市场波动、流动性危机和治理操纵等外部因素如何利用协议的漏洞。
经济审计的关键之一是模拟市场条件,例如价格的剧烈波动、流动性的变化或用户行为的改变。另一个关键环节是审查 DeFi 协议的治理结构。治理相关的漏洞可能让恶意行为者通过操纵投票系统控制协议,正如 Beanstalk 事件中发生的那样。
此外,经济审计会评估协议中的激励机制,确保其能够促进健康的参与并防止恶意行为。例如,设计不当的激励可能会鼓励攻击或机会主义行为,从而破坏协议的稳定性。经济审计还会分析当某个协议或代币遭到攻击时可能产生的连锁反应,尤其是在协议高度互联的 DeFi 生态系统中,这种连锁效应可能会带来严重影响。
这些审计旨在预测单一攻击在多个协议间可能引发的连锁效应,这类似于传统金融市场中的金融危机如何从一个行业蔓延到另一个行业。DeFi 的高度互联特性使这种连锁效应尤其危险,一个协议的失败可能严重影响其他协议的流动性、定价和治理。
最后,经济审计还会评估协议中的风险参数是否经过良好校准,以应对潜在的压力或操纵行为。经济审计能够帮助协议提前识别并缓解技术审计无法发现的经济漏洞,从而为 DeFi 生态系统提供更全面的安全框架。
技术审计 vs. 经济审计
虽然两种审计都至关重要,但它们的侧重点不同,彼此无法相互替代。
简单不可分的原子操作 vs. 依赖外部因素的复杂操作
技术审计:专注于确保代码执行原子性操作,即操作要么完全执行,要么完全失败,最大限度地减少部分执行失败可能导致的攻击风险。技术审计检查具体的代码逻辑,确保其按预期运行且没有漏洞或缺陷。
经济审计:经济审计超越了原子操作的范畴,关注更广泛的经济环境,其中存在复杂操作。这类操作依赖于协议外部的因素,例如外部流动性、市场价格或治理决策。经济审计通过模拟这些条件,评估外部因素如何可能引发协议的漏洞或风险。
技术审计:专注于确保代码执行原子性操作,即操作要么完全执行,要么完全失败,最大限度地减少部分执行失败可能导致的攻击风险。技术审计检查具体的代码逻辑,确保其按预期运行且没有漏洞或缺陷。
经济审计:经济审计超越了原子操作的范畴,关注更广泛的经济环境,其中存在复杂操作。这类操作依赖于协议外部的因素,例如外部流动性、市场价格或治理决策。经济审计通过模拟这些条件,评估外部因素如何可能引发协议的漏洞或风险。
代码漏洞 vs. 可利用性
技术审计:旨在识别代码中的具体漏洞,这些漏洞可能被攻击者利用。例如,如果某个函数未正确设置安全机制,黑客可能会利用它窃取资金或篡改协议的关键参数。
经济审计:与技术审计关注代码漏洞不同,经济审计关注的是更广泛的经济条件如何使协议暴露于攻击风险之下。例如,存在经济风险的治理机制可能会导致恶意接管或市场操纵事件,从而对协议造成严重影响。
审计范围(协议内部/外部)
技术审计:技术审计的范围通常由协议本身定义。其重点在于审查代码库、识别技术漏洞,并确保协议从纯粹的功能角度按预期运行。
经济审计:经济审计的范围更为广泛,不仅关注协议的内部逻辑,还分析其与更广泛 DeFi 生态系统的交互情况,包括市场条件、流动性、代币相互依赖性以及治理结构等外部因素。这种更广泛的范围能够提供更全面的风险分析,尤其在动态且互联的 DeFi 生态系统中尤为重要。
技术审计:技术审计的范围通常由协议本身定义。其重点在于审查代码库、识别技术漏洞,并确保协议从纯粹的功能角度按预期运行。
经济审计:经济审计的范围更为广泛,不仅关注协议的内部逻辑,还分析其与更广泛 DeFi 生态系统的交互情况,包括市场条件、流动性、代币相互依赖性以及治理结构等外部因素。这种更广泛的范围能够提供更全面的风险分析,尤其在动态且互联的 DeFi 生态系统中尤为重要。
不同情境下的漏洞利用
技术审计:主要是确保代码本身没有特定的漏洞,比如反复调用漏洞或整数计算错误等。一旦技术审计完成,代码在受控环境中被认为是安全的。
技术审计:主要是确保代码本身没有特定的漏洞,比如反复调用漏洞或整数计算错误等。一旦技术审计完成,代码在受控环境中被认为是安全的。
经济审计:与之相对,经济审计评估协议在真实世界场景中的表现,在这些场景中,外部经济压力(如价格操纵或治理攻击)可能暴露协议的漏洞。经济审计通过模拟真实的经济条件,确保协议即使在这些外部因素影响下仍能保持安全性。
经济审计:与之相对,经济审计评估协议在真实世界场景中的表现,在这些场景中,外部经济压力(如价格操纵或治理攻击)可能暴露协议的漏洞。经济审计通过模拟真实的经济条件,确保协议即使在这些外部因素影响下仍能保持安全性。
审计范围的差异
技术审计:范围通常限制在协议的内部运作和代码库内。审计的重点是检查智能合约是否按预期运行,并确保代码没有错误和逻辑漏洞。
技术审计:范围通常限制在协议的内部运作和代码库内。审计的重点是检查智能合约是否按预期运行,并确保代码没有错误和逻辑漏洞。
经济审计:范围更广,考虑到外部影响因素,例如市场依赖性、治理结构以及流动性紧张。经济审计评估协议与更广泛的 DeFi 生态系统的交互情况,并分析协议是否能够抵御经济压力。
经济审计:范围更广,考虑到外部影响因素,例如市场依赖性、治理结构以及流动性紧张。经济审计评估协议与更广泛的 DeFi 生态系统的交互情况,并分析协议是否能够抵御经济压力。
技术审计和经济审计相互补充,缺一不可,共同构建了完整的安全保障体系。
技术审计未能覆盖的关键漏洞
技术审计无法解决因外部经济因素、依赖关系以及与其他协议的交互而产生的一些漏洞,这些问题需要通过经济审计来识别和缓解。
代币关联性与连锁效应
代币关联性是 DeFi 中一个重要的风险来源,不同协议的代币可能彼此依赖。例如,当某一协议的代币价格暴跌时,可能会引发多个平台的连锁反应。
技术审计通常不会评估当协议中的代币受到外部经济条件(如市场低迷或其他协议遭受攻击)影响时,可能引发的连锁效应。
相比之下,经济审计通过模拟这些场景来分析协议在此类事件中的反应。例如,Terra Luna 的崩溃事件中,其稳定币脱锚引发了整个 DeFi 生态系统的广泛破坏。
预言机依赖与价格操纵
许多 DeFi 协议依赖预言机获取外部数据,例如代币价格或利率。然而,这种依赖带来了一种常见的漏洞:如果预言机被攻破,或者其提供的数据不准确或被操纵,协议可能面临巨大风险。
价格操纵攻击是一种典型的经济攻击形式,攻击者通过操纵预言机提供的代币价格来获利,例如利用套利机会或强制清算。
技术审计通常只确保代码能够正确地与预言机交互,但不会评估预言机层面的价格操纵风险,而这种风险可能对协议产生毁灭性的影响。
治理攻击
治理漏洞是 DeFi 协议中的另一个主要风险,尤其是在那些投票权与代币持有量挂钩的系统中。攻击者可以利用治理机制接管协议,提出恶意提案或窃取资金,正如 Beanstalk 漏洞事件所示。在这个事件中,攻击者通过闪电贷暂时借入大量代币,控制了 79% 的投票权,进而推动了恶意提案并窃取了 1.81 亿美元。
技术审计通常忽略治理结构,重点检查智能合约代码。然而,经济审计则会分析治理系统的潜在漏洞,特别是通过闪电贷等手段临时增加投票权的方式,这种风险通常是技术审计难以发现的。
流动性危机与协议承压
流动性危机是 DeFi 协议中的一个重大隐患。当协议的流动性突然下降时,可能会引发价格滑点、强制清算或抵押品短缺,从而导致系统的恶性循环,给整个协议带来压力。流动性危机可能由多种因素引发,例如市场下跌、代币波动性增加或大额提现等。
技术审计确保智能合约在正常条件下正确运行,但它们并不会模拟流动性低的压力场景,这种场景下协议可能会变得容易受到攻击或发生意外行为。相对而言,经济审计会模拟这些压力条件,评估协议如何应对流动性紧张的情况,并检验协议是否具备应对或恢复这种危机的机制。
典型的经济攻击案例
这些案例详细展示了攻击者是如何利用 DeFi 协议设计和结构中的经济性弱点,而非代码漏洞,进行攻击的。
案例 1:Mango Market 攻击
日期: 2022 年 10 月攻击手段: 价格操纵损失金额: 1.16 亿美元
在此漏洞中,攻击者通过操控 Mango 代币($MNGO)的价格,导致多个交易所的价格差异,从而触发大规模的强平,最终耗尽了协议的资金。攻击过程如下:
初始设置:攻击者使用了两个钱包,每个钱包持有 500 万美元的 USDC,用以发起攻击。钱包 1 以低价 $0.0382 发出了价值 4.83 亿美元的 MANGO 代币大宗卖单。
价格操控:随后,钱包 2 用于以这个低价购买钱包 1 所卖出的所有 MANGO 代币。接着,攻击者开始在多个交易平台(包括 Mango Markets、AscendEX 和 FTX)上大举购买 MANGO 代币,将价格从 $0.0382 推升至 $0.91,短时间内大幅上涨。
利用价格暴涨:这次突如其来的价格暴涨导致大量空头仓位被强平,因为 MANGO 代币的价格突破了做空者的抵押物价值。结果,攻击者从价格上涨中获利,而 MANGO 代币的价格随后下跌至 $0.0259。
结果:该攻击导致 Mango Market 流动性大幅流失,超过 4,000 个空头仓位被强平,进一步破坏了协议的稳定性。此次经济性攻击并非依赖于技术性漏洞,而是利用了跨平台的价格操控,这表明经济审计可以通过模拟价格操控场景来防止或减轻攻击的影响。
案例 2:Beanstalk 攻击
日期: 2022年4月攻击手段: 治理操纵损失金额: 1.81 亿美元
Beanstalk 攻击涉及攻击者控制治理系统,从而推动恶意提案。这次攻击突显了治理漏洞如果管理不当,可能与技术缺陷一样造成严重损害。攻击的关键步骤如下:
1.治理漏洞攻击:攻击者提出了两项提案,要求将 Beanstalk 资金库中的代币转移到其个人钱包。这些提案伪装成合法的治理变更。Beanstalk 的治理系统需要通过紧急提案投票(emergencyCommit),如果提案获得三分之二的投票通过,则可以被批准。
2.闪电贷攻击:攻击者通过闪电贷暂时借入大量 Beanstalk 代币,足以控制 79% 的投票权。在获得绝对多数后,攻击者成功推动了这些提案的通过,执行了资金转移,将代币从 Beanstalk 资金库转入其个人钱包。
结果:这次成功的治理攻击导致了 BEAN 代币脱锚,其价格损失了 75%,严重影响了协议的稳定性。此次攻击造成的总损失达 1.81 亿美元。如果进行过经济审计,模拟治理相关的风险,这种情况是可以在一定程度上缓解的。经济审计能够识别治理操控的风险,特别是通过闪电贷暂时获得投票控制的可能性,这是传统技术审计常常忽视的场景。
这两个案例突出了经济审计对技术审计的必要补充作用,确保协议能够抵御价格操控和治理漏洞的攻击,这两个领域在传统安全评估中常常未能得到充分检查。
案例 3:Terra Luna 稳定币脱锚事件
Terra Luna 生态系统的崩溃是经济因素而非技术漏洞导致协议失败的一个显著案例。这一事件通常被视为经济管理失误的典型教材,展示了某一方面的失控如何引发整个 DeFi 生态的连锁崩溃。
Terra 的稳定币 UST 通过算法与美元挂钩,依赖其与 Luna 代币的关系来维持价格稳定。其设计理念是 UST 可以始终按一定比例兑换 Luna,从而保持价格的稳定。然而,这一系统高度依赖市场信心和流动性,随着外部经济压力的加剧,这这两者开始崩溃。
2022 年 5 月,一次重大的市场事件导致 UST 脱锚 ,价格跌破了 1 美元。这触发了“死亡螺旋”效应,UST 的持有者急于将其代币兑换成 Luna,这迅速稀释了 Luna 的供应量,并导致其价格暴跌。随着 UST 的脱锚继续恶化,形成了一个反馈循环,导致 UST 和 Luna 的价格双双崩溃,最终使得协议无法恢复。
Terra Luna 的崩溃对 DeFi 生态系统造成了广泛的影响。由于许多协议通过流动性池、借贷平台和质押服务与 Terra 高度互联,这一事件引发了一场流动性危机,导致其它协议因间接暴露于 Terra 而发生大量清算和资金损失。
此次崩溃并非源于任何特定的代码漏洞或技术缺陷,而是由于经济管理失误所致——即依赖没有足够储备或保护机制来应对市场波动的算法稳定币。技术审计无法发现这一漏洞,因为问题根源在于协议的经济模型,这也突显了经济审计的必要性,经济审计可以模拟脱锚情境和流动性危机,进而识别此类风险。
Terra Luna 的崩溃展示了一个协议的失败如何引发整个 DeFi 生态系统的连锁反应,强调了在审计过程中评估协议间依赖关系的重要性。这场崩溃源于一个不可持续的经济模型(算法稳定币),该模型没有准备好应对极端市场条件。经济审计可以通过模拟这些极端情况,揭示协议的脆弱性。
缺乏足够储备和未能考虑极端市场波动,是 Terra Luna 崩溃的关键原因,这也凸显了在经济审计中对这类风险进行测试的重要性。
这一案例强调了无论一个协议的代码多么技术上完善,如果没有充分进行经济模型的压力测试和市场环境的考量,它仍然容易遭遇经济崩溃。
DeFi 协议的分层架构
DeFi 协议通常由多个层次构成,每一层都在协议的整体功能中扮演着特定角色。这些层次通常包括:
1. 核心协议层: 这是协议的基础,包含定义协议操作的智能合约,例如借贷、质押或交易等。技术审计通常专注于这一层,确保智能合约按照预期执行,且没有漏洞或编程错误。
2. 预言机层: DeFi 协议通常依赖预言机来从外部源(如价格数据、利率等)获取实时数据。该层对于协议的正常运作至关重要,因为错误的数据可能导致价格错误、抵押品不足或其他风险。经济审计会检查协议对预言机的依赖以及可能存在的预言机操控风险,而这一点技术审计通常无法完全涵盖。
3. 治理层: 许多 DeFi 协议采用去中心化治理结构,决定协议的关键变动。治理层涉及投票、基于代币的决策以及协议变更等方面。经济审计会分析治理结构中的漏洞,如投票权操控或闪电贷攻击,攻击者通过临时获得大量投票权来影响协议决策
4. 流动性层: 流动性层确保协议具有足够的流动性,保证协议的正常运作。在借贷或交易协议中,流动性层决定用户能否访问资金或执行交易。经济审计会模拟流动性压力场景,测试协议在流动性不足的情况下的表现,比如大规模提现或市场突然下跌等情况。
分层架构中的经济风险
在 DeFi 协议的分层架构中,层与层之间的相互作用可能会带来一些经济风险,这些风险通常不会被传统的技术审计所涵盖。
1. 协议间的依赖性: 许多 DeFi 协议是相互依赖的,它们依赖于其他协议提供流动性、抵押品或数据。例如,一个借贷协议可能依赖外部的稳定币作为抵押品。如果该稳定币崩盘或失去与法币的挂钩,借贷协议可能会抵押不足,导致大规模清算。
2. 协议间的连锁反应:攻击者可以通过攻击某一层,进而利用协议间的相互关系影响其他层,从而造成更广泛的损失。例如,攻击者可能通过操纵某一协议中的资产价格(通过预言机操控),进而影响其它协议中的借贷、交易或抵押品等操作。
3. 流动性危机: 分层架构还引入了流动性危机的风险,其中一层的流动性依赖于另一层。流动性池中的流动性突然被撤回,可能会影响协议的正常运作,导致整个协议出现级联故障,影响其他层的正常功能。
DeFi 协议的互连接性意味着风险往往会在多个层级之间传播。某一层的漏洞(如预言机或治理层)可能引发连锁反应,导致其他层(如流动性层或核心操作层)的失败。技术审计主要聚焦于核心协议,确保智能合约按预期执行,但它们无法模拟这些层级之间相互作用所带来的系统性风险。
DeFi 协议的分层架构引入了复杂的经济风险,而仅凭技术审计无法全面捕捉到这些风险。经济审计则提供了对不同层级之间相互作用的关键评估,分析它们如何在现实世界的条件下被利用或面临压力,从而帮助识别潜在的风险点。
结论
仅依靠技术审计不足以保护 DeFi 协议免受更广泛的经济风险。经济审计通过模拟现实市场条件,进行压力测试,评估协议在价格操控、流动性危机和治理漏洞等情况下的韧性。DeFi 行业必须重视经济风险管理,以保障协议免受系统性威胁。目前,经济审计市场尚未得到充分发展,这为专注于这一领域的公司提供了巨大的机会。未来的 DeFi 安全将需要技术审计和经济审计相结合,以确保协议能抵御更广泛的漏洞风险。
感动 | 同情 | 无聊 | 愤怒 | 搞笑 | 难过 | 高兴 | 路过 |
相关文章
-
没有相关内容