Рабочы працэс
Служба імёнаў 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.
- Гэта гарантуе, што ўсе індэксатары, незалежна ад таго, дзе яны запускаюцца, заўсёды вырашаюць дамены па точна аднолькавым мэтавым адрасе (падтрымліваючы адзіны ўніфікаваны стан на размеркаваных канцах).