Versionspräfix, das für Bech32-Adressen verwendet wird

Ich habe eine Tabelle für das Versionspräfix (hex) und das Präfix des Base-58-Ergebnisses für verschiedene Arten von Bitcoin-Adressen zusammengestellt.

Ich bin hier auf den Inhalt gestoßen: https://en.bitcoin.it/wiki/List_of_address_prefixes , der keine Informationen über Decimal enthält , Präfix Hex für Bech32-Adressen (ich denke, sie werden auch SegWit-Adresse genannt, oder?)

Also habe ich dieses Diagramm hier überprüft: https://en.bitcoin.it/w/images/en/4/48/Address_map.jpg aber ich verstehe die Bedeutung von „ x03x03x00x02x03 “ nicht .

  1. Wenn x00 gleich 0x00 in Hex und x80 gleich 0x80 in Hex ist, wie soll ich x03x03x00x02x03 interpretieren?
  2. Wie lautet das Versionspräfix für Bech32-Adressen (bc1-Adressen)?

Antworten (1)

Diese Bytes (x03x03x00x02x03 oder besser dargestellt als 0x0303000203) sind der erweiterte, für Menschen lesbare Teil. Sie finden den Code auf BIP-173 .

def bech32_hrp_expand(s):
  return [ord(x) >> 5 for x in s] + [0] + [ord(x) & 31 for x in s]

Das Problem ist jedoch, dass diese Bytes im Gegensatz zur Base58-Codierung nur bei der Berechnung der Prüfsumme und nicht als Startbytes verwendet werden . Was das Bild meiner Meinung nach irreführend macht.

Die Bech32-Codierung unterscheidet sich stark von der Base58-Codierung, da es kein "Versionspräfix" gibt. Es gibt eine Hrp, eine Zeugenversion, Daten (Hash) und eine Prüfsumme. Witness version | hashsind die Daten, die verschlüsselt werden, und expanded_hrp | datawerden bei der Prüfsummenberechnung verwendet ( |ist Verkettung).

Danke für die Antwort. Das habe ich auch bezweifelt. Die Antwort positiv bewerten und akzeptieren.