icohangar-ops/wtf-agent

GitHub: icohangar-ops/wtf-agent

基于 iExec Nox TEE 的三层机密威胁情报 Oracle 系统,通过加密计算在不暴露原始数据的前提下为 DeFi 协议提供可组合的布尔威胁信号。

Stars: 0 | Forks: 0

# WTF-Agent: Web3 Truth & Threat Fusion **基于 iExec Nox TEE 的机密威胁情报** [![iExec Nox](https://img.shields.io/badge/iExec-Nox%20TEE-blue)](https://nox.iexec.eth.limo/) [![Solidity](https://img.shields.io/badge/Solidity-0.8.35-green)](https://soliditylang.org/) [![Ethereum Sepolia](https://img.shields.io/badge/Network-Sepolia-purple)](https://sepolia.etherscan.io/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) ## 概述 WTF-Agent 是一个建立在 iExec Nox TEE 之上的 3 层机密威胁情报系统。它通过 AI 收集 OSINT 数据,在可信执行环境中对威胁进行评分,并向 DeFi 协议发出可公开组合的布尔信号——所有这些都不会暴露原始的威胁情报。 ### 现有问题 - 2024 年因 DeFi 漏洞利用损失超过 **$3.8B** - 公开的链上监控列表会在攻击发生前提醒攻击者 - 目前不存在可组合的、机密的威胁 oracle - 中心化的情报源是单点故障 ### 解决方案 ``` OSINT Engine (Tavily) | v [Layer 1] ConfidentialWatchlist - Encrypted address storage (euint256) | v [Layer 2] ConfidentialThreatScorer - Weighted scoring inside TEE | (keyword 50%, source 30%, temporal 20%) v [Layer 3] WTFOracle - Public boolean signal from encrypted comparison (circuit breaker + authorized signers) ``` ## 已部署合约 (Ethereum Sepolia) | 合约 | 地址 | 浏览器 | |----------|---------|----------| | ConfidentialWatchlist | `0xf3b271e7aeecca0d110431b17b9142e9ff68720d` | [Etherscan](https://sepolia.etherscan.io/address/0xf3b271e7aeecca0d110431b17b9142e9ff68720d) | | ConfidentialThreatScorer | `0x6931e02f0ae958e6a3a3485a6782dde8c00e2bc6` | [Etherscan](https://sepolia.etherscan.io/address/0x6931e02f0ae958e6a3a3485a6782dde8c00e2bc6) | | WTFOracle | `0x69a30e394b99989f1f3c519758fbd54425d2c113` | [Etherscan](https://sepolia.etherscan.io/address/0x69a30e394b99989f1f3c519758fbd54425d2c113) | **部署者:** `0x4c10043F68F7d9ADF6CeeCFD2A7eC82bB19C8937` ## 架构 ### 第 1 层: ConfidentialWatchlist 使用 `Nox.fromExternal()` 和 `Nox.allowThis()` 将可疑地址存储为加密的 `euint256` 句柄。地址比较在 TEE 内部使用 `Nox.eq()` 进行——原始地址永远不会出现在链上。 ### 第 2 层: ConfidentialThreatScorer 完全在 TEE 内部使用 `Nox.mul()`、`Nox.add()`、`Nox.div()` 计算加权威胁分数(0-100)。它接受 3 个加密的子分数: - **关键字匹配 (50%)** - 漏洞利用模式/CVE 匹配 - **来源可靠性 (30%)** - 情报源声誉 - **时效性 (20%)** - 数据近期度权重 ### 第 3 层: WTFOracle 使用 `Nox.ge()` + `Nox.select()` 将加密分数与阈值(75/100)进行比较,然后调用 `Nox.allowPublicDecryption()` 以发出可组合的布尔信号。包含 1 小时的冷却熔断机制。 ## 技术栈 - **智能合约:** Solidity ^0.8.35 - **TEE 框架:** iExec Nox 协议 (`@iexec-nox/nox-protocol-contracts`) - **加密类型:** `encrypted-types` (euint256, ebool, externalEuint256) - **构建工具:** Hardhat 3.4 - **区块链交互:** Viem - **OSINT 引擎:** Tavily API - **网络:** Ethereum Sepolia ## 设置 ``` # 安装 dependencies npm install # 配置环境 cp .env.example .env # 使用你的密钥编辑 .env # 编译 contracts npm run compile # 部署到 Sepolia npm run deploy # 运行 on-chain watcher (需要 TAVILY_API_KEY) python3 python/watcher.py ``` ## 使用的 Nox TEE 原语 | 原语 | 用途 | |-----------|-------| | `Nox.fromExternal()` | 将链下加密输入转换为 TEE 句柄 | | `Nox.toEuint256()` | 导入外部加密值 | | `Nox.allowThis()` | 授予合约解密访问权限 | | `Nox.eq()` | 加密等值比较 | | `Nox.mul()` | 加密乘法 | | `Nox.add()` | 加密加法 | | `Nox.div()` | 加密除法 | | `Nox.ge()` | 加密大于或等于比较 | | `Nox.select()` | 根据加密布尔值进行条件选择 | | `Nox.allowPublicDecryption()` | 将输出列入白名单以供公开读取 | | `Nox.isInitialized()` | 检查句柄有效性 | ## 黑客松提交 **iExec WTF Hackathon - 夏季版** 为 [DoraHacks](https://dorahacks.io) BUIDL 提交而构建。 ## 许可证 MIT
标签:DeFi, Solidity, Web3, 可信执行环境, 威胁情报, 实时处理, 开发者工具, 智能合约, 逆向工具