Конфиденциальность

В Novij Protocol прикладная нагрузка шифруется, а записи подписываются на клиенте до отправки в сеть. Контейнер .ntp хранит зашифрованный baseline для детерминированного получения ключевого материала; сырые PQ-приватные ключи не передаются Relay или Storage. Узлы проверяют протокольные доказательства и биллинг, а расшифровку содержимого выполняет клиент.

Конфиденциальность данных в Novij Protocol: zero trust, ntp-pq-v1, Protocol v3

Принципы

Разделение Relay и Storage

Relay может использовать PostgreSQL для ledger и производных проекций, но не хранит открытый прикладной payload. Relay привязывает block_id к кошельку, а Storage хранит ciphertext бинарных блоков Protocol v3 в append-only файлах — без расшифровки содержимого на стороне узла.

Сетевая роль не даёт доступа к содержимому: ключи расшифровки остаются у владельца и допущенных участников.

Подписанные записи и явный криптопрофиль

Каждая запись подписывается ML-DSA-65: подпись покрывает Entry Header, Entry Data и полные Entry Metadata. Неизвестные алгоритмы отклоняются до использования данных. Транспорт к Storage и Relay использует явные поля crypto_profile и auth.kind — без эвристик по длине подписи.

Защита структуры данных

  • Подпись автора покрывает header, data и полные metadata после канонической сериализации
  • Защита от replay использует entry_hash и клиентскую дедупликацию; timestamp в header также подписан
  • Ключ записи для группы доставляется отдельно каждому получателю через ML-KEM + AES-GCM wrap в Metadata v0x02
  • Неизвестный алгоритм, неверная подпись или повреждённая metadata отклоняются до использования данных

Шифрование и локальное хранение

  • Единый криптопрофиль ntp-pq-v1: ML-DSA-65, ML-KEM-768, AES-256-GCM, HKDF-SHA-256
  • Хранение в файлах блоков Protocol v3 (append-only), а не в SQL или key-value хранилищах
  • Storage не видит поля и значения внутри блоков без ключа записи
  • Мульти-доступ через группы с отдельной защищённой доставкой ключа записи каждому участнику
  • Приватный ключ ZK-купона остаётся у владельца и не хранится на Relay или Storage

Ключи и доступ контролирует владелец

Владелец кошелька и личного meta-block управляет проектами и выдачей доступа. DSR делегирует только явно разрешённые операции и лимиты, а ZK-купон отдельно авторизует оплачиваемое хранение — приватный ключ кошелька не передаётся Relay. Настройки модулей и durable state хранятся в зашифрованном meta-слое.