# Огляд

> NeuroChain — блокчейн першого рівня з вбудованою AI-безпекою — Malachite BFT, постквантові підписи ML-DSA-65, WASM-контракти, AI-аудит і оцінка аномалій, вбудовані в протокол.

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

NeuroChain — **блокчейн першого рівня з вбудованою AI-безпекою**. AI бере участь у протоколі в кількох чітко визначених місцях — аудит контракту перед розгортанням і оцінка аномалій транзакцій у mempool — і ніколи там, де вирішується, чи блок остаточний.

## Чим відрізняється

| Можливість | Що робить | Де читати |
|------------|-----------|-----------|
| **VMGuardian** | Перевіряє кожен WASM-контракт перед розгортанням (правила + вбудована нейромережа) і повторно перевіряє вже розгорнуті. | [VMGuardian](/uk/ai/vmguardian) |
| **Sentinel** | Оцінює кожну вхідну транзакцію на аномалії; необов'язковий шар політик може утримати її або попросити підтвердження замість відмови. | [Sentinel](/uk/ai/sentinel) |
| **NeuroWASM** | API контрактів рівня CosmWasm / NEAR; host-функції, через які контракт читатиме результати AI (оцінки, сертифікати, списки довіри), заплановані. | [NeuroWASM](/uk/neurowasm/) |
| **Нативна абстракція акаунтів** | Спонсорований газ і сесійні ключі для AI-агентів — частина моделі акаунтів, а не надбудова. | [Абстракція акаунтів](/uk/ai/account-abstraction) |
| **Постквантові підписи** | Кожен акаунт і кожен валідатор підписує ML-DSA-65 (Dilithium3, FIPS 204). | [Адреси](./addresses) |
| **Ідентичність** | Адреса лишається незмінною, а ключі, що нею керують, можна змінювати. | [Ідентичність](/uk/ai/identity) |
| **IBC v2 з постквантовими заголовками** | Перекази й атестації безпеки в інші мережі (спершу Cosmos); інша сторона перевіряє NeuroChain за підписами ML-DSA-65. Експериментально | [IBC v2 і шардинг](/uk/operate/ibc) |

## Архітектура

![Архітектура NeuroChain: гаманці та AI-агенти звертаються до gateway; нода перевіряє підписи, оцінює транзакції Sentinel, ставить їх у mempool, впорядковує через Malachite BFT між валідаторами, виконує зі шлюзом VMGuardian і WASM VM та зберігає стан у RocksDB](/diagrams/uk/architecture.svg)

| Рівень | Технологія |
|--------|------------|
| Нода | Rust, Tokio, RocksDB |
| Консенсус | Malachite — Tendermint BFT як бібліотека Rust ([Консенсус](./consensus)) |
| Контракти | WASM на інтерпретаторі `wasmi`, газ за fuel, host-модуль `env` |
| Підписи | ML-DSA-65 для акаунтів і валідаторів |
| AI-моделі | Невеликі нейромережі, вкомпільовані в ноду (`no_std`, без зовнішнього рантайму) |
| Gateway | Node.js + Fastify — REST і WebSocket перед нодою |
| Вебзастосунок | Quasar / Vue 3 (`neurochain-web`) |

## Шлях транзакції

![Життєвий цикл транзакції: гаманець підписує, gateway передає, нода перевіряє й оцінює, mempool ставить у чергу, Malachite збирає кворум 2/3 стейку, і кожен валідатор застосовує її](/diagrams/uk/tx-lifecycle.svg)

1. Гаманець підписує `nc-tx-v2|from|to|value|nonce` своїм ключем ML-DSA-65 — у браузері, через 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 |
| Вебзастосунок | 8080 | `WEB_PORT` |
| Документація (цей сайт) | 5173 | `DOCS_PORT` |

## Незмінні правила протоколу

- **AI ніколи не змінює силу голосу.** Кворум коміту — понад 2/3 стейку. AI може лише вивести валідатора (jail або slash до сили голосу 0), але ніколи не додати ваги. Див. [Консенсус](./consensus).
- **Контракт дізнається, хто його викликав, через хост.** Використовуйте `get_caller()`, а не поле `caller` у даних виклику.
- **Суми — цілі числа в uNRO.** Жодної плаваючої коми в балансах, комісіях чи стейках.
