Навошта патрэбныя доказы?
Індэксатар скануе блокчэйн 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 і сумы супадаюць з тым, што сцвярджаў пакет.