Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 259|Antwort: 0

Detaillierte Erklärung der Blockchain-Kodierung von Base58, Base58Check, Bech32 und Bech32m

[Link kopieren]
Veröffentlicht am 17.10.2025, 09:01:55 | | | |
Base58, Base58Check, Bech32 und Bech32m sind häufig verwendete Kodierungsformate in der Blockchain-Technologie, die hauptsächlich dazu dienen, die Lesbarkeit zu verbessern, Fehler zu reduzieren und die Datenintegrität zu gewährleisten. Diese vier Codes haben ihre eigenen Vorteile bei der Sicherstellung von Sicherheit, Kompatibilität und Fehlerkorrektur und sind wichtige Grundpfeiler moderner Blockchain-Adresssysteme.

Base58

"Base58" ist eine von Satoshi Nakamoto erfundene Kodierungsmethode, die von der bekannten Codierungsmethode "Base64" adaptiert wurde. Der Zeichensatz von Base64 umfasst: alle Zahlen sowie Groß- und Kleinbuchstaben sowie zwei Symbole ("+" und "/"); Insgesamt 64 Zeichen. Satoshi Nakamoto entfernte die Zahl 0, die Großbuchstaben I und O, den kleinen Buchstaben l und das Symbol, und es wurde zu Base58.

Zeichensatz: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz



Base58Check

Im Vergleich zu Base58 hat die Base58Check-Codierung nur noch eine weitere Kontrollsummenberechnung. Wie unten gezeigt:



Base58Check löst die Probleme fehleranfällig, schwer zu erkennen und unverifiziert in traditionellen Codierungsmethoden und bietet eine sichere, kompakte, menschenfreundliche und fehlererkennende Darstellungsmethode für Schlüsseldaten in der Blockchain (wie Adressen und private Schlüssel). Obwohl es nun allmählich durch das fortschrittlichere Bech32/Bech32m (für SegWit-Adressen) ersetzt wird, spielte es eine entscheidende Rolle im frühen Bitcoin-Ökosystem.

Bech32

"Bech32" ist eine Kodierungsmethode, die von BIP 0173 definiert wurde und von Pieter Wuille und Greg Maxwell verfasst wurde. Diese Codierung hat jedoch auch ihren Ursprung: "Bech" bezieht sich auf "BCH", einen zyklischen Fehlerkorrektur-Codierungsalgorithmus, der 1959 bzw. 1960 von drei Mathematikern erfunden wurde (der Name BCH stammt von den Namen dieser drei Mathematiker). "32" bedeutet, dass der Zeichensatz der Codierungsmethode nur aus 32 Zeichen besteht: Kleinbuchstaben und Zahlen, ohne die Zahlen "1", die Buchstaben "b", "i" und "o".



Zu Beginn von BIP 0173 weisen die Autoren auf die unerwünschten Aspekte von Base58 hin:

  • Base58 verwendet sowohl große als auch kleine englische Buchstaben, wodurch seine Daten in QR-Codes nicht im kleineren "numerischen Alphabet"-Modus, sondern nur im größeren "Byte-Daten"-Modus gezogen werden.
  • Die Verwendung sowohl von Case als auch Case macht es auch schwierig, das Transkribieren, Tippen und Lesen auf der Telefontastatur zu erschweren.
  • Die Prüfsumme erforderte zwei aufeinanderfolgende SHA256-Operationen, die langsam waren und keine Möglichkeit hatten, die falsche Position zu finden.
  • Die meisten lokalisierbaren Fehlerkodierungsmethoden funktionieren nur, wenn die Zeichensatzgröße von Primpotenz ist und 58 keine Primpotenz ist.
  • Base58 ist komplexer zu dekodieren und langsamer zu dekodieren.

Daher verwendet Bech32s neuer Ansatz nur Kleinbuchstaben und Zahlen; Bei Bedarf, zum Beispiel beim Zeichnen eines QR-Codes, können diese Buchstaben alle durch Großbuchstaben ersetzt werden, um eine kompaktere Darstellung zu erhalten. Kleinere QR-Codes, da Bech32-Adressen einzeln sind, kann man sie im alphanumerischen Modus als QR-Codes kodieren. Das bedeutet, dass du einen kompakteren QR-Code erstellen kannst, weil Base58 Groß- und Kleinbuchstaben benötigt (das heißt, du kannst den alphanumerischen Modus nicht verwenden), während Bech32 das nicht tut. Wie unten gezeigt:



