Arbeitsablauf
Der ZCash Naming Service (zNS) ermöglicht es Benutzern, sich zu registrieren, die auflösende Adresse zu aktualisieren, auf einen anderen Eigentümer zu übertragen und auf dem Marktplatz menschenlesbare Domainnamen (z. B. myname.zcash) aufzulisten und sie sicher ZCash-Adressen zuzuordnen.
Da ZCash eine UTXO-basierte Blockchain ohne universelle Smart Contracts ist, kann sie ein komplexes Datenbanksystem wie eine Domänenregistrierung nicht nativ ausführen. Um dieses Problem zu lösen, verwendet zNS eine Architektur im Rollup-Stil, die Operationen außerhalb der Kette ausführt, Daten auf ZCash speichert und die Sicherheit auf Arbitrum verankert.
Das System wird von fünf miteinander verbundenen Komponenten angetrieben:
1. ZCash Blockchain: Die Datenverfügbarkeitsschicht
Jede Aktion, die ein Benutzer ausführt – Registrierung eines Namens (REG), Aktualisierung einer Adresse (UPD), Übertragung des Eigentums (CHG), Auflistung auf dem Marktplatz (LST), Aufhebung der Auflistung (ULT) oder Kauf (BUY) – beginnt als native ZCash-Transaktion. Die Transaktion enthält einen strukturierten Textbefehl im Transaktionsmemofeld (z. B. zNS:1:REG:domain:address:pubkey:nonce:signature).
- Die ZCash-Kette ist die Quelle der Wahrheit. Sie speichert dauerhaft jeden Domänenbefehl. Ohne eine aufgezeichnete ZCash-Transaktion können keine Statusänderungen stattfinden.
2. Der Registrar-Knoten: Der Sequenzer
Ein automatisierter Registrarknoten scannt die Blockchain ZCash. Es liest die Domänenbefehle, überprüft, ob der Benutzer die korrekte Transaktionsgebühr bezahlt hat, und stellt die Vorgänge in die Warteschlange. Alle 10 Minuten bündelt der Registrar diese Vorgänge in einem einzigen Batch.
3. SP1 zkVM: Die Zero-Knowledge Engine (von Succinct)
Der Transaktionsstapel wird an die SP1 Zero-Knowledge Virtual Machine (zkVM) gesendet. Die zkVM führt ein spezielles Rust-Gastprogramm aus, das als strenger Protokoll-Schiedsrichter fungiert. Der Prüfer prüft jede Transaktion im Stapel:
- Sind die Signaturen gültig und von den tatsächlichen Domaininhabern unterzeichnet?
- Werden die Nonces strikt erhöht, um Wiederholungsangriffe zu verhindern?
- Sind die Domänenpräfixe korrekt formatiert?
- Zahlt eine
BUY-Transaktion genau den Preis, der in derLST-Transaktion angegeben ist? - Geht der
old_rootmithilfe mathematischer Merkle-Beweise korrekt in dennew_rootüber?
Wenn alle Regeln erfüllt sind, generiert die zkVM einen ZK-SNARK-Kryptografienachweis (unter Verwendung von Groth16). Bei diesem Beweis handelt es sich um ein kleines Zertifikat, das mathematisch erklärt: * „Beginnend mit der Statuswurzel A und nach Anwendung dieses gültigen Transaktionsstapels ist die neue Statuswurzel B.“*
Jede kompilierte Version dieses Gastprogramms liefert eine eindeutige kryptografische Kennung namens Verification Key (vkey). Der vkey ist ein 32-Byte-Hash der Struktur des kompilierten Gastprogramms selbst. Wenn auch nur eine einzige Zeile des Bestätigungscodes geändert wird, kompiliert das Programm zu einem völlig anderen vkey.
4. Arbitrum Smart Contract: Der Anker
Der generierte ZK-Beweis und seine öffentlichen Eingaben werden an den zNSAnchor Smart Contract auf Arbitrum gesendet. Der Vertrag fungiert als Abwicklungsgateway.
- Die kryptografische Bindung: Innerhalb des Smart-Vertrags wird der
programVkey(der erwartete 32-Byte-Hash des Gastprogramms) in der Kette gespeichert. Wenn ein Beweis eingereicht wird, leitet der Vertrag den Beweis und denprogramVkeyan das Succinct SP1 Verifier Gateway weiter. - Key-Lock-Validierung: Das Verifizierungs-Gateway genehmigt den Nachweis nur, wenn er vom exakten Gastprogramm generiert wurde, das mit dem registrierten
programVkeyübereinstimmt. - Wenn der Nachweis gültig ist und anhand des registrierten
programVkeyüberprüft wird, aktualisiert der Vertrag die offizielle, weltweit akzeptierte Staatswurzel aufBund speichert sie in seinem Verlauf. - Wenn eine einzelne Regel verletzt wurde oder der Beweis mit einem modifizierten Gastprogramm generiert wurde (was zu einem anderen
vkeyführen würde), lehnt der Vertrag die Transaktion ab und verhindert so unbefugte Zustandsübergänge.
5. Verteilte Indexer: Die Resolver
Jeder kann einen unabhängigen Indexerknoten ausführen. Indexer durchsuchen die ZCash-Blockchain nach Domänentransaktionen und durchsuchen den Arbitrum-Vertrag nach verifizierten Root-Checkpoints. Sie wenden die Transaktionen lokal an, berechnen ihren eigenen Merkle-Baum und überprüfen, ob ihr lokaler Stamm mit dem Arbitrum-Prüfpunkt übereinstimmt.
- Dadurch wird sichergestellt, dass alle Indexer, unabhängig davon, wo sie ausgeführt werden, Domänen immer in die genau gleiche Zieladresse auflösen (wodurch ein einziger einheitlicher Status auf verteilten Enden aufrechterhalten wird).