Skip to main content

Гарантыі бяспекі

Гэтая старонка дакладна апісвае, што PiNS гарантуе, а што — не. Дакладнасць тут карысней за супакойлівыя фармулёўкі: моцныя бакі сапраўды моцныя, а разуменне межаў — гэта якраз тое, што дазваляе на іх спадзявацца.

Уласцівасць сістэмы: парушэнні відавочныя

PiNS валодае ўласцівасцю відавочнасці парушэнняў (fraud-evident). Любое парушэнне правілаў альбо ў прынцыпе немагчыма даказаць, альбо публічна бачна кожнаму, хто паглядзіць, — а даныя, патрэбныя каб паглядзець, апублікаваныя, так што для гэтага не патрабуецца ні дазволу, ні садзейнічання аператара.

Варта разумець розніцу паміж дзвюма паловамі сістэмы. Валоданне і пераходы стану забяспечваюцца крыптаграфіяй і проста не могуць быць парушаныя. Усё астатняе ўстанаўліваецца незалежным прайграваннем, дзе адхіленне абвяргаецца адразу ўсімі рэплікамі. Абодва механізмы моцныя — але моцныя па-рознаму, і гэтая старонка прама кажа, дзе дзейнічае які.

Што немагчыма ў прынцыпе

Гэта забяспечваецца матэматыкай. Ніякія дзеянні аператара гэтага не абыдуць.

  • Дамен нельга адабраць ва ўладальніка. Любое змяненне стану патрабуе подпісу Ed25519 тым ключом, якога патрабуе аперацыя, і правяраецца ўнутры схемы строгай верыфікацыяй. Рэгістратар не захоўвае ваш ключ і не можа яго падрабіць.
  • Імя нельга зарэгістраваць двойчы. REG патрабуе доказу адсутнасці, а ўжо існуючае імя такога доказу даць не можа.
  • Продаж немагчымы па цане, якую прадавец не падпісваў. BUY патрабуе, каб заплачаная цана раўнялася выстаўленай, а тая зафіксаваная ў дрэве падпісанай прадаўцом камандай LST.
  • Корань стану нельга замацаваць без карэктнага доказу. Якарны кантракт у BNB Smart Chain правярае кожны доказ адносна programVkey, перш чым прыняць корань. Некарэктны пераход проста немагчыма даказаць.
  • Схему нельга падмяніць незаўважна. programVkey фіксуе канкрэтную скампіляваную праграму. Змяненне аднаго радка мяняе ключ, а змена ключа ў блокчэйне — двухбаковае дзеянне, якое патрабуе ўдзелу і сэквенсара, і ўладальніка.

Што правяраецца назіраннем, а не схемай

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

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

Чаму сапраўдная гарантыя — гэта прайграванне

ZK-доказ адказвае на пытанне: пры гэтых уваходных даных — ці былі выкананыя правілы?

Прайграванне адказвае на пытанне: а ці былі гэта сапраўдныя ўваходныя даныя?

На практыцы важнейшае другое пытанне, і крыптаграфія на яго не адказвае — на яго адказвае тое, што рэгістратар публікуе свой пратакольны адрас і ключ прагляду да яго. Дзякуючы гэтаму любы можа расшыфраваць усю гісторыю каманд з самага пачатку, прайграць яе праз індэксатар з адкрытым зыходным кодам і параўнаць карані. Рэгістратар, які адхіліцца ад правілаў, атрымае корань, які абвяргаецца кожнай незалежнай рэплікай.

Менавіта таму публічнасць ключа прагляду — не дэталь. Гэта і ёсць механізм.

Суверэнны rollup, калі казаць дакладна

Структурна PiNS — гэта ZK-rollup:

  • Даступнасць даных — кожная каманда жыве ў полі memo транзакцыі PIVX, а плацёж знаходзіцца ў той жа экранаванай ноце, так што намер і аплата звязаныя непарыўна.
  • Выкананне — па-за блокчэйнам, у SP1 zkVM.
  • Разлікі — BNB Smart Chain захоўвае замацаваны корань і правярае доказы за секунды.

Ад тыповага rollup гэта адрозніваецца тым, што слоем даступнасці даных служыць прыватны ланцужок, таму фраза «уваходныя даныя можа прачытаць любы» патрабуе публікацыі ключа прагляду — што і зроблена.

Як праверыць гэта самастойна

Нішто са сказанага вышэй не трэба прымаць на веру:

  • Прайграйце programVkey, скампіляваўшы генератар доказаў і параўнаўшы вынік з кантрактам.
  • Прайграйце ланцужок з апублікаваным ключом прагляду праз уласны індэксатар і параўнайце карані.
  • Праверце любое асобнае вырашэнне імя доказам Меркла плюс зверкай кораня ў блокчэйне — гл. Праверка доказаў.