louissarvin/InjectMe

GitHub: louissarvin/InjectMe

构建在 0G 链上的 AI 对抗性红队竞技场,让攻击者通过 prompt injection 攻破 AI 代理赢取奖励,防御者获得链上可验证的安全性证明,所有判定由 TEE 密封推理完成。

Stars: 0 | Forks: 0

InjectMe Logo

InjectMe

0G 链上的 AI 对抗性红队竞技场

部署 AI 代理。使用 prompt injection 进行攻击。赢取奖池。
所有验证均由 0G Compute 上的 TEE 密封推理完成。

快速开始功能架构运行机制API合约0G 集成

TypeScript React 19 Bun Fastify Solidity PostgreSQL Tailwind CSS 4 Prisma Foundry Vite

0G Chain Galileo 0G Compute TEE 0G Storage DA wagmi ERC-7857 iNFT

## 问题背景 每天都有 AI 代理被部署到生产环境中,但缺乏标准化的对抗性测试。人工红队测试成本高昂、结果不一致,且无法留下可验证的测试证明。目前没有链上记录可以证明 AI 系统在发布前经历过实战测试。 InjectMe 通过将 AI 红队测试转变为一个具有经济激励的竞技场来解决此问题,在这里: - **攻击者** 通过 prompt injection 发现漏洞即可获得真实奖励 - **防御者** 通过链上存活记录证明其 AI 代理的健壮性 - **每一次判定** 都通过 0G Compute 在可信执行环境 (TEE) 内进行验证 - **每一个结果** 都永久存储在 0G Storage 上,确保数据可用性且防篡改 ## 功能
### 攻击 **`/challenges/$id`** 尝试通过 prompt injection 攻破 AI 代理。支持流式响应、commit-reveal 防抢跑机制、以及 TEE 验证的判定。每次尝试均包含 OWASP LLM Top 10 分类。 ### 防御 **`/challenges/create`** 部署带有系统提示词和奖池的 AI 代理。可选择锦标赛(由手续费注资)、悬赏(由防御者注资)或对齐模式(按攻击次数奖励)。 ### 验证 **`/attestations`** 每次攻击的判定都经由 TEE 验证并存储在 0G Storage 上。可通过 chatID 验证任何结果。支持下载包含 Merkle 验证的完整存储证明。 ### 赚取 **`/leaderboard`** 通过攻破代理赢取奖池。通过 ReputationRegistry 建立链上声誉。攀登排行榜。为研究发布对齐数据集。
## 架构 ### 系统概述 ``` graph TB subgraph Frontend["Frontend (TanStack Start + React 19)"] UI[UI Components] Wagmi[wagmi v3 + viem] TQ[TanStack Query] end subgraph Backend["Backend (Fastify 5 + Bun)"] Routes[Route Handlers] Workers[Background Workers] Prisma[Prisma ORM] DB[(PostgreSQL)] end subgraph ZeroG_Compute["0G Compute (TEE)"] TEE[Sealed Inference] Attest[Attestation Verify] FT[Fine-Tuning Service] end subgraph ZeroG_Storage["0G Storage (DA)"] KV[KV Store] Log[Log Layer] Enc[Encrypted Archive] end subgraph ZeroG_Chain["0G Chain (Settlement)"] CF[ChallengeFactory] CH[Challenge] NFT[AgentNFT
ERC-7857] RR[ReputationRegistry] OS[OracleStaking] TO[TeeOracle] end UI --> TQ UI --> Wagmi TQ --> Routes Wagmi --> ZeroG_Chain Routes --> TEE Routes --> KV Routes --> Log Routes --> Prisma Prisma --> DB Workers --> ZeroG_Chain Routes --> ZeroG_Chain TEE --> Attest CF --> CH CF --> NFT OS --> TO ``` ### 攻击流程 (Commit-Reveal) ``` sequenceDiagram participant A as Attacker participant F as Frontend participant B as Backend participant TEE as 0G Compute (TEE) participant C as 0G Chain participant S as 0G Storage A->>F: Write attack message F->>B: POST /challenge/:addr/commit B-->>F: commitHash + salt F->>C: commitAttempt(commitHash) + messagePrice C-->>F: Commit recorded on-chain F->>B: POST /challenge/:addr/reveal B->>C: Verify commit exists on-chain B->>TEE: Evaluate message via sealed inference TEE-->>B: AI response + judgment + chatID B->>S: Archive attempt (encrypted) B->>C: revealAndRecord(messageHash, salt, storageRoot) alt Judgment = SUCCESS B->>C: claimVictory(attacker, chatID) B->>C: markAgentBreached(tokenId) B->>C: recordAttackerVictory (ReputationRegistry) C-->>A: Prize pool distributed end B->>S: Store TEE attestation B->>C: anchorAttestation(attestationHash) B-->>F: judgment, response, chatID, teeVerified ``` ### 挑战生命周期 ``` flowchart TD A[Defender creates challenge] --> B{Challenge Type?} B -->|Tournament| C[Pay messagePrice per attack
Fees grow the prize pool] B -->|Bounty| D[Defender funds prize upfront
Attacks are free] B -->|Alignment| E[Defender funds pool
Reward per attempt] C --> F[AgentNFT minted
ERC-7857 iNFT] D --> F E --> F F --> G[Attackers submit attempts] G --> H{TEE Evaluation} H -->|FAILED| I[Agent survives
Stats updated on iNFT] H -->|SUCCESS| J[Agent breached
Prize distributed to attacker] I --> K{Challenge expired?} K -->|No| G K -->|Yes| L[Defender calls claimExpiry
Withdraws remaining prize] J --> M[ReputationRegistry updated
Attacker + Defender scores] L --> M E --> N[Defender publishes
alignment dataset to 0G Storage] ``` ## 运行机制 ### 0G Compute:TEE 密封推理 AI 模型在 0G Compute 的**可信执行环境 (TEE)** 内运行。攻击者和防御者都无法观察或操纵推理过程。后端调用 `evaluateAttemptWithFallback()`,该函数通过 0G Compute 代理进行路由,并返回一个可通过 `verifyAttestation()` 独立验证的 `chatID`。 ### 0G Storage:数据可用性 每次对话、判定、挑战配置和对齐数据集都存储在 0G Storage 的 KV 和 Log 层上。这提供了一个可在后端重启后持续存在的防篡改数据可用性层。加密存档使用带有预言机派生密钥的 ECIES。对齐数据集以明文形式作为公共产品发布。 ### Commit-Reveal 防抢跑机制 | 步骤 | 操作 | 位置 | |------|--------|-------| | 1 | 攻击者提交 `keccak256(message, salt, attacker)` | 链上 | | 2 | 后端通过 TEE 处理实际消息 | 0G Compute | | 3 | 预言机通过 `revealAndRecord()` 揭示结果 | 链上 | 5 分钟的揭示窗口可防止矿工和验证者抢跑攻击结果。提交哈希在揭示被接受之前会在链上进行验证。 ### 预言机共识 多个预言机操作者通过 `OracleStaking` 合约质押原生的 0G 代币。判定在执行前需要来自活跃预言机的 M-of-N 确认。提交错误判定的操作者将被惩罚。诚实的操作者将获得奖励。活跃的预言机集合为按质押金额排名的前 N 名(最多 50 名)。取消质押设有 7 天的锁定期。 ### iNFT 代理 (ERC-7857) 每次挑战都会通过 `AgentNFT` 合约铸造一个代表 AI 代理的灵魂绑定 iNFT。该 iNFT 实现了 ERC-7857 标准,适用于带有 TEE 加密数据的智能 NFT。 | 字段 | 描述 | |-------|-------------| | `challengeAddress` | 关联的 Challenge 合约 | | `model` | 0G Compute 模型标识符 | | `totalAttempts` | 攻击尝试次数 | | `attemptsSurvived` | 代理成功抵御的攻击次数 | | `breached` | 代理是否已被攻破 | | `securityScore` | 根据存活率计算 | 支持 TEE 加密传输(通过 `TeeOracle` 进行重加密)、克隆以及执行权限的授权。 ### 挑战类型 | 类型 | 奖励来源 | 费用模型 | 使用场景 | |------|-------------|-----------|----------| | **锦标赛** | 攻击者费用累积(80% 奖池,10% 防御者,10% 协议) | 按消息付费(`minMessagePrice >= 0.001 0G`) | 竞技性红队测试 | | **悬赏** | 防御者预先注资(`bountyListingFee = 0.5 0G`) | 免费攻击 | 安全测试 | | **对齐** | 防御者注资奖池,按攻击次数奖励 | 按攻击次数奖励 | AI 对齐数据收集 | ### 声誉系统 链上 `ReputationRegistry` 跟踪攻击者和防御者的累积统计数据。分数以基点计算(10,000 = 100%)。 **攻击者统计:** totalAttempts、successfulBreaches、challengesParticipated、totalEarnings、lastActiveAt **防御者统计:** totalChallengesCreated、challengesSurvived、challengesBreached、totalPrizeDefended、totalPrizeLost、lastActiveAt ## 技术栈 | 层级 | 技术 | 用途 | |-------|-----------|---------| | **前端** | TanStack Start + React 19 | 支持渲染的同构框架 | | **路由** | TanStack Router | 基于文件的路由 | | **状态** | TanStack Query | 服务端状态管理 | | **样式** | Tailwind CSS 4 + HeroUI | 组件库 + 实用 CSS | | **动画** | GSAP + Motion + Lenis | 滚动动画,平滑滚动 | | **钱包** | wagmi v3 + viem | 0G 链钱包连接 | | **后端** | Fastify 5 + Bun | HTTP 服务器 + 运行时 | | **数据库** | PostgreSQL + Prisma 7 | 持久化 + ORM | | **认证** | 钱包签名 (EIP-191) + JWT | 基于钱包的无状态认证 | | **智能合约** | Solidity 0.8.20 + OpenZeppelin | 链上逻辑 | | **工具链** | Foundry | 合约测试 + 部署 | | **AI 推理** | 0G Compute (TEE) | 密封 AI 评估 | | **存储** | 0G Storage (KV + Log) | 数据可用性 | | **结算** | 0G Chain (Galileo Testnet) | 链上结算 | ## 项目结构 ``` injectme/ ├── web/ # Frontend application │ ├── src/ │ │ ├── routes/ # File-based routes (TanStack Router) │ │ ├── components/ # Shared UI components │ │ ├── lib/ │ │ │ ├── api/hooks.ts # TanStack Query hooks for backend │ │ │ ├── contracts/ # ABIs + contract hooks (wagmi) │ │ │ └── wagmi.ts # Chain config (0G Galileo) │ │ ├── config.ts # Contract addresses + feature flags │ │ └── styles.css # Global styles (Tailwind 4) │ └── package.json │ ├── backend/ # API server │ ├── index.ts # Fastify entry, route registration │ ├── src/ │ │ ├── routes/ │ │ │ ├── challengeRoutes.ts # Challenge CRUD, attack flow, leaderboard │ │ │ ├── agentRoutes.ts # iNFT / ERC-7857 endpoints │ │ │ ├── oracleRoutes.ts # Oracle staking + judgment endpoints │ │ │ ├── trainingRoutes.ts # Fine-tuning via 0G Compute │ │ │ └── healthRoutes.ts # Health check + 0G status │ │ ├── lib/ │ │ │ ├── og-chain/ # 0G Chain contract interactions │ │ │ ├── og-compute/ # 0G Compute TEE inference │ │ │ ├── og-storage/ # 0G Storage KV + Log │ │ │ └── encryption.ts # AES-256-GCM prompt encryption │ │ ├── workers/ │ │ │ ├── eventIndexer.ts # On-chain event indexing │ │ │ ├── challengeExpiry.ts # Auto-expire stale challenges │ │ │ ├── fineTuningMonitor.ts # Track fine-tuning job status │ │ │ └── errorLogCleanup.ts # Cap error logs at 10k │ │ └── middlewares/ │ │ ├── walletAuth.ts # Wallet signature verification │ │ └── rateLimit.ts # Attack rate limiting │ ├── prisma/ │ │ └── schema.prisma # DB schema (Challenge, Attempt, etc.) │ └── package.json │ ├── contract/ # Smart contracts │ ├── src/ │ │ ├── ChallengeFactory.sol # Main registry, creates challenges │ │ ├── Challenge.sol # Escrow + commit-reveal game logic │ │ ├── AgentNFT.sol # ERC-7857 iNFT for AI agents │ │ ├── ReputationRegistry.sol # On-chain reputation tracking │ │ ├── OracleStaking.sol # Decentralized oracle via staking │ │ ├── TeeOracle.sol # On-chain TEE proof verification │ │ └── interfaces/ # IChallenge, IERC7857, IOracle │ ├── script/ │ │ └── Deploy.s.sol # Deployment script │ ├── test/ # 306 Foundry tests │ └── foundry.toml │ └── README.md ``` ## 快速开始 ### 前置条件 - [Bun](https://bun.sh) (v1.1+) - [PostgreSQL](https://www.postgresql.org/) (v15+) - [Foundry](https://book.getfoundry.sh/) (用于合约) ### 1. 克隆并安装 ``` git clone https://github.com/injectme/injectme.git cd injectme # 安装 frontend cd web && bun install && cd .. # 安装 backend cd backend && bun install && cd .. # 安装 contract dependencies cd contract && forge install && cd .. ``` ### 2. 配置环境 ``` cp backend/.env.example backend/.env # 使用你的值编辑 backend/.env ``` ### 3. 设置数据库 ``` cd backend bun run db:push ``` ### 4. 运行开发服务器 ``` # 终端 1:Backend cd backend && bun dev # 终端 2:Frontend cd web && bun dev ``` 前端运行在 `http://localhost:3200`,后端运行在 `http://localhost:3700`。
环境变量参考 | 变量 | 必填 | 描述 | |----------|----------|-------------| | `APP_PORT` | 否 | 后端端口(默认:3700) | | `NODE_ENV` | 否 | `development` 或 `production` | | `DATABASE_URL` | 是 | PostgreSQL 连接字符串 | | `JWT_SECRET` | 是 | JWT 签名密钥 | | `JWT_EXPIRES_IN` | 否 | Token 有效期(默认:7d) | | `OG_RPC_URL` | 是 | 0G Chain RPC(默认:testnet) | | `OG_CHAIN_ID` | 是 | 链 ID(Galileo testnet 为 16602) | | `FACTORY_ADDRESS` | 是 | ChallengeFactory 合约地址 | | `AGENT_NFT_ADDRESS` | 是 | AgentNFT 合约地址 | | `TEE_ORACLE_ADDRESS` | 是 | TeeOracle 合约地址 | | `OG_COMPUTE_PROVIDER` | 是 | 0G Compute 提供者地址 | | `OG_STORAGE_INDEXER` | 是 | 0G Storage 索引器 URL | | `OG_FLOW_CONTRACT` | 是 | 用于存储上传的 0G Flow 合约 | | `OG_KV_STREAM_ID` | 否 | KV 流 ID(首次写入时创建) | | `OG_KV_NODE_URL` | 否 | KV 节点端点 | | `ORACLE_PRIVATE_KEY` | 是 | 预言机钱包私钥 | | `EVALUATOR_PRIVATE_KEY` | 是 | 评估器钱包私钥 | | `STORAGE_PRIVATE_KEY` | 是 | 存储钱包私钥 | | `CORS_ORIGINS` | 否 | 逗号分隔的允许源(生产环境) |
## 智能合约 部署在 **0G Galileo Testnet** (Chain ID: `16602`) 上。 | 合约 | 地址 | 描述 | |----------|---------|-------------| | **ChallengeFactory** | [`0xdc71C9B481EDEfD3a89d703D66F1831311Ee1Db2`](https://chainscan-galileo.0g.ai/address/0xdc71C9B481EDEfD3a89d703D66F1831311Ee1Db2) | 主注册表。创建 Tournament 和 Bounty 挑战 | | **ChallengeFactoryERC20** | [`0xE72329d1799E952f3368c0F63577765a8FD29D95`](https://chainscan-galileo.0g.ai/address/0xE72329d1799E952f3368c0F63577765a8FD29D95) | ERC-20 代币挑战工厂 | | **AgentNFT** | [`0x8e21Bd4D0cA3f54bEB6AF4E58d2c599C16965169`](https://chainscan-galileo.0g.ai/address/0x8e21Bd4D0cA3f54bEB6AF4E58d2c599C16965169) | 用于 AI 代理的 ERC-7857 iNFT | | **TeeOracle** | [`0x5Fd511fDe4F1cf46be018CDd125e146dc7944B21`](https://chainscan-galileo.0g.ai/address/0x5Fd511fDe4F1cf46be018CDd125e146dc7944B21) | TEE 证明验证 (ERC-7857) | | **ReputationRegistry** | [`0x69B8aC73b16669730bf1603B91aD33b7bf3b9036`](https://chainscan-galileo.0g.ai/address/0x69B8aC73b16669730bf1603B91aD33b7bf3b9036) | 链上攻击者/防御者声誉 | | **OracleStaking** | [`0x85D9e45d686cc912040c7F1506eaF3d2eae15cAb`](https://chainscan-galileo.0g.ai/address/0x85D9e45d686cc912040c7F1506eaF3d2eae15cAb) | 通过质押实现去中心化预言机网络 | **区块链浏览器:** [https://chainscan-galileo.0g.ai](https://chainscan-galileo.0g.ai) ### 合约参数 | 参数 | 值 | |-----------|-------| | 协议费 | 10% (1000 BPS) | | 悬赏上架费 | 0.5 0G | | 最低奖池 | 0.1 0G | | 最低消息价格 | 0.001 0G | | 奖励分配 | 80% 奖池 / 10% 防御者 / 10% 协议 | | Commit-reveal 窗口期 | 5 分钟 | |胜利宽限期 | 1 小时 | | 取消质押锁定期 | 7 天 | | 最大活跃预言机数 | 50 | ## API 端点 所有端点都带有后端 URL 前缀(默认为 `http://localhost:3700`)。 ### 挑战路由 (`/challenge`) | 方法 | 路径 | 认证 | 描述 | |--------|------|------|-------------| | `GET` | `/challenge/list` | 否 | 列出活跃挑战(可按类型、难度、模型、minPrize、标签筛选) | | `GET` | `/challenge/:address` | 否 | 获取挑战详情(链上 + DB + KV 回退) | | `POST` | `/challenge/create` | 否 | 注册挑战元数据(在链上创建之后) | | `POST` | `/challenge/:address/commit` | 钱包 | 阶段 1:提交攻击哈希 | | `POST` | `/challenge/:address/reveal` | 钱包 | 阶段 2:揭示并通过 TEE 评估 | | `POST` | `/challenge/:address/attack` | 钱包 | 旧版直接攻击(无 commit-reveal) | | `POST` | `/challenge/:address/attack/stream` | 钱包 | 通过 SSE 进行流式攻击 | | `GET` | `/challenge/verify/:chatID` | 否 | 验证 TEE 认证 | | `GET` | `/challenge/verify/:chatID/proof` | 否 | 完整的存储证明验证 | | `GET` | `/challenge/leaderboard` | 否 | 按胜场排名的顶级攻击者 | | `GET` | `/challenge/:address/history/:attacker` | 否 | 对话历史(LRU 缓存) | | `GET` | `/challenge/:address/conversation/:attacker` | 否 | 持久化历史(0G Storage KV) | | `GET` | `/challenge/:address/report` | 否 | 挑战的漏洞报告 | | `GET` | `/challenge/profile/:wallet` | 否 | 玩家统计(攻击者 + 防御者) | | `GET` | `/challenge/reputation/:wallet` | 否 | 综合链上 + 链下声誉 | | `GET` | `/challenge/models` | 否 | 可用的 0G Compute 模型 | | `POST` | `/challenge/create/alignment` | 钱包 | 在链上创建对齐挑战 | | `POST` | `/challenge/:address/publish-alignment-data` | 钱包 | 将对齐数据集发布到 0G Storage | | `GET` | `/challenge/alignment/datasets` | 否 | 列出已发布的对齐数据集 | ### 0G Compute 路由 (`/challenge/compute`) | 方法 | 路径 | 认证 | 描述 | |--------|------|------|-------------| | `POST` | `/challenge/compute/setup` | 否 | 设置计算账户(充值 + 转账) | | `GET` | `/challenge/compute/services` | 否 | 列出可用的推理服务 | | `GET` | `/challenge/compute/balance` | 否 | 获取计算账户余额 | ### 代理路由 (`/agent`) | 方法 | 路径 | 认证 | 描述 | |--------|------|------|-------------| | `GET` | `/agent/list?wallet=0x...` | 否 | 列出某钱包拥有的 iNFT | | `GET` | `/agent/:tokenId` | 否 | 获取 iNFT 详情 + 安全评分 | | `POST` | `/agent/:tokenId/transfer` | 钱包 | 带 TEE 重加密的 ERC-7857 转移 | ### 预言机路由 (`/oracle`) | 方法 | 路径 | 认证 | 描述 | |--------|------|------|-------------| | `GET` | `/oracle/staking/info` | 否 | 质押合约信息 | | `GET` | `/oracle/active` | 否 | 列出活跃的预言机操作者 | | `GET` | `/oracle/operator/:address` | 否 | 操作者详情 + 惩罚率 | | `POST` | `/oracle/judgment/submit` | 钱包 (预言机) | 提交判定 | | `POST` | `/oracle/judgment/:id/confirm` | 钱包 (预言机) | 确认待处理判定 | ### 训练路由 (`/training`) | 方法 | 路径 | 认证 | 描述 | |--------|------|------|-------------| | `POST` | `/training/submit` | 钱包 | 向 0G Compute 提交微调任务 | ### 健康检查路由 (`/health`) | 方法 | 路径 | 认证 | 描述 | |--------|------|------|-------------| | `GET` | `/health/status` | 否 | 包含 0G Chain、Storage、Compute 和合约状态的系统健康度 | ## 测试覆盖率 | 组件 | 测试数 | 框架 | 命令 | |-----------|-------|-----------|---------| | 智能合约 | 306 | Foundry | `cd contract && forge test` | | 后端 | 62 | Bun test | `cd backend && bun test` | ``` # 在 gas reporting 下运行所有 contract tests cd contract && forge test -vvv --gas-report # 运行 backend tests cd backend && bun test ```
命令参考 ### 前端 ``` bun dev # Start dev server on port 3200 bun build # Production build bun preview # Preview production build bun lint # Run ESLint bun format # Run Prettier bun check # Format + lint fix bun test # Run Vitest tests ``` ### 后端 ``` bun dev # Start with watch mode on port 3700 bun start # Start without watch bun test # Run Bun test suite bun run typecheck # TypeScript type check bun run db:push # Push schema to DB + generate client bun run db:pull # Pull DB schema into Prisma bun run db:generate # Regenerate Prisma client ``` ### 合约 ``` forge build # Compile contracts forge test # Run all 306 tests forge test -vvvv # Verbose test output with traces forge test --gas-report # Gas usage report forge script script/Deploy.s.sol --rpc-url 0g_testnet --broadcast # Deploy forge fmt # Format Solidity ```
## 0G 集成 InjectMe 完全基于 0G 生态系统构建,使用了 0G 技术栈的每个支柱。 ### 0G Chain(结算层) 所有经济活动都在 0G Chain 上结算。六个智能合约负责处理挑战创建、托管、奖励分配、声誉跟踪、预言机共识和 TEE 证明验证。原生 0G 代币驱动奖池、质押和费用收取。 - **网络:** Galileo Testnet(链 ID `16602`) - **RPC:** `https://evmrpc-testnet.0g.ai` - **浏览器:** [chainscan-galileo.0g.ai](https://chainscan-galileo.0g.ai) ### 0G Compute(TEE 密封推理) 每次 AI 评估都在通过 0G Compute 代理 SDK(`@0glabs/0g-serving-broker`)的可信执行环境中运行。这确保了: - 系统提示词永远不会暴露给攻击者 - 判定结果不能被防御者操纵 - 每次评估都会生成一个可验证的 `chatID` 用于认证 - 流式 SSE 响应提供实时攻击反馈 - 通过计算提供者提交微调任务 ### 0G Storage(数据可用性) 所有关键数据均通过 `@0gfoundation/0g-ts-sdk` 归档至 0G Storage: | 数据类型 | 存储层 | 加密 | |-----------|--------------|------------| | 挑战配置 | KV Store | 明文 | | 对话历史 | KV Store | 明文 | | 声誉快照 | KV Store | 明文 | | 攻击尝试 | Log Layer | ECIES(预言机派生密钥) | | TEE 认证 | Log Layer | 明文 | | 对齐数据集 | Log Layer | 明文(公共产品) | | iNFT 重加密事件 | Log Layer | 明文 | ### 0G Chain 浏览器 所有合约交互、部署和交易均可在 0G Chain 浏览器 [chainscan-galileo.0g.ai](https://chainscan-galileo.0g.ai) 上进行验证。

InjectMe

InjectMe
攻破 AI。在链上证明。赚取奖励。
基于 0G 构建。

MIT License

标签:0G Chain, AI安全, Bun, Chat Copilot, CISA项目, DApp, Fastify, Foundry, PostgreSQL, Prisma, React, Solidity, Syscalls, Tailwind CSS, TEE, TGT, TypeScript, Vite, Web3, 人工智能, 区块链, 去中心化应用, 去中心化计算, 可信执行环境, 奖金池, 安全插件, 密封推理, 对抗性攻击, 攻防演练, 智能合约, 测试用例, 用户模式Hook绕过, 竞赛平台, 网络安全, 足迹探测, 隐私保护, 黑客松