ABSatVPS/qwen-proofgate
GitHub: ABSatVPS/qwen-proofgate
ProofGate 是一个以人工审批为核心的智能合约预审计工作流代理,通过确定性扫描器与 Qwen 大模型协作生成结构化审计证据包。
Stars: 0 | Forks: 0
# Qwen ProofGate
Qwen ProofGate **不是** AI 审计员。它是一个**审计操作自动驾驶系统**。
确定性扫描器从 Solidity 代码中生成结构化证据。Qwen Cloud 将这些证据解读为易于阅读的分类包。人工审批环节控制着发现的结果是否最终确定。只有在获得批准后,系统才会生成预审计准备包。
本项目中的“Proof”指的是审计证据打包,而不是零知识证明。
## 工作原理
1. 用户提交 GitHub 仓库 URL 或选择一个演示夹具
2. 后端针对 Solidity 合约运行确定性扫描器检查
3. Qwen Cloud 对生成的证据进行分类 —— 对发现进行分组、解释影响并建议修复方案
4. 人工审批环节控制所有外部操作(报告生成、GitHub issues)
5. 系统生成预审计准备包:Markdown 报告、SARIF 输出、执行追踪
## Qwen Provider 配置
Qwen ProofGate 支持三种分类 provider,通过 `QWEN_PROVIDER` 进行选择:
| Provider | 设置 | 用例 |
|----------|---------|----------|
| `MockQwenClient` | `QWEN_PROVIDER=mock` (默认) | 测试、确定性兜底方案 |
| `OllamaQwenClient` | `QWEN_PROVIDER=ollama` | 使用 Qwen 系列模型进行本地 staging |
| `RealQwenClient` | `QWEN_PROVIDER=dashscope` | 通过 Alibaba Cloud DashScope 进行最终提交 |
### 使用 Ollama 进行本地 Qwen Staging
在 Qwen Cloud 额度可用之前进行本地开发:
```
# 使用 qwen3.5:9b 启动 Ollama
ollama run qwen3.5:9b
# 使用 Ollama provider 运行 ProofGate
QWEN_PROVIDER=ollama \
OLLAMA_MODEL=qwen3.5:9b \
OLLAMA_BASE_URL=http://localhost:11434/v1 \
uvicorn backend.main:app --reload
```
Ollama 模式使用兼容 OpenAI 的 `/v1/chat/completions` endpoint。证据边界防护机制确保模型无法凭空捏造发现 —— 只能解读扫描器证据。
**Ollama 是一个 staging provider,而不是最终的 Qwen Cloud provider。** 最终的黑客松提交使用 `QWEN_PROVIDER=dashscope` 以及 Alibaba Cloud 额度。
### Provider 选择
```
QWEN_PROVIDER=mock
# allowed: mock, ollama, dashscope
# 对于 dashscope:
QWEN_API_KEY=your_dashscope_key
# 对于 ollama:
OLLAMA_BASE_URL=http://localhost:11434/v1
OLLAMA_MODEL=qwen3.5:9b
```
## 快速开始
```
cp .env.example .env
# 使用你的 Qwen API key 编辑 .env(对于 demo 是可选的)
docker-compose up --build
```
- API: `http://localhost:8000`
- Frontend: `http://localhost:3000`
- API 文档: `http://localhost:8000/docs`
## API Endpoints
| 方法 | 路径 | 认证 | 描述 |
|--------|------|------|-------------|
| POST | `/scan` | 无 | 提交 repo 进行扫描 |
| GET | `/jobs/{job_id}` | 无 | 获取任务状态和发现结果 |
| POST | `/jobs/{job_id}/approve` | X-API-Key | 批准/拒绝发现结果 |
| GET | `/jobs/{job_id}/report` | 无 | 下载预审计包(仅限 COMPLETED 状态) |
| GET | `/jobs/{job_id}/report/sarif` | 无 | 下载 SARIF(仅限 COMPLETED 状态) |
| GET | `/health` | 无 | 健康检查 |
## 安全模型
- **审批 endpoint 需要 API 密钥**(`X-API-Key` 标头)
- **任务 ID** 在文件系统使用前会根据严格格式进行验证
- **审批状态机** 强制执行有效的状态转换(终态无法被跳过)
- **报告仅在** 所有人工发现结果得到处理后才会生成
- **Repo URLs** 在演示范围内被限制为 HTTPS GitHub
- **扫描并发数** 被限制为 4 个任务,超时时间为 300 秒
## 架构
有关完整的架构文档,请参阅 [docs/architecture.md](docs/architecture.md)。
## 演示脚本
有关 3 分钟的演示流程,请参阅 [docs/demo-script.md](docs/demo-script.md)。
## 部署
有关 Alibaba Cloud 的部署,请参阅 [docs/deployment-proof.md](docs/deployment-proof.md) 和 [infra/alibaba-cloud/](infra/alibaba-cloud/)。
## 许可证
本项目基于 Apache License 2.0 授权。
标签:AI风险缓解, DLL 劫持, DNS 反向解析, Web3安全, 代码安全审计, 大语言模型, 智能合约审计, 请求拦截, 逆向工具, 防御加固, 静态代码扫描