# ZeroExternal Online Protocol · 0.3 experimental · Runtime 1.16.0

Публичная точка входа: `/runtime/`, автоматически открывается с главной страницы. Physics Runtime теперь один модуль браузерной инфраструктуры. Спецификация и сценарии остаются в `/protocol/`.

Браузерный engine исполняет 14 научных/вычислительных рецептов и один планировщик пути робота в Web Workers; задачи и граф хранятся в IndexedDB. Импорт/экспорт связывает результаты с P256 signed lifecycle. Native API, Docker, внешние модели и приборные адаптеры сохраняют отдельную область исполнения. Robinhood Chain подключается через кошелёк; EvidenceRegistry подготовлен, проектного адреса размещения нет. Подробности: BROWSER-RUNTIME.md.
Discovery: `/.well-known/zeroexternal.json` → `/protocol/manifest.json`.
Это опубликованная спецификация и работающая эталонная консоль для независимых узлов. Общий публичный реестр, глобальная очередь, многопользовательские аккаунты и межузловой консенсус пока не запущены.

## Карта системных сценариев и общий профиль

Первый экран `/protocol/#use-cases` показывает 13 конкретных примеров для всех участников, источников и отраслей исходной схемы. Статус каждого примера отделяет работающий браузерный проход, код собственного узла, тестовые контракты и отсутствующие отраслевые адаптеры.

`zeroexternal.operation.v1` использует CloudEvents 1.0 structured JSON. Схема, JavaScript/Python проверяющие, 13 примеров и conformance vectors находятся в `protocol/operation/` и опубликованы в `/protocol/operation/`. Они проверяют форму и учебную политику в offline режиме: не удостоверяют личность, не выдают допуск, не проверяют произвольные отраслевые параметры и не запускают внешние действия. Native API автоматически этот envelope не принимает. Подробности: USE-CASES.md.

Это экспериментальная спецификация, а не принятый системный стандарт. Две эталонные реализации из одной команды не являются независимыми внедрениями.

## Рабочий браузерный проход

1. Указать параметры одного спина ½ и запустить опыт.
2. Фиксированные planner, solver и verifier исполняются в отдельных Web Workers. LLM для этого прохода не нужна.
3. События `intent.created`, `capability.issued`, `execution.started`, `observation.recorded`, `verification.completed`, `evidence.committed`, `capability.revoked` образуют подписанную цепочку.
4. Скачать JSON и независимо проверить его через `core.mjs` или «Проверить чужой JSON» в консоли.

Ключ P-256 создаётся в текущей вкладке, private CryptoKey nonextractable. При закрытии вкладки ключ теряется. Скачанная цепочка содержит публичный ключ. Это самоподписанный паспорт ключа, не проверенная личность, не вход в пользовательский кабинет и не допуск к вычислительному узлу. Nonextractable не защищает от активного XSS на том же origin: такой код способен попросить браузер подписать данные.

Подробный формат: `/protocol/SIGNED-RECEIPTS.md`. Подпись: ECDSA/SHA256, P1363 r||s в base64. Канонизация — ограниченное правило JS JSON этого протокола, не RFC 8785. Проверка чужого JSON подтверждает целостность, подпись, порядок и жизненный цикл; она не переисполняет вложенное научное содержание. Сверяйте ID ключа через независимый доверенный канал. Время `declared_at` заявлено подписантом. Сама консоль не записывает данные в общий HyperGraph и не отправляет их в блокчейн.

## Независимый агент / собственный узел

`Start.command` запускает runtime на Mac; `Start-server.sh` — на приватном Linux. Узел остаётся под управлением владельца. Для доступа публичного UI используйте фактически настроенный исходящий HTTPS-туннель, затем origin-bound pairing. Master key не передаётся браузеру.

Владелец узла задаёт допустимые рецепты, модели, сроки и бюджеты. Независимому агенту выдаётся одноразовое приглашение. `resident-client.py` и `spin-agent.py` используют существующий типизированный API `/api/resident/*`. Описание: `/agents/protocol.json`. Долговечные данные, рецензии и код остаются в локальном HyperGraph. Kaska/n8n используют существующие ограниченные адаптеры; ключи моделей настраиваются на узле.

Пять нормализованных JSON Schema в `/protocol/` описывают будущий обмен node, agent, task, evidence, settlement intent. Они экспериментальны: runtime не принимает эти новые envelopes автоматически. Реально доступные routes перечислены в manifest. Протокол не заявляет совместимость с A2A, MCP или DID. Node-card endpoint является предложением и не обслуживается текущим узлом.

## Тестовая монета t0EX

`ZeroExternalTestCredit`: ERC-20-совместимый прототип, 18 знаков, фиксированный выпуск 1 000 000 t0EX конструктором на адрес казначея. Дополнительного mint, admin или upgrade нет. Это тестовые параметры; основная сеть, эмиссия, распределение, права держателей, казначейство и организация-эмитент требуют отдельного решения. Цена, листинг и доходность не заданы.

`EvidenceCreditEscrow`: один контракт на одну задачу. Заказчик, рецензент и получатель — три разных адреса. Точные условия фиксируются requestHash. Заказчик разрешает точную сумму токена и вносит депозит. Рецензент однократно принимает evidenceHash до срока. После этого любой участник может направить принятый депозит только указанному получателю. Непринятый депозит после срока возвращает заказчик. Споры рассматриваются вне контракта до приёмки; приёмка необратима.

Конструкторы допускают только chain ID 11155111 (Sepolia), 31337 или 1337 (локальная EVM). Проверка chain ID сама по себе не удостоверяет подлинность RPC-сети. Используйте только тестовые средства. Контракты не прошли независимый аудит. Адресов размещения пока нет.

Консоль запрашивает кошелёк только по нажатию. Перед каждым действием показываются сеть, адреса и вызов. Отправка одноразовая; неизвестный результат отправки требует проверки кошелька, а не слепого повторения. Квитанция и количество подтверждений читаются из выбранной кошельком сети. Эти browser-only квитанции автоматически не превращаются в PaymentReceipt узла.

## Отдельные уровни доверия

- Browser receipt: P-256, заявленное время, локальное исполнение.
- Native checkpoint: Ed25519 и native Python canonical; ключ узла нужно независимо закрепить. Эти форматы не взаимозаменяемы.
- Scientific review: воспроизводимость, допущения и независимая рецензия.
- Work acceptance: соответствие договору, отдельно от научной истинности.
- Payment confirmation: подтверждённая операция провайдера или выбранной сети.
- Time validation: OpenTimestamps + Bitcoin Core, см. BLOCKCHAIN-TIME.md. Подтверждает существование записи до приблизительного времени блока, не авторство и не истинность.

## Домен

`zeroexternal.ai` и `physics.zeroexternal.ai` привязаны к этому проекту и ждут DNS/TLS. Точные записи в DOMAIN.md. Настройка DNS не разворачивает публичный gateway, не открывает порты Mac и не запускает общую сеть аккаунтов.
