Навіщо потрібні докази?
Індексатор сканує блокчейн PIVX і будує реєстр імен. Але чому хтось має йому довіряти? Що як він:
- Вигадає реєстрацію, якої в блокчейні не було?
- Візьме неправильну плату?
- Зареєструє ім'я двічі?
- Підробить стан реєстру?
ZK-докази знімають ці запитання. Кожен доказ — криптографічний сертифікат того, що реєстрацію оброблено правильно. Перевірити його самостійно може будь-хто.
Що перевіряє кожен доказ
Генератор доказів PIVX використовує SP1 — віртуальну машину з нульовим розголошенням на архітектурі RISC-V. Для кожної транзакції з доменом генератор виконує всередині zkVM такі перевірки:
- Коректність імені — від 1 до 64 символів, малі літери, цифри й дефіси, у дозволеній зоні
- Коректність адреси — цільова адреса є екранованою адресою PIVX Sapling потрібної мережі в сучасній формі bech32
- Підпис Ed25519 — підпис під точним підписуваним повідомленням дійсний і зроблений тим ключем, якого вимагає операція
- Інваріанти операції — володіння, стан ціни й порядок nonce узгоджуються з виконуваною операцією
- Захист від повтору — nonce строго більший за попередній nonce запису
- Перехід стану — доказ Меркла відновлює старий корінь, а новий корінь випливає із застосування рівно цієї зміни
Якщо хоч одна перевірка не проходить, доказ створити неможливо.
Що доказ не перевіряє
Тут точність важливіша за переконливість:
- Платіж усередині схеми не перевіряється. Чи сплатила транзакція правильну суму і чи справді
BUYпереказав кошти — це забезпечує реєстратор поза блокчейном, і перевірити це може будь-хто, хто відтворить ланцюжок з опублікованим ключем перегляду. Доказ володіння нотою всередині zkVM коштував би значно більше, ніж сьогодні коштує весь пакет, і дав би слабшу гарантію, ніж уже дає відтворення: схема бачить лише зобов'язання ноти, а індексатор, який відтворює, — розшифровану суму й memo. - Схема не доводить, що вхідні дані взяті зі справжнього ланцюжка. Вона доводить, що за даного пакета перехід відповідає правилам. А те, що пакет — це справжній, повний і правильно впорядкований потік команд, встановлюється відтворенням, див. Довіра та приватність.
Саме тому PiNS робить порушення очевидними, а не запобігає їм: некоректний пакет узагалі неможливо довести, а пакет, узятий не зі справжнього ланцюжка, буде спростований кожним незалежним індексатором.
Публічні вихідні дані
Кожен доказ фіксує 3 значення, назавжди з ним пов'язані:
| Вихід | Опис |
|---|---|
old_root | Корінь дерева Меркла до цієї реєстрації |
new_root | Корінь дерева Меркла після цієї реєстрації |
end_block_height | Останній блок PIVX у пакеті реєстрацій |
end_block_height прив'язує доказ до конкретного блоку PIVX, як контрольна точка. Будь-хто може просканувати ланцюжок до цієї висоти з опублікованим ключем перегляду і переконатися, що memo й суми збігаються з тим, що стверджував пакет.