
什么是链上审计(审计能发现什么、不能发现什么)
链上审计到底在审什么:对象、边界与输出
链上审计通常指对智能合约与其链上交互结构做系统性检查:包括代码逻辑是否符合设计、关键状态变量是否可能被绕过、权限与升级是否存在单点控制、与外部合约/预言机/DEX 的交互是否会引入可被利用的路径。它的本质不是“给项目盖章”,而是把“可验证的技术风险”尽量变成清单:哪些问题已修复、哪些问题被接受、哪些风险属于设计取舍。
它在安全结构中的作用是“缩小可被利用的攻击面”。审计会重点关注可导致资金直接损失的漏洞(比如重入、权限滥用、算术与精度问题、签名校验缺陷、授权与转账逻辑错误)、以及更隐蔽的经济攻击面(例如与 AMM 价格、清算、预言机更新频率相关的可操纵性)。重要性在于:链上合约一旦部署,很多逻辑不可逆或修复成本极高;同时合约是公开的,攻击者可以无限次离线推演。用户最常误解的是把“审计报告”当作“安全保证”或“不会归零”的承诺,但审计只能覆盖审计范围内的代码与已知类型风险,并且依赖当时的版本、配置与假设。
审计能发现什么:安全漏洞、权限结构与经济攻击面
1)合约漏洞(本质定义):指代码层面的缺陷使得攻击者能在不符合设计意图的情况下改变状态、转移资产或阻断功能。作用:决定合约最基本的“可被破坏方式”。重要性:这类问题往往是一次性、不可逆的资金损失。常见误解:以为“只要不用复杂功能就不会中招”,但漏洞常在底层授权、转账、回调、升级等路径触发,用户是否“谨慎操作”并不能消除漏洞本身。
2)权限与治理结构(本质定义):合约中管理员、治理合约、多签、Timelock、升级代理(Proxy)等对关键参数与资金流的控制关系。作用:决定系统是否存在“单点开关”,以及变更是否有延迟与可监督性。重要性:即便没有传统意义的漏洞,过强的管理员权限也可能在规则层面造成风险,例如随时更改手续费、黑名单、暂停赎回、替换实现合约。常见误解:把“去中心化”当作口号,而不去看具体的权限路径;或者看到多签就默认安全,却忽略签名门限、签名者关联性与是否存在绕过多签的后门。
3)经济与集成风险(本质定义):合约与外部系统交互带来的可操纵性,例如依赖 DEX 即时价格、清算触发条件、预言机更新机制、跨合约回调顺序等。作用:决定攻击者是否能用“市场行为+合约规则”组合出获利路径。重要性:很多损失不是“代码写错”,而是“机制允许被利用”。例如“预言机价格异常是什么(如何导致清算或被攻击)”这类问题,审计会看预言机来源、喂价频率、是否有偏离保护、是否被单一市场价格影响。常见误解:把经济攻击当作“市场波动”,忽视攻击者可以用资金与交易排序去放大波动。
4)MEV 与交易排序相关风险(本质定义):矿工/验证者或搜索者通过重排、插入、抢跑交易获取额外收益的结构性现象。作用:影响用户成交价格、清算顺序、套利路径,甚至影响合约在同一区块内的状态假设。重要性:即使合约逻辑正确,也可能在“同一块内先后顺序不同”时暴露可被夹击的路径。与“什么是三明治攻击(Sandwich Attack 如何吃掉交易者收益)”类似,审计会检查是否存在对滑点、最小输出、价格保护、时间加权等防护的依赖与缺口。常见误解:认为 MEV 只发生在交易者身上;实际上清算、再平衡、铸造赎回等系统行为同样可能被排序影响。

审计不能发现什么:业务承诺、链下因素与“合法但危险”的设计
1)Rug Pull / 跑路盘(本质定义):不是代码漏洞,而是项目方利用权限或预设规则把资产或价值从用户侧转走的结构。典型表现包括:可随时提走资金池资产、可任意增发并抛售、可把手续费导向私人地址、可更换关键合约到恶意版本。作用:它是“规则允许的转移”,不一定违反合约代码。重要性:用户损失来自权力结构,而非黑客。常见误解:以为“审计过就不会 Rug”;实际上审计最多能把权限写在报告里,无法替代对治理与信任假设的判断。类似“地毯式撤资是什么(DeFi 项目如何瞬间清空池子)”,很多时候是权限设计或流动性控制机制导致的结果。
2)庞氏结构(本质定义):收益与兑付主要依赖后续参与者资金流入,而非可持续的外部现金流或真实使用价值的结构。作用:它是代币经济与资金流的“分配逻辑”,不一定体现在某个函数漏洞里。重要性:当新增资金放缓时,系统可能出现挤兑与价格螺旋。常见误解:把“高 APY”当作技术能力或创新;审计不负责证明收益来源的可持续性。
3)挤兑(本质定义):当参与者同时尝试赎回/提现,系统因流动性不足、资产期限错配或价格冲击而无法按预期兑付的机制性风险。作用:它揭示了协议在极端情况下的“流动性承受能力”。重要性:挤兑会放大滑点、触发清算、造成脱锚或暂停赎回。常见误解:认为只要链上透明就不会挤兑;透明只能让问题更早暴露,不能凭空提供流动性。
4)Tokenomics 的“合法风险”:通胀、解锁、排放、销毁(本质定义):这些不是漏洞,而是供给变化与分配规则。审计通常只验证“合约是否按规则执行”,不判断规则是否对用户友好。
– 通胀:代币总供给随时间增加的结构(铸币或奖励)。作用是激励参与与安全(如质押安全预算)或引导早期增长。重要性在于稀释持有者的相对份额,并影响抛压。常见误解是把通胀等同于“项目会做大”,忽略通胀如何分配、领取条件与卖出压力。
– 解锁:此前锁定的代币在特定时间或条件下变为可转移。作用是安排团队/投资人/生态激励的释放节奏。重要性在于供给冲击与治理权变化(投票权集中度可能突然上升)。常见误解是只看“解锁日期”,不看解锁对象是谁、是否能立即卖出、是否影响治理。
– 排放:按区块/时间向特定行为发放代币奖励的规则(流动性挖矿、质押奖励等)。作用是把代币分发给“被希望发生的行为”。重要性在于排放速度决定短期卖压与参与者结构(农民 vs 长期用户)。常见误解是把排放当作“无成本收益”,忽略奖励来自新增供给或他人稀释。
– 销毁:把代币从流通中永久移除(发送到不可用地址或减少总供给)。作用可能是对冲通胀、把手续费回流给持有者、或调整供给曲线。重要性在于销毁是否真实发生、是否可被管理员随意开关、销毁来源是否可持续。常见误解是把“有销毁”当作必然利好,而不看销毁规模、节奏与是否伴随更大的增发。
把审计当作“结构阅读器”:该如何理解报告里的关键信号
链上审计最有价值的部分,是把系统拆成可核对的结构:资产从哪里来、由谁控制、在什么条件下能被转走;关键价格从哪里来、多久更新、在极端行情下会发生什么;升级与参数变更是否可追踪、是否有延迟;以及在 MEV 环境下交易顺序改变会不会破坏假设。审计能帮助你确认“代码是否按它宣称的方式运行”,但无法替你判断“它宣称的方式是否值得信任”。
因此,理解“审计能发现什么、不能发现什么”的核心,是把注意力从“有没有审计”转向“审计覆盖了哪些合约与版本、列出了哪些权限与假设、哪些风险被接受”。在 Web3 里,很多风险来自机制设计与权力结构,而不仅是代码有没有 bug。



