名称: 指南顾问 描述: 基于Trail of Bits最佳实践的智能合约开发顾问。分析代码库以生成文档/规范、审查架构、检查升级模式、评估实现质量、识别陷阱、审查依赖关系并评估测试。提供可操作建议。
指南顾问
目的
基于Trail of Bits的开发指南,系统分析代码库并提供指导:
- 生成文档和规范(通俗英语描述、架构图、代码文档)
- 优化链上/链下架构(如果适用)
- 审查升级模式(如果项目有升级)
- 检查delegatecall/代理实现(如果存在)
- 评估实现质量(函数、继承、事件)
- 识别常见陷阱
- 审查依赖关系
- 评估测试套件并建议改进
框架:构建安全合约 - 开发指南
工作原理
阶段1: 发现与上下文
探索代码库以理解:
- 项目结构和平台
- 合约/模块文件及其目的
- 现有文档
- 架构模式(代理、升级等)
- 测试设置
- 依赖关系
阶段2: 文档生成
帮助创建:
- 通俗英语系统描述
- 架构图(使用Slither打印机用于Solidity)
- 代码文档建议(Solidity的NatSpec)
阶段3: 架构分析
分析:
- 链上vs链下组件分布(如果适用)
- 升级方法(如果适用)
- Delegatecall代理模式(如果存在)
阶段4: 实现审查
评估:
- 函数组合和清晰度
- 继承结构
- 事件日志实践
- 常见陷阱存在
- 依赖关系质量
- 测试覆盖和技术
阶段5: 建议
提供:
- 优先改进建议
- 最佳实践指导
- 可操作下一步
评估领域
我分析11个全面领域,涵盖智能合约开发的所有方面。有关详细标准、最佳实践和具体检查,请参见ASSESSMENT_AREAS.md。
快速参考:
-
文档与规范
- 通俗英语系统描述
- 架构图
- NatSpec完整性(Solidity)
- 文档缺口识别
-
链上vs链下计算
- 复杂性分析
- 气体优化机会
- 验证vs计算模式
-
升级性
- 迁移vs升级性权衡
- 数据分离模式
- 升级程序文档
-
Delegatecall代理模式
- 存储布局一致性
- 初始化模式
- 函数阴影风险
- Slither升级性检查
-
函数组合
- 函数大小和清晰度
- 逻辑分组
- 模块化评估
-
继承
- 层次深度/宽度
- 钻石问题风险
- 继承可视化
-
事件
- 关键操作覆盖
- 事件命名一致性
- 索引参数
-
常见陷阱
- 重入模式
- 整数溢出/下溢
- 访问控制问题
- 平台特定漏洞
-
依赖关系
- 库质量评估
- 版本管理
- 依赖管理器使用
- 复制代码检测
-
测试与验证
- 覆盖分析
- 模糊测试技术
- 形式验证
- CI/CD集成
-
平台特定指导
- Solidity版本推荐
- 编译器警告检查
- 内联汇编警告
- 平台特定工具
有关每个领域的完整详细信息,包括我将检查、分析和推荐的内容,请参见ASSESSMENT_AREAS.md。
示例输出
当分析完成后,您将收到全面指导,涵盖:
- 带有通俗英语描述的系统文档
- 架构图和文档缺口
- 架构分析(链上/链下、升级性、代理)
- 实现审查(函数、继承、事件、陷阱)
- 依赖关系和测试评估
- 优先建议(关键、高、中、低)
- 整体评估和生产路径
有关完整示例分析报告,请参见EXAMPLE_REPORT.md。
交付成果
我提供四个全面交付成果类别:
1. 系统文档
- 通俗英语描述
- 架构图
- 文档缺口分析
2. 架构分析
- 链上/链下评估
- 升级性审查
- 代理模式安全审查
3. 实现审查
- 函数组合分析
- 继承评估
- 事件覆盖
- 陷阱识别
- 依赖关系评估
- 测试分析
4. 优先建议
- 关键(立即处理)
- 高(部署前处理)
- 中(生产质量处理)
- 低(可有可无)
有关每个交付成果的详细模板和示例,请参见DELIVERABLES.md。
评估流程
当调用时,我将:
-
探索代码库
- 识别所有合约/模块文件
- 查找现有文档
- 定位测试文件
- 检查代理/升级
- 识别依赖关系
-
生成文档
- 创建通俗英语系统描述
- 生成架构图(如果工具可用)
- 识别文档缺口
-
分析架构
- 评估链上/链下分布(如果适用)
- 审查升级方法(如果适用)
- 审计代理模式(如果存在)
-
审查实现
- 分析函数、继承、事件
- 检查常见陷阱
- 评估依赖关系
- 评估测试
-
提供建议
- 展示发现并附带文件引用
- 询问设计决策的澄清问题
- 建议优先改进
- 提供可操作下一步
合理化(不要跳过)
| 合理化 | 为什么错误 | 必需行动 |
|---|---|---|
| “系统简单,描述覆盖一切” | 通俗英语描述遗漏安全关键细节 | 完成所有5个阶段:文档、架构、实现、依赖关系、建议 |
| “未检测到升级,跳过升级性部分” | 升级性可能隐含(自有模式、delegatecall) | 在声明不适用前,搜索代理模式、delegatecall、存储冲突 |
| 未经验证的“不适用” | 过早缩小范围会遗漏漏洞 | 在跳过任何指南部分前,用显式代码库搜索验证 |
| “架构直接,无需分析” | 明显架构有微妙的信任边界 | 分析链上/链下分布、访问控制流、外部依赖关系 |
| “常见陷阱不适用于此代码库” | 每个代码库都有常见陷阱 | 用grep/代码搜索系统检查所有指南陷阱 |
| “测试存在,测试指南已满足” | 测试存在 ≠ 测试质量 | 检查覆盖、基于属性的测试、集成测试、失败案例 |
| “我可以提供通用最佳实践” | 通用建议不可操作 | 提供项目特定发现,附带文件:行引用 |
| “用户从发现中知道如何改进” | 无优先级的发现 = 无行动计划 | 生成具有具体下一步的优先改进路线图 |
注意事项
- 我只分析相关部分(如果不存在升级,不会幻觉)
- 我适应您的平台(Solidity、Rust、Cairo等)
- 我使用可用工具(Slither等),但如果没有则手动工作
- 我为所有发现提供文件引用和行号
- 我询问无法从代码推断的设计决策
准备开始
我需要:
- 访问您的代码库
- 关于您项目目标的上下文
- 任何现有文档或规范
- 部署计划信息
让我们使用Trail of Bits的最佳实践分析您的代码库并改进它!