Bitcoin-Adressen bzw Bitcoin Adresse Dabei handelt es sich um eine einzigartige Zeichenfolge aus Zahlen und Buchstaben, die es uns ermöglicht, unsere Münzen sicher im Bitcoin-Netzwerk zu senden und zu empfangen.
Wie wird eine Bitcoin-Adresse generiert? Was ist dein Geheimnis? Wir erzählen Ihnen alles über diesen Prozess.
Bevor wir beginnen, muss unbedingt erwähnt werden, dass sich dieser Artikel an Benutzer richtet, die über gewisse Kenntnisse verfügen Bitcoin und die Kryptowelt. Daher empfehlen wir Ihnen, bestimmte weltspezifische Themen noch einmal durchzulesen, damit Sie sie verstehen. Damit werden Sie sich über den Zusammenhang zwischen Bitcoin und der Erstellung von Adressen im Klaren sein.
Wo soll man anfangen? Wir empfehlen Ihnen zu lesen: asymmetrische Kryptographie, Hash-Funktion, SHA-256-Algorithmen, ECDSA y Was ist eine Bitcoin-Adresse?
Nun, in der Welt von criptomonedas, Eine Adresse ist eine Kennung, der Ort, an den eine bestimmte Menge an Kryptowährungen gebunden und bestimmt ist. Daher muss jeder, der Kryptowährungen senden oder empfangen möchte, immer eine Adresse haben. Beispielsweise sehen öffentliche Adressen in Bitcoin im Allgemeinen so aus: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa. Wie wir sehen können, handelt es sich um eine Reihe abwechselnder Buchstaben und Zahlen, deren Länge zwischen 26 und 32 Zeichen variiert.
Um eine Adresse zu erstellen, sind insgesamt 9 Schritte nötig, die wir im Folgenden ausführlich erläutern.
Prozess zum Erstellen einer Bitcoin-Adresse
Der Prozess zur Erstellung einer Bitcoin-Adresse beginnt mit der Generierung einer Privat Schlüssel Dadurch erhalten wir die ausschließliche Nutzung der Mittel. Daraus ergibt sich ein öffentlicher Schlüssel, die es uns ermöglicht, Informationen mit anderen Menschen zu teilen, ohne unsere eigenen zu gefährden.
Der Erhalt des öffentlichen Schlüssels über den privaten Schlüssel erfolgt durch die Anwendung des Algorithmus ECDSA. Eine sehr effiziente Implementierung der Elliptischen-Kurven-Kryptographie, bei der die Kurve als Erzeugungspunkt verwendet wird secp256k1 um den öffentlichen Schlüssel zu erhalten.
Sobald dieses Schlüsselpaar generiert ist, beginnt der Prozess der Generierung öffentlicher Bitcoin-Adressen.
1.- Wählen Sie den öffentlichen Schlüssel aus aus dem vorherigen Prozess erhalten. Das heißt, aus der Anwendung des Algorithmus ECDSA a der private Schlüssel. Was etwa so aussehen sollte:
0250863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b2352
2.- Hashing anwenden zum öffentlichen Schlüssel durch die Implementierung des Algorithmus SHA-256. Dieser Algorithmus ermöglicht die Generierung von Ausgaben fester Länge aus Eingaben variabler Länge, die irreversibel sind. Daher sind sie unidirektional und es ist nicht möglich, den privaten Schlüssel aus dem öffentlichen Schlüssel abzuleiten.
Nach Anwendung der Hashing-Funktion erhalten wir a 256-Bit-Stream:
0b7c28c9b7290c98d7438e70b3d3f7c848fbd7d1dc194ff83f4f7cc9b1378e98
3.- Nochmals haschen die zuvor erhaltene Ausgabe, wobei in diesem Fall der Algorithmus angewendet wird RIPE®-160. Damit erhalten wir a 160-Bit-Stream:
f54a5851e9372b87810a8e60cdd2e7cfd80b6e31
4.- Fügen Sie das Versionsbyte hinzu wird für das Bitcoin-Mainnet (0x00) vor der Ausgabe verwendet, die durch die Anwendung des RIPEMD-160-Hashing-Algorithmus erhalten wird. Damit erhalten wir eine Bitcoin-Adresse im Hexadezimalformat, die so aussehen wird:
00f54a5851e9372b87810a8e60cdd2e7cfd80b6e31
Und durch das Hinzufügen dieses Bytes können wir auch Bitcoin-Adressen identifizieren und von anderen Kryptowährungen unterscheiden, die das Protokoll ebenfalls verwenden.
5.- Erstellen Sie den Hash mit dem SHA-256-Algorithmus für das von RIPEMD-160 erhaltene Ergebnis. Dieser Schritt ist als Überprüfungsmechanismus erforderlich, um zu überprüfen, ob die Bitcoin-Adresse richtig geschrieben ist.
ad3c854da227c7e99c4abfad4ea41d71311160df2e415e713318c70d67c6b41c
6.- Wenden Sie den Hash mit dem SHA-256-Algorithmus auf das Ergebnis des vorherigen Hash an. Mit diesem Schritt wird die erhaltene Adresse verkettet. Wie bereits erwähnt, wird der SHA-256-Algorithmus zweimal als Verifizierungsmechanismus angewendet.
c7f18fe8fcbed6396741e58ad259b5cb16b7fd7f041904147ba1dcffabf747fd
7.- Wählen Sie die ersten 4 Bytes des letzten SHA-256-Hashs, die die darstellen Prüfsumme der Bitcoin-Adresse. In diesem Beispiel wären das:
c7f18fe8
8.- Fügen Sie die 4 Bytes der Prüfsumme aus dem vorherigen Punkt zum erweiterten RIPEMD-160-Hash aus Punkt 4 hinzu. Dies ist eine 25-Byte-Bitcoin-Binäradresse:
00f54a5851e9372b87810a8e60cdd2e7cfd80b6e31c7f18fe8
9.- Konvertieren Sie das Ergebnis mithilfe der Base58Check-Codierung in die Byte-Zeichenfolge, wird zum Kodieren von Bitcoin-Adressen verwendet. Damit wird der Bytestring in einen String umgewandelt base58.
1PMycacnJaSqwwJqjawXBERnLsZ7RkXUAs
Dies ist das am häufigsten verwendete Format für Bitcoin-Adressen. Also die Codierung Base58Check Es wandelt die Bytefolge in eine Reihe von Zahlen sowie Groß- und Kleinbuchstaben um, damit sie leichter zu unterscheiden sind. Obwohl es sich insgesamt immer noch um unleserliche Zeichen handelt und sie auf den ersten Blick nicht kryptisch sind.
Auf diese Weise können Sie eine Bitcoin-Adresse erstellen, damit wir sie nach unseren Wünschen verwenden können. Dieser gesamte Prozess wird auch bei Vanity Addresses durchgeführt, nur führen wir bei letzterem eine Brute-Force-Generierung durch, um nach einer personalisierten Adresse zu suchen.
Mehr über diese Art von Adressen erfahren Sie bei uns Artikel über Vanity Addresses.
Merkmale von Bitcoin-Adressen
- Jede öffentliche Bitcoin-Adresse wiegt ungefähr 25 bytes.
- Sie haben eine Länge von zwischen 26 und 32 Zeichen.
- Sie können mit der Nummer 1 beginnen, für Standardadressen (P2PKH) oder die Zahl 3, für die Adressen mit mehreren Signaturen (P2SH). Ebenso die Adressen SegWit Beginnen Sie mit bc1 (bech32). Andererseits die Adressen Bitcoin-Testnetz anfangen mit m o 2.
- Die Implementierung von Base58Check verhindert neben seinen vielen Funktionen die Verwendung von Zeichen wie O, I (Großbuchstabe) und l (Kleinbuchstabe), um zu verhindern, dass diese mit der Zahl 0 oder der Zahl 1 verwechselt werden.