Wie viele verschiedene Formate kann eine öffentliche Ansprache annehmen?

Ich erstelle einen Offline-Index, um von der Blockchain zu berichten. Ich plane, jede Transaktion basierend auf der im TX angezeigten Adresse zu indizieren.

Sind alle Adressen Base58? Ich glaube, ich habe auch über eine kompakte Adresse und einen Adresstyp gelesen, die zu Beginn der Blockchain verwendet wurden, bevor Satoshi von der Adresskomprimierung mit Base58 wusste/implementierte.

Kleine Korrektur: Adresskomprimierung ist kein Teil von Bitcoin; es ist Teil von OpenSSL.

Antworten (2)

Ich glaube, dass das frühere Format, auf das Sie sich beziehen, das Hash160 ist, das gebildet wird, indem sha256der öffentliche Schlüssel genommen wird, gefolgt von dem ripemd160des Ergebnisses:

  • Hash160 = ripemd160(sha256(pubkey))

Was wir normalerweise als Bitcoin-Adresse bezeichnen, wird außerdem gebildet, indem zuerst der Hash160 mit vier Prüfsummenbytes verkettet wird (um es äußerst unwahrscheinlich zu machen, dass Sie versehentlich die falsche Adresse in einen Bitcoin-Client eingeben). Dann wird eine Netzwerkkennung (0x00 für das Hauptnetzwerk) vorangestellt und die Zeichenfolge base58-codiert :

  • address = base58(0x00 + Hash160 + checksum)

Wie Sie sehen, können diese beiden Formate leicht ineinander konvertiert werden. Außerdem kann der öffentliche Schlüssel entweder komprimiert oder unkomprimiert verschlüsselt werden. Dadurch ergeben sich zwei unterschiedliche Adressen. Da Sie den öffentlichen Schlüssel jedoch weder von der Hash160- noch von der base58-Adresse erhalten können, ist es nicht möglich, eine Adresse eines unkomprimierten öffentlichen Schlüssels in die Adresse umzuwandeln, die dem komprimierten öffentlichen Schlüssel entspricht, und umgekehrt.

Die Adressversion für das Hauptnetzwerk ist 0, nicht 1. Der Rest ist wahr.
@ Gigi du hast recht, fest.

Nicht alle Transaktionen können in eine Adresse entschlüsselt werden.

Diese Transaktion könnte beispielsweise beansprucht werden, indem der Genesis-Block in das Ausgabeskript eingefügt wird. Das ist kein Standardadresstyp und wird es auch nie sein.