TL;DR
- 安全性仍然是 DeFi 领域中一个关键且持续存在的挑战,每年造成数十亿美元的损失。
- 针对 DeFi 协议的安全措施应贯穿其整个生命周期,从上线前到上线后,兼顾协议的内在安全和运营安全。制定预防策略和应急预案以减轻潜在攻击的影响至关重要。
- 以代码审计为核心的上线前安全已成为社区共识。然而,尽管出现了上线后安全解决方案(例如攻击监控与拦截),其重要性尚未被社区充分认识。
- 持续改进安全实践并向以安全为先的文化转变,对于保护用户资产和增强生态系统信任至关重要。

引言
随着 DeFi 不断革新金融格局,安全性仍是该生态系统中的一个重大隐忧,每年造成数十亿美元的损失。
根据 Chainalysis 的数据,2023 年 DeFi 黑客攻击造成了超过 11 亿美元的损失。尽管这一数字较 2022 年有所下降,但 2023 年的 DeFi 黑客攻击呈现出多个新趋势。例如,一些已安全运行多年的知名协议,如 Curve 和 KyberSwap,也遭到了黑客攻击。此外,针对基础设施漏洞的复杂攻击也被曝光,例如 Flashbots relay。
根据 Security Incidents Library 的数据,2024 年上半年发生了超过五十起造成损失超过 10 万美元的黑客攻击事件。

安全性是 DeFi 应用蓬勃发展和大规模普及的关键因素。这是因为 DeFi 协议管理着数十亿美元的用户资产,任何针对这些协议的黑客攻击都可能给受影响的用户带来重大损失。尽管在某些情况下,被盗资金可以(部分)追回(例如 the Euler security incident),但我们不能每次都指望这种情况发生。每一次攻击都在削弱人们对 DeFi 的信心。
尽管已经提出了多种方法来增强 DeFi 的安全性,但仍有很大的改进空间。
- 从积极的方面来看,代码审计已成为确保安全的社区共识。大多数协议在上线前都会进行代码审计,这有助于减少因智能合约漏洞而产生的攻击面。
- 然而,仅靠代码审计远不足以解决所有安全问题。它无法防止因智能合约升级、配置更改以及不同协议间的运行时依赖关系而引入的漏洞所导致的黑客攻击。
由于这些局限性,更多主动式的解决方案,如运营监控或攻击检测系统,应运而生,并已被一些协议所采用。
在本博客中,我们将通过追溯协议在不同阶段的安全历程——从上线前阶段、到运营阶段,再到攻击响应——来探讨 DeFi 安全格局。我们将详细阐述各类安全措施,并重点介绍每个阶段的主要供应商(产品),讨论其优缺点。 我们希望我们的见解能帮助社区更好地了解当前的技术水平,更重要的是,能够启发未来的创新解决方案。
DeFi 安全格局
针对 DeFi 协议的安全措施必须涵盖其整个生命周期,从上线前阶段到上线后阶段,确保协议的内在安全和运营安全。此外,制定预防措施和应急预案以应对潜在攻击也至关重要。为了帮助读者了解现有的解决方案,我们将 DeFi 安全供应商(产品)划分为以下几类。
上线前安全
该类别包括在协议上线之前进行的安全措施,包括代码审计、形式化验证和安全测试。

代码审计服务与竞赛
代码审计是社区广泛认可的一种确保协议安全的实践。在此过程中,安全公司将以半自动化的方式对代码进行审查,即自动扫描代码以查找常见漏洞,并对复杂问题进行人工审查。代表性公司包括 OpenZeppelin、ChainSecurity、BlockSec 等。
此外,还有审计竞赛平台,其审计方式与安全审计公司有所不同。这些平台发起审计竞赛,吸引社区中的安全研究人员参与审计竞赛,并将奖励分发给发现协议问题的人。当然,不同平台在评估严重程度的方式、分配奖励的算法以及吸纳安全研究人员的标准上可能存在一些细微差异。此类平台包括 Code4rena、SHERLOCK、Cantina 和 Secure3。
代码审计(及竞赛)是协议安全的第一道防线。然而,它存在实际的局限性,这也解释了为什么许多经过知名公司审计的协议仍然会遭到黑客攻击。
- 首先,静态代码审计无法充分评估协议依赖关系所引发的安全问题,特别是由于 DeFi 协议的可组合性所致。
- 其次,一些问题的安全影响在代码审计过程中被低估了。例如,精度损失是一个常见问题,审计人员和协议方都可能忽视它。直到 Hundred Finance 和 Channels Finance 事件发生后,社区才充分认识到其安全影响。
- 最后但同样重要的是,高质量的代码审计仍然是一种稀缺且珍贵的资源,需要精通安全、金融和计算机科学的多学科人才。目前很少有大学能够持续、大规模地培养这类人才。因此,协议可能会被不具备相应资质的公司进行审计。
形式化验证
“形式化验证是指使用数学的形式化方法,针对某一形式化规范或属性,证明或反驳系统正确性的行为”。由于它能够证明系统的正确性,形式化验证已被应用于 DeFi 协议。具体而言,它可以确保 DeFi 协议的行为满足形式化规范。DeFi 协议形式化验证产品的代表是 Certora 开发的 Prover。开发者提供规则(规范),Prover 会将结果与规则进行比对,通过探索每一种可能的程序状态来识别错误。
形式化验证最具前景的一点在于,它能够从数学上证明 DeFi 协议的正确性。然而,在实践中,它仍存在一些阻碍其广泛应用的局限性。
- 首先,规范应由开发者提供,这要求开发者对协议的预期行为拥有一份记录完善的规范。考虑到大多数开发者并非该领域的专家,这并非易事。
- 其次,协议的频繁升级可能需要更新规范并重新评估协议,一些协议可能无法承担所需的时间和精力。
尽管如此,协议——尤其是那些尚未经过实战检验、且管理着大量用户资产的新协议——仍应进行形式化验证。然而,提升形式化验证的可用性并提高其采用率,仍然是一项持续的挑战。
安全测试
安全测试是指使用测试用例查找协议中错误的过程。与通过数学方式证明协议正确性的形式化验证相比,安全测试通常使用具体的输入,而不是形式化验证中的符号化输入,因此效率更高,但严谨性较低。
- Foundry 是智能合约领域流行的开发和测试框架之一。开发者可以在 Foundry 中运行测试。它还提供了对 DeFi 协议进行模糊测试、不变量测试和差分测试的能力。
- 其他安全测试工具包括 Tenderly 和 Hardhat。
上线后安全
该类别包括在协议上线(或在主网上运行)之后进行的安全措施,包括漏洞赏金、攻击检测和运营监控。

