Skip to main content

Навошта патрэбныя доказы?

Індэксатар скануе блокчэйн PIVX і будуе рэестр імёнаў. Але чаму хтосьці мусіць яму давяраць? Што калі ён:

  • Выдумае рэгістрацыю, якой у блокчэйне не было?
  • Возьме няправільную плату?
  • Зарэгіструе імя двойчы?
  • Падробіць стан рэестра?

ZK-доказы здымаюць гэтыя пытанні. Кожны доказ — крыптаграфічны сертыфікат таго, што рэгістрацыя апрацавана правільна. Праверыць яго самастойна можа хто заўгодна.

Што правярае кожны доказ

Генератар доказаў PIVX выкарыстоўвае SP1 — віртуальную машыну з нулявым разгалошваннем на архітэктуры RISC-V. Для кожнай транзакцыі з даменам генератар выконвае ўнутры zkVM наступныя праверкі:

  1. Карэктнасць імя — ад 1 да 64 сімвалаў, малыя літары, лічбы і дэфісы, у дазволенай зоне
  2. Карэктнасць адраса — мэтавы адрас з'яўляецца экранаваным адрасам PIVX Sapling патрэбнай сеткі ў сучаснай форме bech32
  3. Подпіс Ed25519 — подпіс пад дакладным падпісваным паведамленнем сапраўдны і зроблены тым ключом, якога патрабуе аперацыя
  4. Інварыянты аперацыі — валоданне, стан цаны і парадак nonce ўзгадняюцца з выконваемай аперацыяй
  5. Абарона ад паўтору — nonce строга большы за папярэдні nonce запісу
  6. Пераход стану — доказ Меркла аднаўляе стары корань, а новы корань вынікае з прымянення роўна гэтага змянення

Калі хоць адна праверка не праходзіць, доказ стварыць немагчыма.

Што доказ не правярае

Тут дакладнасць важнейшая за ўнушальнасць:

  • Плацёж унутры схемы не правяраецца. Ці аплаціла транзакцыя правільную суму і ці сапраўды BUY перавёў сродкі — гэта забяспечвае рэгістратар па-за блокчэйнам, і праверыць гэта можа любы, хто прайграе ланцужок з апублікаваным ключом прагляду. Доказ валодання нотай унутры zkVM каштаваў бы значна больш, чым сёння каштуе ўвесь пакет, і даў бы больш слабую гарантыю, чым ужо дае прайграванне: схема бачыць толькі абавязацельства ноты, а прайграваючы індэксатар — расшыфраваную суму і memo.
  • Схема не даказвае, што ўваходныя даныя ўзятыя са сапраўднага ланцужка. Яна даказвае, што пры дадзеным пакеце пераход адпавядае правілам. А тое, што пакет — гэта сапраўдны, поўны і правільна ўпарадкаваны паток каманд, устанаўліваецца прайграваннем, гл. Давер і прыватнасць.

Менавіта таму PiNS робіць парушэнні відавочнымі, а не прадухіляе іх: некарэктны пакет наогул немагчыма даказаць, а пакет, узяты не са сапраўднага ланцужка, будзе абвергнуты кожным незалежным індэксатарам.

Публічныя выходныя даныя

Кожны доказ фіксуе 3 значэнні, назаўжды з ім звязаныя:

ВыхадАпісанне
old_rootКорань дрэва Меркла да гэтай рэгістрацыі
new_rootКорань дрэва Меркла пасля гэтай рэгістрацыі
end_block_heightАпошні блок PIVX у пакеце рэгістрацый

end_block_height прывязвае доказ да канкрэтнага блока PIVX, як кантрольны пункт. Любы можа прасканаваць ланцужок да гэтай вышыні з апублікаваным ключом прагляду і пераканацца, што memo і сумы супадаюць з тым, што сцвярджаў пакет.