Zum Hauptinhalt springen

Was ist ZCash Names?

Kurz gefasst

ZCash Names ist ein Namensprotokoll für ZCash, das on-chain arbeitet und auf privaten Memos beruht. Damit lassen sich menschenlesbare Namen wie richard.zcash registrieren und auf ZCash-Adressen abbilden. Die Korrektheit jeder Registrierung wird mit einem Zero-Knowledge-Beweis nachgewiesen.

Das Problem

ZCash-Adressen sind zu lang. Sie sehen so aus:

u1zk30kje24v9n08lxq6ja9lfd8q3q54g7uawra7hwa05k4r56nkzzu62cy2apdungu4ehws95vjflw2lakt62j5wynwcje6t6yjcg9v5sp7r7048lgsprukv8r70pmpsk4tsqrqy58aglywh23grvs7kq75zk4c3zy57267u34vecm35yuexkrsmzphcu2dzph4r8rk0h0rlh5su7yhs

Die Lösung

Einen Namen registrieren Sie mit einer einzigen ZCash-Transaktion. Ein Indexer beobachtet die Blockchain, prüft jede Registrierung und baut daraus ein Register auf. Ein Zero-Knowledge-Prover erzeugt anschließend einen mathematischen Beweis dafür, dass jede Registrierung korrekt ist.

Jeder kann richard.zcash auflösen und Richards Adresse erhalten. Jeder kann den Beweis prüfen. Vertrauen ist nicht nötig.

Namensregeln

RegelWert
Erlaubte Zeichena-z, 0-9, Bindestriche
Länge1 - 64 Zeichen
Groß-/KleinschreibungWird ignoriert (Speicherung in Kleinbuchstaben)
BindestricheNicht am Anfang, nicht am Ende, nie doppelt
Top-Level-Zone.zcash, .zec, .private, .secure, .safe

Registrierungspreise

Siehe Namensregistrierung

NamenslängeGebühr
1 Zeichen5.5 ZEC
2 Zeichen4 ZEC
3 Zeichen2.45 ZEC
4 Zeichen1.2 ZEC
5 Zeichen0.65 ZEC
6 Zeichen0.35 ZEC
7+ Zeichen0.15 ZEC

Änderungspreise

Siehe Namensverwaltung, Marktplatz

NamenslängeGebühr
1 Zeichen0.006 ZEC
2 Zeichen0.004 ZEC
3 Zeichen0.002 ZEC
4 Zeichen0.0011 ZEC
5 Zeichen0.0008 ZEC
6 Zeichen0.0005 ZEC
7+ Zeichen0.00025 ZEC

Die Registrierungsstelle

Die Protokolladresse der Registrierungsstelle, ihr Viewing Key und der Anchor-Vertrag sind alle drei veröffentlicht. Das ist Absicht: Der Viewing Key erlaubt es jedem, den Dienst ohne Erlaubnis zu prüfen, und der Vertrag ist das, wogegen man das eigene Ergebnis abgleicht.

Protokolladresse — hierhin gehen alle Befehle:

u1nlded5cat3n9r4m0tpxr5a7sy3emccvaun7n4x9w848qa7ncl4eg5v2zyat4kevaa4fwfq0unwj3vnczfax3s9rutma43dckgqss8qrg

Viewing Key — entschlüsselt alles, was diese Adresse je empfangen hat:

uview1uxy3j27qhwkh8peq8k6g0vldalgqm4lyfxwuc2r95jelk458gmx6elc4e92t9g75x655vd7nxrtv3gllvajt3n8v0x36224ma3hrtvvtps7ejxysx8puelggt86vfuslxvdvjq7a778chqtcg626lcsr0ht26v3wgyfu5u04sn2qsle9k7faakg479tqf

Anchor-Vertrag — hier wird jeder Zustands-Root veröffentlicht, auf der BNB Smart Chain (Chain-ID 56):

0x6c01003716b0a74933325be1baf34fe34cf3e0d3

Eine Wiedergabe der Historie muss an einem bekannten Punkt beginnen, deshalb sind auch beide Enden der Kette festgeschrieben. Dies sind die Checkpoints, von denen ein unabhängiger Indexer startet:

CheckpointWert
ZCash-Startblock3438108 — der Geburtstag der Protokoll-Wallet; davor kann keine Diensttransaktion existieren
Genesis-Zustands-Root0x0000…0000 — 32 Nullbytes, der Root eines leeren Registers
Block der Vertragsbereitstellung114326974
Bereitstellungstransaktion0x9a4b9a22…e6a5bd6c

Der Genesis-Root besteht aus lauter Nullen, weil im kompakten Sparse Merkle Tree ein leerer Teilbaum auf jeder Höhe 32 Nullbytes ist — ein leeres Register hasht also auf null, und genau mit diesem Wert wurde der Vertrag bereitgestellt. Wer ab Block 3438108 wiedergibt, gelangt zum selben Ausgangszustand, ohne dass man ihn ihm sagen müsste.

Mit diesen Werten können Sie ZCash ab dem Startblock scannen, jeden Befehl und jede Zahlung entschlüsseln, die der Dienst je erhalten hat, sie durch den quelloffenen Indexer wiedergeben, den Zustands-Root selbst berechnen und ihn per isRootValid(bytes32) gegen den Vertrag prüfen — siehe Beweise prüfen. Hätte die Registrierungsstelle je eine Operation unterschlagen, umsortiert oder erfunden, wiche Ihr Root von dem on-chain ab.

Der Indexer bringt seine eigene Auflösungs-API mit, sodass Sie nie von einem öffentlichen Endpunkt abhängig sind — auch nicht von unserem.

warnung

Prüfen Sie diese Werte, bevor Sie sich darauf verlassen

Gleichen Sie Adresse, Viewing Key und Vertragsadresse mit dem GitHub-Repository und der App selbst ab; Vertrag und Bereitstellungstransaktion lassen sich außerdem direkt auf BscScan nachlesen. Eine Dokumentationsseite ist genau das, was ein Angreifer verändern wollen würde.

RessourceAdresse
Appzcashnames.co/app
App über Torzns42gxtnultmfkuxu3ypawozpn4asbkqpqzlmlrp72u3nbggvn2c2ad.onion/app
Indexer über Torindexer.zns42gxtnultmfkuxu3ypawozpn4asbkqpqzlmlrp72u3nbggvn2c2ad.onion
GitHubgithub.com/ZCashNames
APIZur Seite
Dokumentationdocs.zcashnames.co