Hat Ledger Nano S ein xPub oder ein zPub für Bitcoin-Geldbörsen?

{
  "xpub": "tpub-big-long-key-that-starts-with-tpub",
  "index": 1,
  "freshAddressPath": "84'/1'/1'/0/0",
  "id": "libcore:1:bitcoin_testnet:tpub-big-long-key-that-starts-with-tpub:native_segwit",
  "blockHeight": 2097540
}

Wenn ich das „xPub“ aus einem Ledger Nano S Bitcoin Testnet Wallet kopiere, finde ich genau das (Schlüssel offensichtlich verschleiert). Ich bin verwirrt, weil ich in meiner unerfahrenen Recherche verstehe, dass der Ableitungspfad 84'/1'/1'/0/0 für Zpub-Schlüssel und Segwit-Wallets gilt. In der Tat sind meine Brieftaschen in meinem Hauptbuch mit "Segwit" gekennzeichnet. Aber hier heißt der erweiterte Schlüssel „xpub“ und der Schlüssel beginnt mit „xpub“, oder im Fall des Bitcoin Testnet beginnt er mit einem „tpub“. Warum?

Kann mir jemand erklären, warum das durcheinander scheint? Ist dieser Schlüssel ein xpub oder ein zpub? Ist ein tpub und ein xpub dasselbe? Soll ich Bip32, Bip44 oder Bip84 verwenden, um untergeordnete Schlüssel (und damit Adressen) abzuleiten, die zu meinem Ledger Nano passen?

Ich habe eine clevere Python-Klasse gefunden, die xpub in zpub konvertiert. Ist das in diesem Fall richtig?

https://gist.github.com/jleo84/97fc58c6174f146642b2c215c20f88f5

Vielen Dank im Voraus! Dies ist meine allererste Frage (keine Sorge, ich habe noch mehr) zu diesem Stack Exchange und ich schätze jede Unterstützung oder jeden Rat, den ich bekommen kann.

Antworten (1)

BIP 32 spezifiziert ein Serialisierungsformat für erweiterte öffentliche Schlüssel. Dieses Format hat das Präfix xpubund ist generisch für alle öffentlichen Schlüssel, die mit BIP 32 verwendet werden können, unabhängig vom Adresstyp oder dem Ableitungspfad.

BIP 84 fügte eine zusätzliche Serialisierung hinzu, die dazu führt, dass das Präfix zpubangibt, dass Schlüssel, die von diesem erweiterten öffentlichen Schlüssel abgeleitet sind, nur in nativen Segwit-Adressen verwendet werden sollten.

Es ist richtig, dass eine Brieftasche xpubs für Schlüssel ausgibt, die in Segwit-Adressen verwendet werden. Es ist auch richtig, dass ein Wallet zpubs für dieselben Schlüssel ausgibt. Es kommt nur auf die Umsetzung an. Die Serialisierung wird nur für einige Metadaten zum Wallet verwendet, die abgeleiteten Schlüssel sind alle gleich. Um dieselben Adressen zu erhalten, benötigen Sie eine Brieftasche, die die Schlüssel ableitet und sie in dem von Ihnen erwarteten Adresstyp verwendet.


tpubist ein Präfix, das für erweiterte öffentliche Schlüssel verwendet wird, die in einem Testnet-Wallet erstellt wurden.

Vielen Dank für diese Antwort, aber jetzt muss ich fragen, woher ich weiß, wie mein Nano Schlüssel ableitet? Ich nehme an, es verwendet Bip84, nein? Sollte ich davon ausgehen, dass es Bip32 verwendet, da der Schlüssel ein xpub ist? Wenn ja, warum sollte der Ableitungspfad mit 84 beginnen? Sollte ich dieses "xpub" in ein "zpub" umwandeln und Bip84 verwenden??
xpub und zpub sind unterschiedliche Codierungen desselben Schlüssels. zpub codiert die zusätzliche Information, dass der spezifische Schlüssel verwendet werden sollte, um eine P2WPKH-Adresse abzuleiten (Sie können auch eine P2PKH-Adresse daraus ableiten, wenn Sie möchten). Ledger verwendet bip84, um die Schlüssel/Adressen abzuleiten, aber es macht sich nicht die Mühe, es in zpub zu codieren, es verwendet das allgemeinere xpub.
@mike-a BIP 32 ist die einzige Ableitungsmethode. Es gibt an, wie Schlüssel abgeleitet werden und wie Ableitungspfade funktionieren. Es gibt keine spezifischen Ableitungspfade an. BIP 84 gibt neben zpub nur bestimmte zu verwendende Ableitungspfade an. Ihr Gerät verwendet beide BIPS – es verwendet BIP 32, um Schlüssel abzuleiten, die mit dem BIP 84-Ableitungspfad angegeben sind.
@AndrewChow Danke für diese Antwort! Kennen Sie eine API, mit der ich den Gesamtsaldo einer zpub-Adresse abrufen kann? bitcoin.stackexchange.com/questions/116038/… Danke.