> For the complete documentation index, see [llms.txt](https://yeasy.gitbook.io/blockchain_guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yeasy.gitbook.io/blockchain_guide/05_crypto/audit.md).

# 安全审计

由于区块链系统的不可更改性和高价值属性，上线前的安全审计是必不可少的环节。

## 审计流程

一个标准的安全审计流程通常包含以下阶段：

1. **需求分析**：理解项目业务逻辑、架构设计和预期目标。
2. **自动化扫描**：使用自动化工具进行初步筛查，发现常见的通用漏洞。
3. **手动审计**：由资深安全专家深入阅读代码，检查复杂的业务逻辑漏洞、经济模型缺陷以及工具无法识别的问题。
4. **形式化验证**：对于核心关键模块，通过数学方法证明代码逻辑符合规范（Mathematical Proof）。
5. **报告与修复**：生成包含漏洞详情、风险等级和修复建议的报告。开发者修复后，审计团队需进行复核（Re-audit）。

## 常用工具

以下是一些业界常用的智能合约分析与审计工具：

* **Slither**：Python 编写的 Solidity 静态分析框架，能快速检测出多种常见漏洞，且误报率较低。
* **Mythril**：基于符号执行（Symbolic Execution）的以太坊智能合约安全分析工具。
* **Manticore**：符号执行工具，支持 EVM、二进制文件和 WASM；官方仓库已处于维护模式，适合研究、复现或已有定制流程，不宜作为新项目唯一深度分析工具。
* **Echidna**：基于属性的模糊测试（Fuzzing）工具，用于测试合约是否违反了设定的安全属性。
* **Securify**：Securify v1 仓库已废弃并指向 Securify v2；新项目应先评估维护状态和编译器兼容性。

审计报告中的漏洞分类和验收基线建议使用仍在维护的标准：OWASP SCSVS/SCSTG/SCWE 适合作为开发与测试清单；EEA EthTrust Security Levels v2 或最新 Editor's Draft 适合作为审计等级和交付验收基线。SWC Registry 可用于兼容历史编号，但官方已说明其内容不再主动维护，不应单独作为当前基线。

## 审计要点

除了代码层面的漏洞（如重入、溢出），审计还应重点关注：

* **业务逻辑完整性**：代码是否真实反映了白皮书中的设计？是否存在逻辑死胡同？
* **权限管理**：是否存在超级管理员权限过大（Rug Pull 风险）？私钥管理是否安全（如必须使用多重签名）？
* **经济模型安全**：通胀机制、奖励分配是否存在被套利或耗尽的风险？
* **可升级性安全**：采用代理模式升级时，是否会破坏存储布局？

## 知名审计机构

* CertiK
* OpenZeppelin
* SlowMist (慢雾)
* Trail of Bits
* ConsenSys Diligence

> **注意**：通过审计并不代表代码 100% 安全。审计只能证明在当前认知范围内未发现已知漏洞，项目方仍需保持警惕并设立漏洞赏金计划（Bug Bounty）。
