Skip to main content

Як гэта працуе

Сэрвіс імёнаў PIVX (PiNS) дазваляе рэгістраваць зразумелыя чалавеку даменныя імёны (напрыклад, myname.pivx), змяняць адрас, у які яны вырашаюцца, перадаваць іх іншым уладальнікам і выстаўляць на маркетплейс, надзейна звязваючы іх з адрасамі PIVX.

Паколькі PIVX — гэта блокчэйн на мадэлі UTXO без універсальных смарт-кантрактаў, ён не можа сам па сабе весці складаную базу даных накшталт рэестра даменаў. Каб вырашыць гэтую задачу, PiNS выкарыстоўвае архітэктуру ў стылі rollup: аперацыі выконваюцца па-за блокчэйнам, даныя захоўваюцца ў PIVX, а бяспека замацоўваецца ў BNB Smart Chain.

Сістэму ўтвараюць пяць звязаных паміж сабой кампанентаў:

1. Блокчэйн PIVX: слой даступнасці даных

Любое дзеянне карыстальніка — рэгістрацыя імя (REG), змяненне адраса (UPD), перадача правоў (CHG), выстаўленне на маркетплейс (LST), зняцце з продажу (ULT) ці пакупка (BUY) — пачынаецца як звычайная транзакцыя PIVX. Транзакцыя змяшчае структураваную тэкставую каманду ў полі memo (напрыклад, PiNS:1:REG:domain:address:pubkey:nonce:signature).

  • Крыніца ісціны — ланцужок PIVX. Ён назаўжды захоўвае кожную даменную каманду. Ніякае змяненне стану немагчымае без запісанай транзакцыі PIVX.

2. Вузел рэгістратара: сэквенсар

Аўтаматычны вузел рэгістратара скануе блокчэйн PIVX. Ён чытае даменныя каманды, правярае, што карыстальнік аплаціў правільную суму, і ставіць аперацыі ў чаргу. Кожныя 10 хвілін рэгістратар аб'ядноўвае гэтыя аперацыі ў адзін пакет (batch).

3. SP1 zkVM: рухавік нулявога разгалошвання (ад Succinct)

Пакет транзакцый адпраўляецца ў віртуальную машыну з нулявым разгалошваннем SP1 (zkVM). Яна выконвае спецыялізаваную гасцявую праграму на Rust, якая працуе як строгі суддзя пратакола. Генератар доказаў правярае кожную транзакцыю пакета:

  • Ці сапраўдныя подпісы і ці зробленыя яны сапраўднымі ўладальнікамі даменаў?
  • Ці строга ўзрастаюць nonce, што абараняе ад атак паўторнага прайгравання?
  • Ці правільна аформленыя прэфіксы даменаў?
  • Ці аплачвае транзакцыя BUY роўна тую цану, якая ўказана ў транзакцыі LST?
  • Ці карэктна old_root пераходзіць у new_root з пункту гледжання матэматычных доказаў Меркла?

Калі ўсе правілы выкананыя, zkVM стварае крыптаграфічны доказ ZK-SNARK (па схеме Groth16). Гэта малюсенькі сертыфікат, які матэматычна сцвярджае: «Пачаўшы з кораня стану A і прымяніўшы гэты карэктны пакет транзакцый, мы атрымліваем новы корань стану B».

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

4. Кантракт у BNB Smart Chain: якар

Атрыманы ZK-доказ і яго публічныя ўваходныя даныя адпраўляюцца ў смарт-кантракт PiNSAnchor у сетцы BNB Smart Chain. Кантракт выступае шлюзам разлікаў.

  • Крыптаграфічная прывязка: унутры смарт-кантракта захоўваецца programVkey — чаканы 32-байтавы хэш гасцявой праграмы. Калі доказ падаецца, кантракт перадае яго разам з programVkey у шлюз верыфікацыі SP1 ад Succinct.
  • Праверка «ключ — замок»: шлюз верыфікацыі прыме доказ, толькі калі ён створаны менавіта той гасцявой праграмай, якая адпавядае зарэгістраванаму programVkey.
  • Калі доказ карэктны і правераны адносна зарэгістраванага programVkey, кантракт абнаўляе афіцыйны, агульнапрызнаны корань стану да B і захоўвае яго ў сваёй гісторыі.
  • Калі парушана хаця б адно правіла або доказ створаны змененай гасцявой праграмай (што дало б іншы vkey), кантракт адхіляе транзакцыю, не дапускаючы несанкцыянаваных пераходаў стану.

Чаму BNB Smart Chain

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

  • Час блока каля 2 секунд, так што пакет замацоўваецца амаль адразу пасля таго, як даказаны, і індэксатары хутка сыходзяцца на новым кантрольным пункце.
  • Глыбокіх рэарганізацый на практыцы не бывае, таму кантрольны пункт, да якога індэксатар сінхранізаваўся, не сыдзе ў яго з-пад ног. Якарная сетка з глыбокімі рэарганізацыямі прымушала б індэксатары адкатваць стан, які яны ўжо лічылі канчатковым.
  • Праверка доказу каштуе ў блокчэйне фіксавана і танна незалежна ад памеру пакета: адна праверка Groth16 пакрывае ўсе аперацыі пакета.

5. Размеркаваныя індэксатары: рэзалверы

Запусціць незалежны вузел-індэксатар можа хто заўгодна. Індэксатары скануюць блокчэйн PIVX у пошуках даменных транзакцый, а кантракт у BNB Smart Chain — у пошуках правераных кантрольных пунктаў кораня. Яны прымяняюць транзакцыі лакальна, будуюць уласнае дрэва Меркла і правяраюць, што іх лакальны корань супадае з кантрольным пунктам у блокчэйне.

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