Das Reed-Solomon-Adressformat
Die Kurzform der Burstcoin-Kontonummern (Adressen) hat folgende Form: BURST-XXXX-XXXX-XXXX-XXXXX
Dieses Format wird als Reed-Solomon-Adresse bezeichnet. Dies ist das Standardformat im offiziellen Client, wobei X eine nicht mehrdeutige Zahl oder ein alphabetisches Zeichen ist (die Buchstaben I und O sowie die Zahlen 1 und 0 werden nicht verwendet). Adressen werden immer mit dem Präfix „BURST-“ versehen, und Bindestriche werden verwendet, um die Adresse in 4, 4, 4 und 5 Zeichen zu unterteilen. Bei den Adressen wird die Groß-/Kleinschreibung NICHT berücksichtigt.
Dieses Formular verbessert die Zuverlässigkeit, indem Redundanz eingeführt wird, um Fehler bei der Eingabe und Verwendung von Burstcoin-Kontonummern zu erkennen und zu korrigieren.
Hintergrund
Das interne Format für Burstcoin-Kontonummern ist eine vollständig numerische 64-Bit-Kennung, die vom privaten Schlüssel des Kontos abgeleitet wird. Dieses Format ist fehleranfällig, da ein einzelner Fehler beim Eingeben eines Zeichens dazu führen kann, dass Transaktionen unbeabsichtigt an das falsche Konto gesendet werden.
Reed-Solomon-Fehlerkorrekturcodes beheben dieses Problem weitgehend, indem Sie Redundanz zu Adressen hinzufügen. Das Reed-Solomon-Format wurde gewählt, weil:
- Die Kontokollisionsrate entspricht dem Standardadressformat.
- Die grundlegende Fehlerkorrektur des Systems kann verwendet werden, um Benutzer bei der Eingabe von Adressen zu unterstützen;
- Einige Programmiersprachen verfügen nicht über eine native MD5-Hashfunktion, und die Reed-Solomon-Implementierung ist einfacher als MD5.
Vorteile von Reed-Solomon-Adressen
- Die Wahrscheinlichkeit einer zufälligen Adresskollision unter Verwendung der Burstcoin-Implementierung von 4 „Prüfbits“ beträgt 1 zu 1 Million (20-Bit-Redundanz).
- Es ermöglicht, bis zu 2 Tippfehler in einer Adresse zu korrigieren.
- Es garantiert, dass bis zu 4 typografische Fehler erkanntwerden können.
- Die Adresslänge beträgt immer 17 Zeichen.
- Das Präfix „BURST“ macht die Adressen leicht als zu Burstcoin gehörend erkennbar.
Codierung von Burstcoin Reed-Solomon Adressen
- Groß- und Kleinschreibung wird in diesem Format nicht erzwungen, aber zur Vereinheitlichung werden alle Adressen in Großbuchstaben angezeigt.
- Bindestriche teilen Adressen in Gruppen mit 4 Zeichen und eine letzte Gruppe mit 5 Zeichen auf, dies wird jedoch bei der Adresseneingabe nicht erzwungen.
- Die alten numerischen Adressen werden auch erkannt und aus Gründen der Abwärtskompatibilität unterstützt.
Beispiel RS-Adressen:
- BURST-3DH5-DSAE-4WQ7-3LPSE
- BURST-K4G2-FF32-WLL3-QBGEL
Technische Details
Die erste und wichtigste Regel ist, dass kein Fehlerkorrekturschema unfehlbar ist: Die Fehlerkorrektur ist ein nützliches Werkzeug, auf das man sich jedoch nicht willkürlich verlassen kann.
Das Problem ist etwas kontraintuitiv: Entweder Sie können eine einfache Ja/Nein-Prüfung der Adressgültigkeit, die Ihnen eine in einer Million Kollision geben, oder Sie können versuchen, Fehler zu korrigieren. Sie können nicht beides tun.
Das Problem dabei ist, dass der Reed-Solomon-Algorithmus garantiert nur bis zu 2 Fehler korrigiert. Wenn in einem Adresseintrag mehr als 2 Fehler vorhanden sind, werden mit einer Wahrscheinlichkeit von etwa 10% Fehlalarme ausgegeben, und Transaktionen werden weiterhin an falsche Adressen gesendet.
Stellen Sie sich den Algorithmus stattdessen als Fehlerratel,um Benutzern beim Erkennen von Fehlern zu helfen.
Reed-Solomon (RS) -Adressen für Burstcoin werden wie folgt codiert:
- Nehmen Sie die ursprüngliche 64-Bit-Konto-ID, addieren Sie 1 Null-Bit, um 65 zu erhalten, und teilen Sie sie dann in dreizehn 5-Bit-Symbole auf (65/5 = 13).
- Ordnen Sie die Symbole vom niedrigsten Bit zum höchsten Bit in Little-Endian-Reihenfolge, dh Bits 0-4, 5-9, 10-14 usw., bis zu 60-64.
- Anfügen Sie 4 Symbole der Parität (20 Bit), die von der Reed-Solomon-Codierung unserer 13 Symbole aus Schritt eins (die unberührt bleiben). Dadurch entsteht ein 13 + 4 = 17 Symbol-Codewort.
- Verwürfeln Sie die Codewortsymbole in einer vordefinierten Reihenfolge und codieren Sie sie 1: 1 mit einem Alphabet von 32 Zeichen, wobei Sie sie durch Bindestriche in Gruppen aufteilen.
Um das Entwicklungsteam zu kontaktieren oder Unterstützung bei Fragen zu diesem Projekt anzufordern, kontaktieren Sie uns bitte über den Burstcoin Discord-Kanal.