Skip to main content

Рабочы працэс

Служба імёнаў ZCash (zNS) дазваляе карыстальнікам рэгістравацца, абнаўляць вырашальны адрас, перадаваць іншым уладальнікам і пералічваць на рынку даступныя для чытання даменныя імёны (напрыклад, myname.zcash) і бяспечна супастаўляць іх з адрасамі ZCash.

Паколькі ZCash з'яўляецца блокчейном на аснове UTXO без смарт-кантрактаў агульнага прызначэння, ён не можа першапачаткова запускаць складаную сістэму баз дадзеных, такую ​​як рэестр дамена. Каб вырашыць гэтую праблему, zNS выкарыстоўвае Архітэктуру ў стылі Rollup, якая выконвае аперацыі па-за ланцугом, захоўвае даныя на ZCash і замацоўвае бяспеку на Arbitrum.

Сістэма сілкуецца ад пяці ўзаемазвязаных кампанентаў:

1. ZCash Блокчэйн: узровень даступнасці даных

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

  • Ланцужок ZCash з'яўляецца крыніцай праўды. Ён пастаянна захоўвае кожную каманду дамена. Ніякія змены стану не могуць адбыцца без запісанай транзакцыі ZCash.

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

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

3. SP1 zkVM: Механізм нулявых ведаў (ад Succinct)

Пакет транзакцый адпраўляецца ў SP1 Zero-Knowledge Virtual Machine (zkVM). ZkVM запускае спецыялізаваную гасцявую праграму Rust, якая дзейнічае як арбітр строгага пратаколу. Праверка правярае кожную транзакцыю ў пакете:

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

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

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

4. Смарт-кантракт Arbitrum: якар

Згенераванае доказ ZK і яго агульнадаступныя ўваходныя дадзеныя адпраўляюцца ў смарт-кантракт zNSAnchor на Arbitrum. Кантракт выступае ў якасці разліковага шлюза.

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

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

Любы можа запусціць незалежны Indexer Node. Індэксатары скануюць блокчейн ZCash на наяўнасць транзакцый дамена і скануюць кантракт Arbitrum на прадмет правераных каранёвых кантрольных кропак. Яны прымяняюць транзакцыі лакальна, вылічваюць сваё ўласнае дрэва Merkle і правяраюць, што іх лакальны корань супадае з кантрольнай кропкай Arbitrum.

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