Перейти к основному содержимому

Цепочка доказательств

Домены регистрируются пакетами. Каждый пакет ждёт около 10 минут. Каждый пакет порождает одно доказательство. Эти доказательства образуют цепочку переходов состояния от самого начала:

genesis_root (empty tree -- known constant)
| +-- "richard.pivx" registered at block 100,
| +-- "john.pivx" registered at block 110,
| ... (could be more registration/update commands)
| ! Proof 1 is generated
| old_root = genesis_root --> new_root_1
| +-- "richard.pivx" put his name on marketplace at block 200,
| +-- "sam.pivx" registered at block 250,
| ... (could be more registration/update commands)
| ! Proof 2 is generated
| old_root = new_root_1 --> new_root_2 (= current root)

old_root каждого доказательства должен совпадать с new_root предыдущего. А old_root самого первого доказательства должен совпадать с известным начальным корнем (пустым разрежённым деревом Меркла).

Проверка цепочки

Верификатор проверяет всю историю регистраций за пять шагов:

  1. Получить ключ верификации SP1 — он детерминированно выводится из двоичного файла гостевой программы
  2. Загрузить все доказательства из API
  3. Проверить каждое доказательство SP1 с помощью этого ключа верификации
  4. Проверить цепочкуgenesis == P1.old_root, P1.new_root == P2.old_root, ..., PN.new_root == current_root
  5. Выборочно сверить с блокчейном — найти любой зафиксированный txid на узле PIVX и убедиться, что memo, сумма и блок совпадают

Если все проверки пройдены, вся история регистраций верна — доверять индексатору не требуется.

Конвейер доказательств

Сканер и генератор доказательств работают независимо:

PIVX Blockchain
|
PiNS Registrar Scanner (validates, captures SMT state)
|
Database (status: "pending")
|
SP1 Prover (generates ZK proof, verifies it)
|
Database (status: "proved")
|
New checkpoint published
|
Indexer syncs to the checkpoint
|
API Server (GET /v1.0/resolve/{name})

Сканер никогда не простаивает в ожидании генерации доказательства. Демон-генератор сам опрашивает базу на предмет ожидающих записей и может работать на отдельном оборудовании.