Mit xprv von bitcoin-core können nicht dieselben Adressen wie bitcoincore generiert werden

Zunächst einmal sind alle unten stehenden Adressen für Testzwecke, also kümmere ich mich nicht um private Schlüssel.

Also gedumpte Brieftasche, die von Bitcoin-qt v0.16.2 erstellt wurde:

extended private masterkey: xprv9s21ZrQH143K3mYiBBH7MwWV9VTkeB5q5sxEFGgvLbLqRZ3xPVAKvwyxSLVtTcL2tz665vdZnHLrMQPr6MWGKdDHYoncZmUNiUgtShGCmZE

Soweit ich aus dem Rest des Dumps verstehen kann, lautet die erste Empfangsadresse:addr=3DhmoRSx2bjxyJm7A1Crs3bCPnVcEx51fE hdkeypath=m/0'/0'/0'

Jetzt versuche ich, dieselbe Adresse mit zu generieren, bitcoinjs-libhatte aber bisher keinen Erfolg damit.

import { HDNode } from "bitcoinjs-lib";
const key = HDNode.fromBase58(
 "xprv9s21ZrQH143K3mYiBBH7MwWV9VTkeB5q5sxEFGgvLbLqRZ3xPVAKvwyxSLVtTcL2tz665vdZnHLrMQPr6MWGKdDHYoncZmUNiUgtShGCmZE"
);
console.log(key.derivePath("m/0'/0'/0'").getAddress()); // prints 1NoQERVA18v5WcFUbgvz22tDGigmAkqy4U

Jetzt bin ich verwirrt, weil ich denselben Ableitungspfad verwende, aber ich erhalte 2 verschiedene Adressen und obendrein sieht es so aus, als wäre die Adresse aus dem Dump multisig? Liegt es an Multisig?

Wenn ja, wie soll ich eine wallet.dat generieren, die nicht multisig und HD ist.

Antworten (1)

Sieht so aus, als ob die Adresse aus dem Dump Multisig ist?

Es ist nicht multisig. Bitcoin Core generiert keine Multisig-Adressen.

Diese Adresse ist eine mit P2SH umschlossene Segwit-Adresse. Derselbe private Schlüssel kann mehreren Adressen zugeordnet werden, da es verschiedene Arten von Adressen gibt. Der Adresstyp, mit dem Sie generieren, bitcoinjs-libsind P2PKH-Adressen. Bitcoin Core erstellt jedoch P2SH-P2WPKH-Adressen.

Sie sollten in der Lage sein, dieselbe Adresse zu erhalten, wenn Sie so etwas tun

bitcoin.payments.p2sh({
      redeem: bitcoin.payments.p2wpkh({ pubkey: key.derivePath("m/0'/0'/0'").publicKey })
})
Danke! Noch eine Frage. Ist es möglich, diese API zu verwenden, um Adressen mit Hilfe von xpub zu generieren? Ich bekomme TypeError: Missing private key for hardened child keyFehler.
Nein, Sie können keine gehärteten Schlüssel von einem xpub ableiten. Sie können jedoch xpub verwenden und Schlüssel mit einem nicht gehärteten Pfad ableiten. Das bedeutet, dass Ihr Schlüsselpfad nicht ', h, oder enthalten darf H, was darauf hinweist, dass dieser Index eine gehärtete Ableitung verwenden soll.
Wenn ich 'jetzt aus dem Schlüsselpfad entferne, kann ich jetzt Adressen mit xpub generieren. Ich glaube, dass bitcoin-qt diese Adressen nicht überwacht, oder?
Ja, das werden andere Adressen sein.