漏洞赏金
漏洞赏金计划在协议与安全研究人员之间架起了一座桥梁。其基本理念是激励研究人员报告零日漏洞以换取奖励。具体而言,协议可以在漏洞赏金平台上列出其赏金计划,详细说明赏金范围以及报告漏洞的奖励金额。Immunefi 是 Web3 领域具有代表性的漏洞赏金平台之一。
攻击检测
攻击检测平台会扫描交易以定位恶意交易。具体而言,这些平台会审查与协议交互的交易,检测其中的恶意行为。如果发生此类交易,将触发警报。
- 例如,BlockSec Phalcon Security 扫描交易并采用基于行为的检测引擎来检测恶意活动(例如恶意合约或提案)。可以将其视为一名虚拟安全卫士,观察金融交易的每一个步骤,寻找任何可疑行为。它从这些交易中提取行为模式,就像侦探分析线索一样,然后使用金融模型——类似于银行用于检测欺诈的模型——来识别潜在攻击。
- 类似的系统包括 Hypernative 和 Hexagate 提供的产品。
- 此外,Ironblocks 旗下的 Venn Security network 提供了一种去中心化基础设施,将来自多个来源的检测结果汇集在一起。
运营监控
运营监控框架提供了一种为 DeFi 协议实施运营安全的方法。例如,DeFi 协议需要了解管理员密钥的变更、执行智能合约的部署和升级,并自动扫描拉取请求(pull request)以查找安全漏洞。
- OpenZeppelin Defender 提供了一个平台,使开发者能够安全地编写代码、部署和运行智能合约。
- BlockSec Phalcon Security 可以监控与合约升级、Safe 钱包交易创建、新的签署与执行、访问控制以及治理相关的风险。
- Forta Network 拥有一套基础设施,让用户可以构建自己的机器人来监控其协议,或订阅现有的机器人以获取网络钓鱼或威胁警报。
攻击响应
该类别包括在攻击发生时触发的安全措施,包括攻击拦截、自动响应、作战室(war room)、根本原因分析以及攻击者资金流向追踪。

在攻击响应的五项措施中,攻击拦截尤为值得关注,因为它允许项目团队提前部署预防措施,成功在攻击执行前将其拦截,从而将损失降至零。自动响应平台也有助于减少攻击造成的损害。
建立作战室、进行根本原因分析以及追踪被盗资金,都是在攻击发生之后采取的被动措施。虽然这些策略可以减轻部分损害,并有助于防止未来发生类似攻击,但损失可能已经发生,且难以挽回。此外,对项目声誉造成的损害以及由此导致的用户信心丧失,其影响可能是深远的。
风险无处不在,且往往超出可控范围,但选择部署先发制人的防御措施是完全可以实现的,并且强烈推荐这样做。
攻击拦截
在实践中对抗黑客攻击时,仅靠攻击检测是不够的。这是因为,如果没有自动拦截攻击的能力,人工响应的速度就不够快。在某些情况下(如下表中的 KyberSwap、Gamma Strategies 和 Telcoin),协议采取人工行动需要几分钟甚至几个小时的时间,而这已经太迟,无法挽救协议中的资产。在近期针对 Velocore 和 Rho 的黑客攻击中,Linea 和 Scroll 整条链分别被暂停,这引发了人们对 L2 链中心化问题的担忧。

