1. 基本信息
| 项目 | 内容 | 数据来源 |
|---|---|---|
| 名称 | dimensional-analysis(trailofbits/skills 仓库 plugins/ 目录下的独立子技能) |
SKILL.md |
| 作者/维护者 | Trail of Bits;官方博客由 Benjamin Samuels 署名发布(2026-03-25),PR #132 合并入官方仓库 | GitHub API(commits)+ 官方博客 |
| 来源链接 | https://github.com/trailofbits/skills/tree/main/plugins/dimensional-analysis/skills/dimensional-analysis | — |
| 许可证 | CC-BY-SA-4.0(仓库级) | GitHub API |
| GitHub Stars / Forks | 7,111 / 607(整个 trailofbits/skills 合集仓库层面,非本子技能单独统计,见第 7 章说明) | GitHub API |
| 最新版本 | 无独立版本号;本子技能最近一次实质性更新 2026-04-28(allowed-tools 格式修复),所属路径最近提交 2026-09-15 | GitHub API(commits) |
| 安装方式 | claude plugin marketplace add trailofbits/skills + claude plugin install dimensional-analysis@trailofbits |
官方仓库说明 |
2. 功能介绍与亮点
dimensional-analysis 是一套针对代码中“单位/精度/量纲不匹配”这类算术漏洞的自动化标注与检测流水线,尤其面向 DeFi 协议(Solidity、Rust/Anchor、CosmWasm 等)与其他涉及混合精度数值计算的链上链下代码。
核心思路不是让 LLM 直接“找漏洞”,而是先让它变成一台“词汇标注机器”:四阶段流水线(词汇与范围发现 → 锚点标注 → 跨函数传播 → 验证)把每个数值表达式标注上量纲类型(如 D18{price}),再机械比对传播链上的量纲是否一致,从而揪出因精度换算或单位混用导致的公式错误。
主要亮点:
- 每一步都委派给专职子代理并配有覆盖率门槛与完成检查清单,不允许“子代理说做完了”就收尾
- Trail of Bits 官方博客披露:该方法在真实审计案例回测中达到 93% 召回率,显著高于直接提示词方式的 50%
- 全程仅用 Read/Write/Grep/List/Glob/Task/TodoRead/TodoWrite,不含任何 Shell 执行或网络请求工具
- 附四份参考文档(量纲代数规则、常见量纲词表、漏洞模式库、标注格式规范)供子代理复用
3. 适用场景
固定分类:安全与合规。
适合开发或审计 DeFi 协议、链上智能合约、或任何存在跨精度/跨单位数值计算(如代币精度换算、价格预言机 scaling)的链下金融代码的团队;对初中级开发者而言,它能把“这行乘法到底该不该除以 10^18”这类容易凭直觉判断出错的问题,转化成可机械核对的标注清单。
4. 跨 Agent 兼容性
| Agent | 结论 | 依据 |
|---|---|---|
| Claude Code | 原生支持 | Task/TodoRead/TodoWrite 子代理编排是 Claude Code 原生能力,四阶段流水线依赖此机制实现 |
| Codex | 需适配 | 依赖 Task 等 Claude Code 专属工具名做多子代理委派,Codex CLI 无原生对应机制,需改写委派逻辑才能完整跑通流水线 |
| OpenClaw | 需适配 | 同上,子代理编排机制不通用 |
| Hermes Agent | 未验证 | 已抓取材料中未发现相关证据 |
5. 推荐理由
DeFi 与链上金融代码里的算术漏洞往往不是逻辑错误,而是“数对了、单位错了”——这类问题传统静态分析工具很难靠模式匹配抓到,因为它需要理解每个数字在业务上代表什么。dimensional-analysis 把这件事拆成标注、传播、验证三步机械核对,官方回测数据显示召回率远超直接让 LLM 找漏洞的方式,且全程不执行代码、不联网,标注结果本身也是留给团队复核的可读文档。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | 发布方 Trail of Bits 为公认的一线安全研究机构,官方博客公开发布该技能;但检索未发现本子技能自身的独立第三方讨论或采用数据,故不进一步上探档位 |
| 可用性 | 9 | 不依赖任何外部三方程序(不需 apktool/clang/cargo 等),四阶段流程配有完整覆盖率门槛与完成检查清单防止半成品收尾;所属路径近日仍有提交,自 2026-03 发布后持续维护 |
| 安全性 | 9 | 见下方检查清单 |
安全检查清单: ① Shell 命令:无 Bash 类工具,子代理仅用 Read/Write/Grep/List/Glob/Task/TodoRead/TodoWrite,不执行任意 shell 命令 ② 联网外发:无任何网络请求或抓取类工具 ③ API key/凭据:不要求任何凭据 ④ 可疑指令:逐份核查 SKILL.md 全文及四份 references 文档,未发现夹带指令、混淆代码或隐蔽外发 ⑤ 作者信誉:Trail of Bits 官方博客署名发布,PR 经官方仓库审核合并,无造假迹象 ⑥ License:CC-BY-SA-4.0(仓库级),明确 ⑦ 维护时间:所属路径最近提交为 1 天前,近 3 个月内持续有维护
7. 跟同类 Skills 相比的优势
| 技能 | 定位 | 与 dimensional-analysis 的差异 |
|---|---|---|
| static-analysis(trailofbits/skills 同仓库) | 基于 CodeQL/Semgrep/SARIF 的通用静态扫描 | 靠预定义规则模式匹配已知漏洞类型,不理解数值背后的业务量纲,无法发现“语法正确但单位换算错了”的公式 bug |
| zeroize-audit(trailofbits/skills 同仓库) | 检测敏感数据(密钥/密码)是否被正确清零 | 关注内存安全这一垂直问题,不涉及算术精度或量纲一致性 |
| semgrep-rule-creator(trailofbits/skills 同仓库) | 为已知漏洞模式编写 Semgrep 检测规则 | 需要人先发现漏洞模式才能写规则,是“已知模式的规模化检测”;dimensional-analysis 是主动发掘未知的量纲不匹配 |
dimensional-analysis 的差异化在于“语义级”而非“模式级”检测——它不比对代码是否符合某条已知规则,而是先建立每个数值的量纲词汇表,再机械核对传播链上是否自洽,能抓到传统规则引擎因为“看不懂业务含义”而漏掉的一类 bug。
8. 用户评价
该技能目前在第三方平台尚无具名用户评价。发布方 Trail of Bits 官方博客(2026-03-25)披露了内部回测数据——对比真实(未公开)审计案例中的量纲不匹配问题,该方法召回率达 93%(标准差 12%),显著高于直接提示词方式的 50%(标准差 20%)——但这是发布方自述的测试结果,非独立第三方复现或评价。
9. 其他补充
无。
10. 安装使用方式
- Claude Code:
claude plugin marketplace add trailofbits/skills,再claude plugin install dimensional-analysis@trailofbits - 手动复制:将
plugins/dimensional-analysis/skills/dimensional-analysis/目录复制到 Agent 的 skills 目录 - 触发方式:
/dimensional-analysis,或对话中说“帮我做量纲分析”“annotate units in this codebase”“审计这个 DeFi 协议的算术漏洞” - 安装后无需重启;技能只运行
full-auto一种模式,会自动扫描全部计入范围的算术文件并逐一走完标注、传播、验证三步
11. 注意事项
- 依赖 Task 子代理编排能力,在不支持该机制的 Agent 生态中需要先改写委派逻辑才能完整跑通四阶段流水线
- 大型代码库按约 10–30 文件一批分波处理,分析耗时随代码规模增长,不是“秒出结果”的轻量工具
- 93% 召回率数据来自 Trail of Bits 官方回测(每代码库 10 个样本,基于未公开审计案例),尚无独立第三方复现验证
- 跨 Agent 平台的兼容性尚未在 Hermes Agent 上验证,实际使用前建议先做小范围测试