AI 合约审计先做分诊:候选发现怎样变成可复核证据

发布时间:2026/10/24 23:57:21

AI 合约审计先做分诊:候选发现怎样变成可复核证据 同一份合约交给多个模型通常能收回一叠措辞笃定的风险报告。问题是其中有些路径不可达有些依赖错误的部署配置还有些只是重复描述同一个状态更新顺序。把报告数量当成安全进展会把分诊工作越积越多。以太坊基金会在 7 月发布的协议代码审计经验中强调了真实可达性、自包含复现和独立判断的重要性。这是方法总结不是十月新发布的模型榜单也不能替任何模型给出本项目的准确率。方法原文先写清楚“什么结果会推翻这条判断”一条候选至少要包含目标版本、外部入口、预期不变量、破坏机制和复现方式。比如“提款函数可能有问题”太宽“在余额为 2 时提交负数提款余额不应增加”才是可以检验的主张。真实 Solidity 的无符号整数接口不会直接接受负数这也提醒我们针对 Python 教学模型的反例不能冒充 EVM 漏洞。GLM-5.3 可以作为候选生成器之一但模型名称不能替代证据。官方编程与网络安全能力介绍描述的是产品及其评估背景不代表下面例子实际调用过模型更不代表模型完成了某个匿名头部协议的审计。官方研究介绍图中提交号与命令是产物字段示意不是本例的真实审计记录。在一个可控目标上检查不变量下面给出故意有缺陷的本地记账函数以及加上前置条件的版本。目标是说明如何构造反例、如何拒绝不满足入口条件的输入不涉及任何真实资产。def unchecked_withdraw(balance, amount): return balance - amount def checked_withdraw(balance, amount): if not isinstance(amount, int) or isinstance(amount, bool): raise ValueError(integer amount required) if not 0 amount balance: raise ValueError(amount outside allowed range) return balance - amount # Teaching counterexamples for the intentionally unchecked Python function. assert unchecked_withdraw(2, -1) 2 assert unchecked_withdraw(2, 3) 0 for amount in (-1, 0, 3, True): try: checked_withdraw(2, amount) except ValueError: pass else: raise AssertionError(invalid input was accepted) assert checked_withdraw(2, 2) 0 print(2 counterexamples and 5 guarded cases checked)保存为triage.py运行python3 triage.py。这份程序的成功输出只证明两个反例能破坏未检查的 Python 版本而修正版本拒绝列出的四种非法输入并允许一次合法提款。它没有执行 Slither、Foundry 或真实合约也没有验证合约间重入和权限模型。工具失败不能变成“没发现问题”审计调度器应分别记录工具退出码、输出是否可解析、测试是否真正运行以及断言究竟检查了什么。缺少可执行文件是环境错误JSON 无法解析是产物错误测试编译失败是复现失败。三者都不应被一条固定的“重入漏洞”结果顶替也不能自动算作安全通过。候选去重可以用目标版本、入口和不变量构成键但不要只按标题相似度合并。同一个入口可能违反不同属性两个不同函数也可能共享同一根因。保留被拒绝的理由比反复重新生成相同候选更有用。真正值得交给审阅者的是能在指定环境下重跑的证据链。模型负责扩大搜索面工具负责给出可观察结果人负责确认范围、影响和修复优先级。这种分工比给流水线贴上“全自动审计”标签更接近可维护的软件工程。
延伸阅读

更多相关文章

2026/10/24 23:52:21

MyBatisPlus批量插入性能优化与实现方案

1. 为什么需要自己实现MyBatisPlus批量插入MyBatisPlus作为MyBatis的增强工具,虽然提供了基础的CRUD操作,但在批量插入场景下存在几个明显的痛点。首先是性能问题,默认的saveBatch()方法实际上是通过for循环执行单条INSERT语句,当…

2026/10/25 0:52:50

Azure DevOps Pipeline 排错实战:从 YAML 报错到部署故障

简介:Azure DevOps Pipelines 官方文档离线整理版,适合需要系统搭建持续集成/持续交付体系的开发、运维与 DevOps 工程师。全书围绕 CI/CD 展开,涵盖从免费注册、创建第一个管道到自定义 YAML 管道的完整流程,并对代理、条件、表达…

2026/10/25 0:52:50

计算机网络期末复习:分层协议、时延计算与IP分片易混点梳理

简介:这份《计算机网络》期末复习电子版资料对应谢希仁第8版教材,面向高校计算机相关专业备考期末的学生,也适合需要梳理网络基础概念的自学者。内容围绕互联网的连通性与共享、边缘部分与核心部分、电路交换/报文交换/分组交换、性能指标计算…

2026/10/25 0:47:50

MCP工具选型别做伪横评:用能力、权限与证据填一张表

挑MCP工具时,一张看起来精确的性能表很容易让人安心。但如果不知道测的是哪个版本、哪种任务、是否包含模型推理和网络等待,0.8毫秒和15毫秒几乎没有可比性。更实用的第一张表,是记录工具能够做什么、它需要什么权限、依据在哪里。 10月22日…

2026/10/25 0:47:50

布隆过滤器不是答案缓存:先堵住 Token 分流里的误命中

缓存方案里最容易被忽略的一条线,是“这个请求可能出现过”与“我有权返回这个答案”之间的距离。布隆过滤器只适合做前一种判断。把命中当成答案命中,省下的模型调用可能换来错误响应,甚至把别人的答案返回给当前用户。 10 月 13 日 GitHub…

2026/10/25 0:47:50

RAG 合成对抗集怎么做:先拆开错误前提、版本冲突与缺证据

一套RAG系统能回答文档目录里的问题,并不说明它能处理用户的真实问法。用户可能把前提说反,可能引用旧制度,也可能问到知识库从来没有收录的事项。把这些情况合在一个“准确率”里,会让修复工作失去方向。 Anthropic 在10月9日披…

2026/10/25 0:47:50

小型无人机自主飞行系统:从坐标系到路径规划的工程实现

简介:这是一本面向无人机系统工程师、飞行控制研究者及高校航空航天专业高年级本科生与研究生的经典教材,系统讲授小型无人机(MAV)从理论建模到工程实现的完整知识链。全书覆盖系统架构、多坐标系转换(地球/机体/航迹坐…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