Чому докази?
Індексатор сканує блокчейн ZCash і створює реєстр імен. Але чому хтось має цьому довіряти? Що якщо це:
- Виготовляє реєстрацію, яка ніколи не відбувалася в мережі?
- Стягує неправильну плату?
- Реєструє ім'я двічі?
- Втручається в стан реєстру?
ZK proof знімає ці питання. Кожне підтвердження є криптографічним сертифікатом того, що реєстрацію оброблено правильно. Будь-хто може перевірити доказ самостійно.
Що підтверджує кожен доказ
Проверник ZCash використовує SP1 — віртуальну машину RISC-V без знань. Для кожної транзакції з доменом перевірка виконує такі перевірки всередині zkVM:
- Дійсність назви - 1-64 символи, малі літери та цифри + дефіси
- Достатність комісії – трансакція сплатила достатньо ZEC для Довжина імені
- Цілісність команди протоколу - усі умови протоколу виконано
- Підпис Ed25519 -- підпис над
memo commandдійсний - Вставка дерева Merkle -- назви ще не існувало, і корінь нового стану правильний
Якщо будь-яка перевірка не вдасться, доказ не буде створено.
Публічні виходи
Кожне доказ фіксує 3 значення, які постійно прив’язані до нього:
| Вихід | Опис |
|---|---|
old_root | Корінь дерева Merkle до цієї реєстрації |
new_root | Корінь дерева Merkle після цієї реєстрації |
end_block_height | Останній блок ZCash реєстраційного пакета |
block_height прикріплює доказ до конкретного блоку ZCash (наприклад, контрольної точки). Будь-хто може шукати транзакції на вузлі ZCash і підтверджувати відповідність нотатки та значення.