Warum generiert mein privater Segwit-Schlüssel eine 3-Adresse im Vergleich zu einer bc1-Adresse, wie ich sie ursprünglich generiert habe?

Ich habe den folgenden privaten BTC-Schlüssel, den ich von einer anderen Anwendung generiert habe:

5KCPzu4tEAnFqwLrXUbW3GKMDSnUYY8CMie2HMRuHouSvrFhXA9

Diese Anwendung gibt mir die folgende Segwit-Adresse:

bc1qluk574lw9t536u72n0z2ya0ksx3s0kg0evkrme

Aber wenn ich zu https://segwitaddress.org gehe und nach unten scrolle und meinen privaten Schlüssel bei Enter a WIF private key eingebe, um die entsprechende Segwit-Adresse zu generieren. Ich bekomme eine ganz andere Adresse:

37wArHq69dxRwLkHt6MY8PpmbB6qjErrbK

Haben diese beiden öffentlichen Schlüssel also tatsächlich denselben privaten Schlüssel? Wie kann ich überprüfen, ob mein privater Schlüssel tatsächlich dieselben öffentlichen Schlüssel ausgibt? Ich konnte kein Programm finden, um diese Überprüfung durchzuführen.

Antworten (2)

Es gibt keinen Standard für die Angabe, ob ein privater Schlüssel einer bech32-Adresse, einer verschachtelten P2SH-Segwit-Adresse oder einer P2PKH-Adresse (1...-Adresse) entsprechen soll. Das WIF-Format wurde traditionell für P2PKH-Adressen verwendet. Einige Wallets entscheiden sich jedoch jetzt dafür, stattdessen eine P2SH-verschachtelte Segwit-Adresse oder sogar eine bech32-Adresse zu erstellen. Da es jedoch keinen Standard für private Schlüssel gibt, die Segwit-Adressen entsprechen, liegt es ganz bei der Brieftasche, zu bestimmen, welche Art von Adresse Sie für einen privaten Schlüssel angeben.

In Ihrem Fall hat Ihnen die Brieftasche eine P2SH-verschachtelte Segwit-Adresse gegeben. Aber es hätte Ihnen genauso gut die P2PKH-Adresse oder die bech32-Adresse geben können, da der private Schlüssel verwendet werden kann, um alle 3 Arten von Adressen zu erzeugen.

Jeder private BTC-Schlüssel kann also 3 verschiedene Arten von Adressen generieren: 1xxx (Legacy), 3xxxx (P2SH) und bc1 (Segwit)? Meine Frage ist nun, wie kann ich alle 3 dieser Adressen aus einem einzigen privaten Schlüssel extrahieren? Mein Hauptziel ist es zu sehen, ob die bc1-Adresse mit meinem privaten Schlüssel übereinstimmt, da ich nicht herausfinden kann, ob sie übereinstimmen.
Ja, jeder private Schlüssel kann verwendet werden, um diese 3 Arten von Adressen zu generieren. Theoretisch könnten damit unendlich viele P2SH-Adressen generiert werden, da die Skripte neben dem öffentlichen Schlüssel grundsätzlich beliebige Daten enthalten können. Das Einzige, um die Adressen zu überprüfen, besteht darin, eine Software zu finden, die jede einzelne für Sie generiert.
Welche Software würde das tun?

Ja. das ist normal, es kommt nur darauf an, wie man es herleitet.

Ich kann Ihren privaten Schlüssel sogar mit einem Legacy-Wallet (in Electrum) importieren, was mir 1QGFb7AUSFFnXEfBMUEf79NGKXqXMf9TQ7 gibt

Sie können dann eine Base58-Prüfung durchführen, um zu sehen, ob es gültig ist.

Siehe http://lenschulwitz.com/base58 und validieren Sie selbst.

Ja, aber wie überprüfe ich, ob die bc1xxxxx-Adresse demselben privaten Schlüssel entspricht?
Sie müssen eine Brieftasche / einen Dienst finden, der den Import eines privaten Schlüssels und dann die Ableitung zu einer bc1-Adresse unterstützt. Ich bin mir nicht sicher, ob Electrum es Ihnen erlaubt, Schlüssel in ihre bc1-kompatiblen Brieftaschen zu importieren, aber ich denke, Sie könnten es versuchen.