Ich verwende libwally , um Adressen von einem erweiterten privaten Schlüssel abzuleiten. Ich habe den Seed mit Bitcoin Core geteilt (mit in eine leere Wallet geladen sethdseed
) und festgestellt, dass es im Dump der Wallet-Datei 2 Adressen unter demselben Ableitungspfad gibt, eine ist beschriftet reserve=1
und die gleiche, die ich mit libwally ableite, der andere ist beschriftet change=1
und ist anders.
Dazu habe ich ein paar Fragen:
reserve
und change
? Meine Vermutung ist, dass das reserve
normale Empfangsadressen sind und change
sich, nun ja, ändern, aber ich frage mich immer noch, ob es eine spezifischere Bedeutung für Bitcoin Core gibt.../0/{index}
und sich mit ändern ../1/{index}
, oder macht Bitcoin Core die Dinge anders als sagen wir Electrum?change
Adresse auch mit libwally generieren können?[BEARBEITEN] Nachdem ich es noch einmal gemacht habe, habe ich nur eine Adresse mit demselben Pfad in der Dump-Datei von Bitcoin Core, also habe ich beim letzten Mal einen Fehler gemacht, ich werde es hier erklären, falls es hilft: Um eine Wallet mit einem Seed, den Sie selbst wählen, benötigen Sie 2 Befehle createwallet
und sethdseed
. wallet_name
Akzeptiert neben dem erforderlichen createwallet
auch ein optionales blank
Argument. Standardmäßig ist es false
, und der Befehl verwendet einen zufälligen Startwert, um einen Schlüsselpool zu generieren. Aber da wir unseren eigenen Seed verwenden möchten, müssen wir ihn auf true
. Wenn Sie die neu erstellte Brieftasche löschen, ist sie leer, kein Hauptschlüssel, kein Schlüsselpool, nichts. Dann kannst nur dusethdseed
mit einem im wif-Format codierten 32B-Seed. Ich hatte 2 Schlüssel unter demselben Ableitungspfad, weil ich zuerst eine Brieftasche mit einem zufälligen Startwert erstellt und dann meine eigene mit hinzugefügt habe sethdseed
, also hatte ich 2 Schlüsselpools in meiner Dump-Datei. Wie Andrew in der Antwort sagte, ist es unmöglich, zwei verschiedene Schlüsselpaare mit demselben Hauptschlüssel und Pfad zu haben.
- was genau bedeutet
reserve
undchange
? Meine Vermutung ist, dass dasreserve
normale Empfangsadressen sind undchange
sich, nun ja, ändern, aber ich frage mich immer noch, ob es eine spezifischere Bedeutung für Bitcoin Core gibt.
reserve
bedeutet, dass sich der Schlüssel im Schlüsselpool befindet und noch nicht verwendet wurde. Dies wird sowohl zum Ändern als auch zum Empfangen von Adressen verwendet, da es für beide Schlüsselpools gibt.
change
bedeutet, dass der Schlüssel zum Ändern von Adressen verwendet wird.
- Ich dachte, dass Änderungsadressen mit einem anderen Pfad abgeleitet wurden, so wie die Empfangsadressen alle mit enden
../0/{index}
und sich mit ändern../1/{index}
, oder macht Bitcoin Core die Dinge anders als sagen wir Electrum?
Sie sind. Bitcoin Core verwendet m/0'/0'/i'
zum Empfangen von Adressen und m/0'/1'/i'
zum Wechseln. Wenn Sie jedoch eine ältere Bitcoin Core-Brieftasche haben, existiert diese Aufteilung nicht und es gibt nur einen Schlüsselpool. Aber wenn Sie verwenden sethdseed
, sollte Sie das nicht beeinflussen.
- Außerdem frage ich mich, wie man 2 verschiedene Schlüsselpaare mit demselben Hauptschlüssel und Pfad generiert, hätte ich die
change
Adresse auch mit libwally generieren können?
Es gibt nicht zwei verschiedene Schlüsselpaare mit demselben Hauptschlüssel und Pfad. Bitcoin Core tut dies nicht, und das ist mit BIP 32 (oder jedem BIP) nicht möglich.
Sosthene
blank
hinzugefügtcreatewallet
. Ich dachte, es sei tatsächlich unmöglich, 2 Schlüsselpaare mit demselben Hauptschlüssel und Pfad zu haben, also bin ich erleichtert, dass meine Brieftasche die Gesetze der Mathematik nicht gebrochen hat :)