Wie Sie sehen, trotz der Bech32-AdresseEnthält mehr Zeichen, aber die Möglichkeit, alphanumerische Muster zu verwenden, bedeutet, dass QR-Codes insgesamt weniger Daten benötigen

Gleichzeitig hat Bech32 die Fähigkeit, Fehler zu finden: Es kann nicht nur feststellen, dass Sie einen Kopierfehler gemacht haben, sondern auch anzeigen, welche Bits Sie falsch kopiert haben (diese Fähigkeit, Fehler zu finden, ist der von Base58 weit überlegen).

Tatsächlich besitzt der BCH-Algorithmus auch eine "Fehlerkorrektur"-Funktion: Er kann nicht nur anzeigen, welche Bits Sie falsch kopiert haben, sondern auch, welche Zeichen es sein sollten. Die Autoren von BIP 0173 fanden jedoch ihre inhärenten Gefahren: Einerseits schwächt die verstärkte Fehlerkorrektur die Fähigkeit, Fehler zu finden; Andererseits, wenn der Benutzer zu sehr auf die Fehlerkorrekturfunktionen der Software vertraut, kann die Software die vom Benutzer eingegebenen fehlerhaften Daten zu einem "gültigen, aber nutzlosen" Datensatz korrigieren – obwohl diese als BCH-kodierte Daten gültig sind; Es ist jedoch möglich, dass das wiederhergestellte Bitcoin-Skript weder in der Kontrolle des Empfängers noch von irgendjemandem liegt. Das ist extrem gefährlich. Daher warnt BIP 0173: "Neben der Erinnerung der Nutzer daran, welche Bits möglicherweise falsch kopiert wurden, sollte die Software keine Fehlerkorrekturfunktionen implementieren (Korrekturvorschläge machen)." ”

Außerdem folgt Bech32 dem Muster, das in der Base58-Codierung gefunden wird:

1. Bech32-Daten beginnen mit einem Absatz "Data with Meaning (hrp)", ähnlich dem Präfix in Base58, das angeben kann, um welche Art von Daten es sich handelt.
HRP kann weit mehr als 32 Zeichen verwenden; Bech32 verwendet außerdem die Zahl "1" als Trenner, um die HRP von den tatsächlich zu dekodierenden Daten zu trennen.
Neben Bitcoin gibt es viele weitere Projekte, die auch Bech32 übernommen haben; HRP wird verwendet, um Daten von verschiedenen Posten zu unterscheiden. Hier ist eine Liste der registrierten HRPs, die sehr interessant ist (aber nur interessant).
2. Bech32 entwarf außerdem eine Prüfsumme, die die letzten 6 Zeichen der codierten Daten einnimmt.

Bech32m

"Bech32m" ist eine Kodierungsmethode, die von BIP 0350 definiert ist. Verbinden:Der Hyperlink-Login ist sichtbar.Sie wurde vorgeschlagen, weil Entwickler eine Schwachstelle in der Bech32-Programmierung entdeckten:

Wenn das letzte Zeichen "p" ist, verursacht das Einfügen oder Entfernen einer beliebigen Anzahl von "q" vor diesem Zeichen keinen Prüfsummenfehler (die Daten gelten weiterhin als gültig), dannDer Kontrollsummenmechanismus verliert vollständig seine FunktionBeenden.

Wenn du kein standardisiertes Bitcoin-Skript hinzufügst, lässt sich dieses Problem leicht lösen: Sowohl die P2WPKH-Adresse als auch die P2WSH-Adresse haben eine bestimmte Länge, einfach die Längenprüfung hinzufügen. Da wir in Zukunft auch neue standardisierte Skripte hinzufügen werden, kann sich die Adresslänge ändern, daher ist es notwendig, dieses Problem zu beheben.

Bech32m behebt dieses Problem, indem es einen Parameter im Bech32-Prüfsummengenerator ändert.

Derzeit wird Bech32m nur verwendet, um Adressen für "P2TR"-Skripte zu kodieren, die mit dem "Taproot"-Upgrade hinzugefügt werden. Es könnte in Zukunft in der Adresskodierung anderer standardisierter Skripte verwendet werden.

Referenz:

Der Hyperlink-Login ist sichtbar.
Der Hyperlink-Login ist sichtbar.
Der Hyperlink-Login ist sichtbar.




Vorhergehend:tiktok, Douyin das Paket einfängt und das Frida-Skript tötet, das den Standort des SO-Dateipatches finden kann
Nächster:Einführung in die Bitcoin-Adresstypen Legacy, Nested SegWit, Native SegWit und Taproot
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com