攻击拦截是指自动防止黑客攻击的能力,这需要两项关键技术:早期检测和自动抢先拦截攻击。
- 早期检测意味着系统能够在攻击交易被区块链最终确认之前,也就是在其仍处于内存池(mempool)待处理状态时,识别出攻击交易。
- 抢先拦截攻击涉及在攻击交易之前将一笔交易上链,以暂停协议,从而在攻击执行之前有效阻止攻击。
在这一类别中,BlockSec Phalcon Security 是唯一具备这些关键技术的产品。当黑客发起攻击交易后,Phalcon Security 的攻击监控引擎能够立即检测到该交易,向用户发送攻击警报,并自动抢先执行操作以暂停协议,从而将损失降至零。其关键技术已经过实战检验,成功挽救了超过 20 起、总额超过 2000 万美元的攻击事件。
自动响应
Phalcon Security、Hexagate 和 Hypernative 等平台也可以在攻击发生时自动做出响应。
订阅此类平台后,用户可以针对各种协议风险设置监控和响应措施。如果某笔交易符合监控规则,系统将自动启动用户预先设置的响应操作(例如暂停协议),从而减少损失。
然而,一些平台并没有攻击检测引擎,系统无法直接识别攻击交易并通知用户。相反,它需要用户自定义在何种条件下一笔交易可被视为攻击。由于攻击交易的特征非常复杂,而用户(通常是合约开发者)可能不具备足够的安全知识,这对他们来说可能相当具有挑战性。
作战室
当协议遭受攻击时,需要建立一个作战室。这可以帮助协议了解正在发生的情况,在社区中共享情报,并调动资源采取进一步行动。这通常需要来自不同领域的专家参与。
SEAL 911 是一个项目,旨在“为用户、开发者和安全研究人员提供一种便捷的方式,在紧急情况下与一小群高度可信的安全专业人员取得联系。”可以通过 SEAL 911 Telegram Bot 联系到该项目。当某个项目遭受黑客攻击时,可以建立一个作战室来协助该协议。
根本原因分析
当攻击发生时,协议需要了解根本原因,例如智能合约中存在的漏洞以及该漏洞是如何被利用的。这需要一些有用的工具来分析攻击交易。Phalcon Explorer、OpenChain 和 Tenderly 都可用于此目的。
资金流向追踪
资金流向追踪是指在区块链上追踪攻击者的初始资金和攻击所得利润,以定位相关地址和实体。如果资产流向了中心化实体(例如中心化交易所和其他机构级实体),可以联系执法部门协助冻结资金。
该类别中有多家公司和工具,包括 Chainalysis、TRM Labs、ARKHAM、ELLIPTIC、MetaSleuth 等。
- 例如,由 BlockSec 开发的 MetaSleuth 可以自动跨链追踪资金,并附有丰富的钱包地址标签。
- ARKHAM 拥有一个社区,协议可以在该社区中为调查悬赏,从而激励社区帮助追踪攻击者的资金。
安全教育资源
知情的思维能够构筑更强大的防御。除了上述提到的安全供应商和产品之外,DeFi 安全还有另一个至关重要的组成部分:教育平台。

这些平台为 DeFi 从业者和用户提供了理解安全见解、提升安全意识以及培养安全技能的重要资源。它们在推动 DeFi 安全发展方面发挥着至关重要的作用。我们对这些教育平台表示感谢,并列举几个值得关注的例子。
- SΞCURΞUM:一个专注于以太坊安全的 Discord 社区。它还举办每月一次的智能合约安全竞赛,即“Secureum RACE”。
- Security Incidents Library:该平台收录了所有造成损失超过 10 万美元的攻击事件,详细记录了损失情况、受影响的链、漏洞、根本原因以及概念验证(PoC)。
- Rekt:被称为 DeFi 新闻界的“暗网”,Rekt 对生态系统中的漏洞利用、黑客攻击和诈骗事件进行深入分析。
- RugDoc:一个评估项目风险的 DeFi 安全与教育社区。它还设有一个名为 RugDocWiKi 的平台,介绍 DeFi 生态系统和相关技术。
- DeFiHackLabs:一个拥有超过 2,600 名成员和近 200 名白帽黑客的 Web3 安全社区,旨在打通 Web2 和 Web3 的安全专业知识。
- Solodit:一个汇编来自各家 Web3 审计公司历史报告的平台,是智能合约审计人员的宝贵资源。
- Ethernaut:一款基于 Web3/Solidity 的游戏,玩家需要识别以太坊合约中的漏洞,类似于 CTF 挑战赛。
结语
安全性仍然是 DeFi 生态系统面临的一个持续且严峻的威胁,每年造成数十亿美元的损失。目前,大多数安全措施都是在上线前阶段实施的。然而,安全领域并没有万能的解决方案,不同的方法应贯穿于 DeFi 协议的整个生命周期。我们期望行业能够采用上线后安全解决方案,进行监控,更重要的是,能够自动拦截攻击。我们期待生态系统中能够建立起以安全为先的文化,从而全面保护用户的资产。



