为什么“代码审计”不能保证 DeFi 完全安全

很多人把“做过审计”理解成“已经安全”,但在 DeFi 里,审计更像一次体检:能发现一部分已知问题,降低概率,却无法给出“不会出事”的保证。原因不在于审计没用,而在于 DeFi 的风险来自结构本身:代码只是其中一层;价格输入、激励设计、参与者行为和极端行情都会把系统推向非预期状态。

审计能做什么、不能做什么

审计通常会检查合约是否存在常见漏洞、权限是否过大、关键函数是否可能被滥用,并对一些边界条件提出修改建议。这能显著降低“低级错误”导致的事故概率。

但审计的天然限制也很明确:第一,审计针对的是某个版本的代码,后续升级、参数调整、接入新模块、新的跨链桥或外部协议,都可能引入新的风险。第二,很多风险并不来自“代码写错”,而来自“机制在特定条件下会失效”。第三,审计也依赖假设:例如预言机价格正常、链上流动性足够、参与者不会在极端条件下集中撤出。一旦现实打破假设,系统可能在“代码完全按设计运行”的情况下仍然造成损失。

换句话说,审计解决的是“程序有没有明显缺陷”,却无法替你保证“这个金融系统在所有情况下都能稳定兑付”。

DeFi 的三类结构性风险:代码、预言机、经济模型

1)代码漏洞:不是只有“写错”才会出事

代码风险最直观:重入攻击、权限配置错误、逻辑漏洞、边界条件处理不当等,都可能被利用把资金转走。对普通用户来说,关键点是:链上资产转移通常不可逆,一旦合约把钱转出,事后追讨非常困难。

即便审计过,也可能存在两类“漏网之鱼”:
– 复杂度带来的遗漏:协议模块多、调用路径长、与外部合约交互频繁,越复杂越难穷举所有状态。
– 升级与运维带来的新风险:可升级合约、管理员权限、紧急暂停开关等设计,本意是修复与止损,但如果权限边界不清晰或密钥管理不当,也会变成新的攻击面。

所以,“审计过”更像降低出事概率,而不是把风险清零。

2)预言机风险:价格输入一旦异常,系统会“按错价运行”

DeFi 很多功能依赖外部价格:借贷是否需要补仓、清算线在哪里、抵押品值多少钱、合成资产是否偏离锚定等。预言机如果出现延迟、数据源异常、低流动性导致的价格跳变,系统可能触发错误清算或错误计价。

更麻烦的是,预言机不仅会“出错”,还可能被操纵:当某个资产在特定交易对上流动性很薄,短时间内价格就可能被拉动;如果协议用这个价格作为清算依据,就会出现“清算按异常价格执行”的连锁反应。很多用户只看到结果是“我明明没做错操作却被清算”,但机制上可能只是系统拿到了不可靠的价格输入。

这也是为什么会有人讨论“什么是“清算风险”(链上借贷系统如何爆掉)”:清算并不等于系统稳健,清算本身也依赖价格与流动性,一旦输入和市场深度不匹配,清算可能从风险控制变成风险放大器。

代码审计

3)经济模型风险:代码没问题,体系也可能自我崩塌

经济模型风险常被忽略,因为它看起来不像“被黑”。但很多协议的收益与稳定性,来自激励设计与参与者行为的平衡:
– 激励用完:早期靠补贴吸引流动性,一旦补贴下降,流动性撤出,滑点变大、清算更难、交易成本上升,风险反而提高。
– 套娃结构崩塌:收益来源依赖“再抵押、再借贷、再质押”的层层叠加,只要其中一层出现价格波动或清算,就会触发连锁去杠杆。
– 奖励通胀导致无法自洽:用大量代币奖励维持高 APY,短期数字好看,但长期可能形成“收益靠增发支付”的结构,参与者预期转弱时,抛压会反过来打击抵押品与协议安全边际。

这类风险下,协议可能完全按规则运行,却依然出现“挤兑式撤出、流动性枯竭、价格失真、清算失灵”。这也解释了为什么 DeFi 协议会在极端行情出现连锁清算:问题不一定是代码漏洞,而是模型在极端条件下的脆弱性被集中暴露。

从 DeFi 到 CeFi 与交易所:托管与兑付的风险长什么样

DeFi 的风险更多是“机制与代码公开但可能失灵”;CeFi 与交易所的风险则更像“你把资产交给一个机构,它欠你一笔债”。当你把币存进平台,本质上是把资产所有权与控制权交出,换来平台对你的兑付承诺。

CeFi:黑箱运营下的挪用与挤兑

在 CeFi 场景里,用户看到的是账户余额,但平台可能将资金用于借贷、做市、投资或其他用途。只要资产期限错配(短期可提现负债,对应长期或高波动资产),在市场剧烈波动或用户集中提现时,就容易出现兑付困难。

因此,“暂停提现”不是一个中性动作,通常意味着平台短期流动性紧张:要么资产被锁定、要么损失未实现、要么需要时间筹措资金。你可以把它理解为:平台暂时无法履行“随时兑付”的承诺。

这也是很多人关心“为什么交易所爆雷时用户可能无法拿回本金”的原因:当平台资产不足以覆盖负债时,用户的余额不再等同于可立即取回的资产,而更像破产程序中的债权。

交易所:托管风险 + 系统风险 + 黑客风险

交易所兼具两种属性:一方面它提供撮合、杠杆、合约等交易服务;另一方面它托管用户资产。托管意味着:链上真正的资产控制权在交易所的钱包与内部账本里,用户看到的是平台记账结果。

因此交易所风险主要体现在三点:
– 托管风险:平台内部管理、风控、资产隔离是否健全,外部很难完全验证。
– 系统风险:极端行情时,撮合、风控、强平系统的规则与稳定性会直接影响用户结果;如果系统拥堵、价格源异常或风控参数不合理,可能出现非预期的强平与损失。
– 黑客攻击:一旦交易所热钱包或关键系统被攻破,损失可能由平台承担,也可能通过各种方式转嫁给用户(例如延迟提现、限制提币、调整规则)。对用户而言,最直接的感受就是“资产短期不可用”,以及对平台偿付能力的担忧。

需要强调的是:无论是 DeFi 还是交易所,风险并不只在“会不会被黑”,还在“在压力测试下是否还能按承诺运行”。

收益从哪里来:谁在承担风险

理解“审计不等于安全”,最终要回到一个更底层的问题:收益从哪里来。

– 在 CeFi 里,高收益往往来自平台把用户资产拿去做投资、借贷、做市或承担市场风险。收益越高,通常意味着平台承担了更激进的策略,或者存在更明显的期限错配与信用风险;真正承担尾部风险的,往往是平台资产不足时的所有债权人,也就是用户。
– 在 DeFi 里,收益多来自交易费、借贷利差、清算罚金、代币激励。看起来“自动、透明”,但风险会被分配给特定参与者:做 LP 的人承担无常损失与被套利的风险;借贷的出借方承担坏账与清算失灵的尾部风险;持有奖励代币的人承担通胀与价格下跌风险。

所以不存在“无风险高收益”:收益本质上是风险补偿。审计能降低“代码层面的事故概率”,却无法消除价格输入失真、流动性枯竭、激励失衡、挤兑与期限错配这些更宏观的结构风险。把“审计”当成安全保证书,往往会忽略真正决定结果的那部分:系统在压力下如何运转,以及风险最终会落到谁的账上。