YAMINA-2109/ChainSentinel
GitHub: YAMINA-2109/ChainSentinel
ChainSentinel 是一个 AI 多智能体驱动的 Web3 智能合约安全审计平台,通过五个协作智能体实现漏洞检测、Foundry PoC 漏洞利用验证和自动修复重写的全流程自动化。
Stars: 0 | Forks: 0
# ChainSentinel — AI 驱动的 Web3 安全平台







| 2024 年 DeFi 黑客攻击损失达 22 亿美元 | 全流程审计 | 5 个 Band 智能体协作 | 35 种漏洞模式 |
|:-:|:-:|:-:|:-:|
### 🎥 [▶️ 在 YouTube 上观看完整演示](https://www.youtube.com/watch?v=F-N7yw3cfYs) [](https://www.youtube.com/watch?v=F-N7yw3cfYs)
## 问题所在
2023 年 3 月,仅仅因为少了一行代码——一个被遗忘的健康检查——Euler Finance 在 12 分钟内损失了 **1.97 亿美元**。
像 Slither 这样的静态分析器**本无法发现这个问题**。它们基于语法模式运行。它们无法理解一个函数在与协议的其他部分组合时,*应该做什么*和*实际上做了什么*。
另一种选择是人工审计:花费 5 万至 20 万美元,耗时 4 到 6 周,且仍然无法正式证明修复方案是有效的。
**ChainSentinel 通过一组由 Band 协调的 AI 智能体在几分钟内解决了这个问题,而不是几周。**
## Band 多智能体架构
ChainSentinel 使用 **Band** 作为 **五个专家智能体**之间的真正协调层,它们在 Band 房间中协作,以生成完整的安全审计——每一个都是在调查展开时被主智能体招募的:
```
USER (in a Band room)
│ @SecurityOrchestrator audit this contract: [Solidity]
▼
┌────────────────────────────────────────────┐
│ SecurityOrchestrator │ Band Agent #1 — lead coordinator
│ • Structural parse + 35-pattern scan │
│ • Access-control audit · risk verdict │
│ • Recruits specialists dynamically │
└────────────────────┬───────────────────────┘
│ @ThreatAnalyst [contract + static findings]
▼
┌────────────────────────────────────────────┐
│ ThreatAnalyst │ Band Agent #2 — deep analysis
│ • Semantic analysis (business logic, CEI) │
│ • Economic attack simulation │
│ (flash loan · oracle · reentrancy) │
└────────────────────┬───────────────────────┘
│ @PocGenerator [confirmed critical/high findings]
▼
┌────────────────────────────────────────────┐
│ PocGenerator │ Band Agent #3 — proof of exploit
│ • Runnable Foundry PoC exploit tests that │
│ PROVE each vulnerability is real │
└────────────────────┬───────────────────────┘
│ @RemediationAdvisor [vulns + PoC results]
▼
┌────────────────────────────────────────────┐
│ RemediationAdvisor │ Band Agent #4 — Agent 7
│ • Full contract rewrite (security fixes) │
│ • Self-validation re-audit loop (max 3×) │
└────────────────────┬───────────────────────┘
│ @ReportPublisher [final findings + remediation]
▼
┌────────────────────────────────────────────┐
│ ReportPublisher │ Band Agent #5 — synthesis
│ • Executive security report + risk score │
│ for stakeholders │
└────────────────────┬───────────────────────┘
▼
USER (full report · exploit PoCs · fixes)
```
**为什么选择 Band?** 这五个智能体使用 Band 的内置工具(`band_lookup_peers`、`band_add_participant`、`band_send_message`)来动态发现彼此,并通过 Band 房间进行协调——完整的推理链条在房间中对用户可见。SecurityOrchestrator 会根据调查的需要招募每个专家(例如,只有在确认存在严重漏洞时才会招募 RemediationAdvisor)——这是真正的条件化智能体编排,而不是固定的流水线。
## 快速开始
```
git clone https://github.com/YAMINA-2109/ChainSentinel
cd ChainSentinel
bash start.sh # automated setup + launch menu
```
或手动操作:
```
pip install -r requirements.txt
cp .env.example .env # fill in ANTHROPIC_API_KEY
```
### 选项 A — Streamlit 仪表板(可视化流水线)
```
streamlit run app.py
```
打开 `http://localhost:8501` → **Audit Mode** → 加载 **VulnerableVault.sol** 演示 → **Run Audit**。
### 选项 B — Band 智能体(多智能体协作)
```
python run_agents.py
```
然后在 Band 中:创建一个房间 → 添加所有 5 个智能体 → `@SecurityOrchestrator Please audit this contract: [paste Solidity]`
### 完整的分步指南
**→ 请参阅 [GET_STARTED.md](GET_STARTED.md) 获取完整说明,包括:**
- 如何创建和配置所有 5 个 Band 智能体(确切的名称 + 描述)
- 如何获取 API Handler ID 并填写 `agent_config.yaml`
- 如何同时运行 Streamlit + Band
- 常见问题的故障排除
## ChainSentinel 的与众不同之处
### 通过 Band 实现真正的多智能体协作
具有不同专业的五个智能体动态协作:
- **SecurityOrchestrator** 领导调查并决定招募哪些专家
- **ThreatAnalyst** 负责深度语义推理 + 经济攻击模拟
- **PocGenerator** 编写可运行的 Foundry 漏洞利用测试,证明发现的问题是真实的
- **RemediationAdvisor** 仅在确认关键缺陷时介入,然后重写合约
- **ReportPublisher** 将所有内容综合为面向利益相关者的执行报告
每个智能体都是一个通过 WebSocket 连接到 Band 的持久进程。通信通过带有 @提及和结构化发现结果的 Band 房间进行。推理链条在房间中对用户可见——而不是一个黑盒。
### 业界首个自动生成 Foundry PoC
没有任何其他工具——Slither、MythX、Certora 或任何商业审计平台——能够自动生成可运行的漏洞利用概念验证。当 ChainSentinel 发现关键漏洞时,它会编写 Solidity 测试来**证明**该漏洞利用是有效的:
```
// AUTO-GENERATED by ChainSentinel — EDUCATIONAL USE ONLY
pragma solidity ^0.8.0;
import "forge-std/Test.sol";
contract EulerFinanceMissingHealthCheckPoC is Test {
function test_exploit_drain() public {
attacker.executeFlashLoanDrain(50 ether);
assertGt(attacker.profit(), 0, "Exploit confirmed");
emit log_named_uint("Profit extracted (wei)", attacker.profit());
}
}
```
运行命令:`forge test --fork-url $ETHEREUM_RPC_URL -vvv`
### 结构化 Solidity 解析器(不仅仅是正则表达式)
ChainSentinel 包含一个自定义的 Python Solidity 解析器,它支持:
- 函数作用域和函数体提取(基于大括号计数,而非按行拆分)
- 每个函数的修饰符检查(`nonReentrant`、`onlyOwner`、`initializer`)
- CEI(检查-生效-交互)排序分析
- 基于函数上下文的外部调用分类
- 状态变量类型映射
## 完整审计流水线(10 个智能体)
```
parse_contract (Phase 1)
↓
[PARALLEL — Phase 2, 5 agents simultaneously]
├── static_analyzer (structural parser + 35-pattern library)
├── semantic_analyzer (Claude Opus — business logic, CEI, health checks)
├── economic_attacker (Claude Opus — flash loan, oracle, reentrancy attacks)
├── access_control (rule-based — unprotected critical functions)
└── dependency_checker (rule-based — OpenZeppelin version, import issues)
↓
risk_aggregator (Phase 3 — deduplicates + CVSS-style scoring)
↓
[PARALLEL — Phase 4]
├── poc_generator (Claude Opus — Foundry exploit tests)
└── fix_advisor (Gemini 2.0 Flash — patched code per vulnerability)
↓
report_generator (Phase 5 — Markdown + PDF)
↓
[OPTIONAL — Agent 7★]
remediation_agent → re-audit → iterate × 3 (Claude Opus full rewrite)
```
### 10 个智能体
| # | 智能体 | 模型 | 功能说明 |
|---|-------|-------|-------------|
| 1 | `parse_contract` | 基于规则 | 通过结构化解析器提取元数据、函数、导入 |
| 2 | `static_analyzer` | 结构化解析器 + 模式库 | **双通道**:逐函数上下文检查 + 35 种模式库 |
| 3 | `semantic_analyzer` | Claude Opus 4.7 | 业务逻辑、CEI 违规、状态机缺陷 |
| 4 | `economic_attacker` | Claude Opus 4.7 | 闪电贷、预言机操纵、MEV、治理攻击 |
| 5 | `access_control_checker` | 基于规则 | 权限提升路径、修饰符链 |
| 6 | `dependency_checker` | 基于规则 | 过时/存在漏洞的 OpenZeppelin 导入 |
| 7 | `risk_aggregator` | 基于规则 | 结果去重,计算加权 CVSS 风格评分 |
| 8 | `poc_generator` | Claude Opus 4.7 | 自动生成可运行的 Foundry 漏洞利用测试 |
| 9 | `fix_advisor` | Gemini 2.0 Flash | 针对每个漏洞生成补丁代码 |
| 10 | `report_generator` | 基于规则 | 完整的 Markdown 报告 + 可下载的 PDF |
| 7★ | `remediation_agent` | Claude Opus 4.7 | 全面的合约重写 + 重新审计循环(最多 3 次) |
## 核心功能
### Audit 模式
- **3 种输入方式**:上传 `.sol` 文件、粘贴 GitHub URL 或通过合约地址获取(Etherscan V2 API)
- **支持的链**:Ethereum、Polygon、BSC、Arbitrum、Optimism、Base
- 实时流水线视图——逐个 token 观察每个智能体的工作状态
- **RAG 驱动**:基于 FAISS 对 35 种漏洞模式和 20 个 DeFi 黑客攻击案例进行语义搜索
- **智能体 8 — PoC 生成器**:提供 Foundry 测试合约以证明可利用性
- **自动修复循环**:重写合约,重新审计,迭代直到评分 ≤ 40
- 完整的 PDF 报告:执行摘要、漏洞发现表、漏洞利用代码、修复步骤
### Band 模式(新功能 — 黑客松特色)
- 5 个持久的 Band 智能体通过 WebSocket 连接
- SecurityOrchestrator 从 Band 房间协调调查
- 智能体通过 `band_lookup_peers()` 发现彼此并被动态招募
- 条件化编排:只有在确认严重漏洞时,RemediationAdvisor 才会加入
- 完整的审计发现结果将作为结构化消息发布在 Band 房间中
- 运行所有 5 个智能体:`python run_agents.py`
### Sentinel 模式
- 对任何智能合约地址进行**实时链上监控**
- **Demo 模式**(无需 RPC):模拟交易,逼真的风险分类
- **Live 模式**:在 Ethereum/Polygon/BSC/Arbitrum 上使用 Web3.py 进行区块轮询
- **告警推送**:集成 Telegram 机器人 + Discord webhook
## 设置
### 1. 克隆并安装
```
git clone https://github.com/YAMINA-2109/ChainSentinel
cd ChainSentinel
pip install -r requirements.txt
```
### 2. 配置环境
```
copy .env.example .env # Windows
# cp .env.example .env # Linux/Mac
```
最低要求:
```
ANTHROPIC_API_KEY=sk-ant-...
```
对于 Band 多智能体模式:
```
BAND_REST_URL=https://app.band.ai/
BAND_WS_URL=wss://app.band.ai/api/v1/socket/websocket
```
并在 `agent_config.yaml` 中填入您的 5 个 Band 智能体凭证(参见模板)。
可选(缺少这些配置时应用会适度降级):
```
GOOGLE_API_KEY=AIza... # Gemini fix advisor
ETHERSCAN_API_KEY=... # Fetch contracts by address
ETHEREUM_RPC_URL=https://eth.llamarpc.com # Sentinel live mode
```
### 3. 启动 Streamlit 仪表板
```
streamlit run app.py
```
### 4. 启动 Band 智能体(在单独的终端中)
```
python run_agents.py
```
## Band 智能体设置
1. 访问 [app.band.ai](https://app.band.ai) → 创建账户(促销码:**BANDHACK26**)
2. 创建 5 个 **External Agents**:
- `SecurityOrchestrator`
- `ThreatAnalyst`
- `PocGenerator`
- `RemediationAdvisor`
- `ReportPublisher`
3. 在每个智能体上启用 **Personal Registry Access**(用于节点发现)
4. 将每个智能体的 UUID 和 API 密钥复制到 `agent_config.yaml` 中
5. 运行:`python run_agents.py`
6. 在 Band 中:创建一个房间,添加所有 5 个智能体,发送:
```
@SecurityOrchestrator Please audit this contract:
pragma solidity ^0.8.0;
contract VulnerableVault {
mapping(address => uint256) public balances;
function deposit() external payable { balances[msg.sender] += msg.value; }
function withdraw() external {
uint256 amount = balances[msg.sender];
(bool ok,) = msg.sender.call{value: amount}("");
require(ok);
balances[msg.sender] = 0; // state updated AFTER external call = reentrancy!
}
}
```
## ChainSentinel 本可以拦截的攻击
| 攻击事件 | 损失 | ChainSentinel 如何检测 | 智能体 |
|------|------|------------------------------|-------|
| **Euler Finance 2023** | 1.97 亿美元 | `SEMANTIC-001`:减少抵押品后缺少健康检查 | semantic_analyzer |
| **Ronin Network 2022** | 6.25 亿美元 | `ACCESS-001`:验证者密钥泄露,缺少多签验证 | access_control |
| **Poly Network 2021** | 6.11 亿美元 | `CS-009`:对不受信任的合约进行 delegatecall | static_analyzer |
| **Cream Finance 2021** | 1.3 亿美元 | `CS-005`:通过闪电贷进行价格预言机操纵 | economic_attacker |
| **Compound 2021** | 9000 万美元 | `CS-025`:未受保护的 initializer / 治理逻辑缺陷 | static_analyzer |
| **Nomad Bridge 2022** | 1.9 亿美元 | `ACCESS-001`:消息处理缺少所有权验证 | access_control |
## 与竞品对比
| 功能 | Slither | MythX | 人工审计 | **ChainSentinel** |
|-----------|---------|-------|-------------|-------------------|
| 语法模式匹配 | ✅ | ✅ | ✅ | ✅ |
| 业务逻辑推理 | ❌ | ❌ | ✅ | ✅ **Claude Opus** |
| 闪电贷模拟 | ❌ | ❌ | ✅ | ✅ **Claude Opus** |
| 自动生成代码修复 | ❌ | ❌ | ❌ | ✅ **Gemini Flash** |
| **可运行的 PoC 漏洞利用** | ❌ | ❌ | 偶尔 | ✅ **全球首创** |
| 自我验证修复方案 | ❌ | ❌ | ❌ | ✅ |
| 实时监控 | ❌ | ❌ | ❌ | ✅ **Sentinel 模式** |
| **多智能体 Band 房间** | ❌ | ❌ | ❌ | ✅ **5 个 Band 智能体** |
| 完成审计耗时 | 30秒 | 5分钟 | **4–6 周** | **几分钟** |
| 成本 | 免费 | 3千美元+/年 | 5万–20万美元 | **99美元/月** |
## 技术栈
| 层级 | 技术 | 原因 |
|-------|-----------|-----|
| **多智能体协作** | **Band SDK** | 真正的 WebSocket 连接持久化智能体、Band 房间、节点发现 |
| 智能体编排 | LangGraph 0.2 (StateGraph) | 并行边、reducer 字段、类型化状态合并 |
| 主要 LLM | Claude Opus 4.7 (Anth) | 在安全分析方面具有最佳推理能力 |
| 经济模拟 | Claude Opus 4.7 | 攻击推理需要深度上下文 |
| 修复生成 | Gemini 2.0 Flash (Google) | 快速的代码生成,低延迟 |
| 备选 LLM | Claude Sonnet 4.6 | 始终可用的基线方案 |
| Solidity 分析 | 自定义结构化解析器 | 基于函数作用域的上下文检查 |
| RAG | FAISS + sentence-transformers | 对历史漏洞利用进行语义搜索 |
| 区块链 | Web3.py | 兼容 Ethereum 的 RPC 监控 |
| 合约获取 | httpx + Etherscan V2 API | 按地址拉取任何已验证的合约 |
| UI | Streamlit | 快速迭代,实时流传输 |
| PDF | fpdf2 | 专业的审计报告 |
| 容器化 | Docker | 云端部署 |
| 许可证 | MIT | 开源 |
## 项目结构
```
app.py ← Streamlit dashboard (Audit + Sentinel + About tabs)
run_agents.py ← Launch all 5 Band agents simultaneously
agent_config.yaml ← Band agent credentials (gitignored — see .env.example)
agents/
tools/
analysis_tools.py ← LangChain @tool wrappers for Band agents
security_orchestrator/
main.py ← Band Agent #1: lead coordinator
prompts.py ← SecurityOrchestrator system prompt
threat_analyst/
main.py ← Band Agent #2: semantic + economic analysis
prompts.py ← ThreatAnalyst system prompt
poc_generator/
main.py ← Band Agent #3: Foundry PoC exploit tests
prompts.py ← PocGenerator system prompt
remediation_advisor/
main.py ← Band Agent #4: Agent 7 auto-remediation
prompts.py ← RemediationAdvisor system prompt
report_publisher/
main.py ← Band Agent #5: executive report synthesis
prompts.py ← ReportPublisher system prompt
core/
graph/
audit_graph.py ← LangGraph: 10-agent pipeline definition
remediation_agent.py ← Agent 7★: full contract rewrite (Claude Opus)
remediation_loop.py ← Self-validation loop (max 3 iterations)
integrations/
etherscan.py ← Etherscan V2 API: fetch verified contracts
sentinel/
monitor.py ← Real-time on-chain monitoring (Web3.py)
alerting.py ← Telegram + Discord alert delivery
knowledge/
vulnerability_db.py ← 35 vulnerability pattern definitions
rag_engine.py ← FAISS + keyword fallback RAG engine
llms/provider.py ← LLMProvider singleton (Opus / Sonnet / Gemini)
state/state.py ← SmartContractState TypedDict + Pydantic models
tracer/
trace_collector.py ← Thread-safe token streaming (agents → Streamlit)
contracts/vulnerable_samples/
VulnerableVault.sol ← Demo: reentrancy + access control + oracle bugs
EulerFinanceVuln.sol ← Demo: Euler Finance $197M vulnerability class
Dockerfile ← Production container
```
## 市场机会
- 智能合约审计市场:**8.9 亿美元 (2024) → 34 亿美元 (2033)**,复合年增长率 24%
- 2024 年 **DeFi 黑客攻击损失达 22 亿美元**
- **MiCA(欧盟)法规截止日期:2026 年 7 月**——所有 DeFi 协议必须进行强制审计
- 人工审计:每个协议 5 万至 20 万美元,耗时 4 到 6 周
- 每月部署 10,000+ 个新智能合约
- **ChainSentinel:每次审计仅需几分钟,99 美元/月**
### 投资回报率(ROI)示例
## 漏洞覆盖范围 — 35 种模式
| ID | 名称 | 严重程度 |
|----|------|----------|
| CS-001 | 重入攻击 | CRITICAL |
| CS-002 | 缺少访问控制 | CRITICAL |
| CS-003 | 整数溢出/下溢 | HIGH |
| CS-004 | 未受保护的 ETH 提款 | CRITICAL |
| CS-005 | 价格预言机操纵 | CRITICAL |
| CS-006 | 闪电贷攻击向量 | CRITICAL |
| CS-007 | 未检查的外部调用返回值 | HIGH |
| CS-015 | 缺少健康检查(Euler 类型) | CRITICAL |
| CS-016 | ERC4626 份额膨胀攻击 | CRITICAL |
| CS-018 | 治理闪电贷 | CRITICAL |
| CS-025 | 未受保护的 initializer | CRITICAL |
| CS-033 | 代理合约中的存储冲突 | CRITICAL |
| … | (共 35 种——详见 vulnerability_db.py) | … |
## 许可证
[MIT](LICENSE) — 开源,可自由 fork、部署和扩展。
*为 Band of Agents 黑客松构建 · lablab.ai · 2026 年 6 月*
*Band SDK · Claude Opus 4.7 (Anthropic) · Gemini 2.0 Flash (Google) · LangGraph · Streamlit*### 🎥 [▶️ 在 YouTube 上观看完整演示](https://www.youtube.com/watch?v=F-N7yw3cfYs) [](https://www.youtube.com/watch?v=F-N7yw3cfYs)
标签:Kubernetes, LangGraph, Solidity, Web3安全, 智能合约审计, 模块化设计, 自动化修复, 逆向工具