Ланцужок доказаў
Дамены рэгіструюцца пакетамі. Кожны пакет чакае каля 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 самага першага доказу мусіць супадаць з вядомым пачатковым коранем (пустым разрэджаным дрэвам Меркла).
Праверка ланцужка
Верыфікатар правярае ўсю гісторыю рэгістрацый за пяць крокаў:
- Атрымаць ключ верыфікацыі SP1 — ён дэтэрмінавана выводзіцца з двайковага файла гасцявой праграмы
- Загрузіць усе доказы з API
- Праверыць кожны доказ SP1 з дапамогай гэтага ключа верыфікацыі
- Праверыць ланцужок —
genesis == P1.old_root,P1.new_root == P2.old_root, ...,PN.new_root == current_root - Выбарачна зверыць з блокчэйнам — знайсці любы зафіксаваны
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})
Сканер ніколі не прастойвае ў чаканні генерацыі доказу. Дэман-генератар сам апытвае базу на прадмет запісаў, якія чакаюць, і можа працаваць на асобным абсталяванні.