# 概览

> NeuroChain 是一条 AI 原生安全的 Layer 1——Malachite BFT、ML-DSA-65 后量子签名、WASM 合约，以及内置于协议中的 AI 审计与异常评分。

Source: https://docs.nro.world/zh/learn/overview

NeuroChain 是一条 **AI 原生安全的 Layer 1**。AI 只在几个明确界定的接缝处参与协议——部署前的合约审计，以及 mempool 处的交易异常评分——而绝不参与决定区块是否最终确定的环节。

## 有何不同

| 功能 | 作用 | 阅读 |
|---------|--------------|---------------|
| **VMGuardian** | 在部署前审计每个 WASM 合约（规则引擎 + 内嵌神经网络），并持续重新审计已部署的合约。 | [VMGuardian](/zh/ai/vmguardian) |
| **Sentinel** | 为每笔传入交易做异常评分；可选的策略层可以暂扣交易或要求确认，而不是直接拒绝。 | [Sentinel](/zh/ai/sentinel) |
| **NeuroWASM** | 与 CosmWasm / NEAR 同级的合约 API；让合约读取 AI 结果（评分、证书、信任列表）的 host 函数已在计划中。 | [NeuroWASM](/zh/neurowasm/) |
| **原生账户抽象** | 面向 AI 代理的代付 gas 与会话密钥——内建于账户模型，而不是外挂。 | [账户抽象](/zh/ai/account-abstraction) |
| **后量子签名** | 每个账户和每个验证者都使用 ML-DSA-65（Dilithium3，FIPS 204）签名。 | [地址](./addresses) |
| **身份** | 地址保持不变，而控制它的密钥可以轮换。 | [身份](/zh/ai/identity) |
| **带后量子区块头的 IBC v2** | 向其他链（首先是 Cosmos）进行转账和安全证明；对手链通过 ML-DSA-65 签名验证 NeuroChain。实验性 | [IBC v2 与分片](/zh/operate/ibc) |

## 架构

![NeuroChain 架构：钱包和 AI 代理调用 gateway；节点验证签名，用 Sentinel 为交易评分，将其放入 mempool 排队，通过跨验证者的 Malachite BFT 排序，在 VMGuardian 关卡和 WASM VM 中执行，并把状态存入 RocksDB](/diagrams/zh/architecture.svg)

| 层 | 技术 |
|-------|-----------|
| 节点 | Rust、Tokio、RocksDB |
| 共识 | Malachite——以 Rust 库形式提供的 Tendermint BFT（[共识](./consensus)） |
| 合约 | 运行在 `wasmi` 解释器上的 WASM，按 fuel 计量 gas，host 模块 `env` |
| 签名 | 账户与验证者均使用 ML-DSA-65 |
| AI 模型 | 编译进节点的小型神经网络（`no_std`，无外部运行时） |
| Gateway | Node.js + Fastify——位于节点前端的 REST 与 WebSocket |
| Web 应用 | Quasar / Vue 3（`neurochain-web`） |

## 交易如何流转

![交易生命周期：钱包签名，gateway 转发，节点验证并评分，mempool 排队，Malachite 达成 2/3 质押法定人数，每个验证者执行该交易](/diagrams/zh/tx-lifecycle.svg)

1. 钱包用其 ML-DSA-65 密钥签名 `nc-tx-v2|from|to|value|nonce`——在浏览器中通过一个 WASM 模块完成。
2. Gateway 将交易原样转发给节点。
3. 节点检查签名、地址是否属于该密钥、nonce 和余额，然后用 Sentinel 为交易评分。
4. 交易在 mempool 中等待（状态 `pending`），按手续费排序。
5. 下一个提议者将其打包进区块；验证者投票；一旦超过 2/3 的质押完成 precommit，区块即最终确定。
6. 每个验证者以相同方式执行该区块，得到相同的状态根。状态变为 `confirmed`。

## 单位

链上所有金额都以 **uNRO** 计：`1 NRO = 1 000 000 uNRO`。API 响应附带已格式化好的 `*_human` 字段（例如 `balance_human`）——请直接显示这些字段，而不要在客户端换算。

## 本地端口

公共网络尚未运行；示例使用本地栈。

| 服务 | 默认端口 | 覆盖方式 |
|---------|-------------|----------|
| 节点 RPC | 9933 | `NEUROCHAIN_RPC_PORT` |
| 节点 P2P | 30333 | `NEUROCHAIN_P2P_PORT` |
| Gateway（REST + WebSocket） | 3000 | gateway 环境变量 |
| Web 应用 | 8080 | `WEB_PORT` |
| 文档（本站） | 5173 | `DOCS_PORT` |

## 绝不弯折的协议规则

- **AI 绝不改变投票权。** 提交法定人数是超过 2/3 的质押。AI 只能把验证者移出（jail 或 slash 至投票权为 0），绝不能增加权重。见[共识](./consensus)。
- **合约通过 host 识别调用者。** 使用 `get_caller()`，而不是调用负载中的 `caller` 字段。
- **金额是以 uNRO 计的整数。** 余额、手续费和质押中不使用浮点数。
