HD Wallet Child Private Key-Ableitungsfunktion

Ich habe versucht, die Spezifikationen der CKD- Funktion sowohl aus dem bip32- Standard als auch aus dem Buch Mastering Bitcoin zu verstehen, ich konnte nicht verstehen, wie ein privater Schlüssel von der linken Seite des erweiterten Schlüssels abgeleitet wird.

Das Buch sagt nur, dass die rechte Seite zum Kettencode und die linke Seite zum privaten Schlüssel wird. Nach einigen Online-Recherchen habe ich jemanden gelesen, der Begriffe wie Tweaks und Modulus n , G verwendet , die mich verwirren, da sie nicht im Buch erwähnt wurden und nicht so viel in der Spezifikation selbst.

Bitte helfen Sie mir zu klären, wie genau ein privater Schlüssel von der linken Seite der Ausgabe abgeleitet wird , und die Beziehung zu all den nicht erwähnten Teilen wie Modulus n (Welches n?), Tweak (??), Multiplizieren mit G (Was ist G ?), da all diese Begriffe nicht gut dokumentiert sind.

N und G sind feste Parameter der Kurve secp256k1. Konkret N=115792089237316195423570985008687907852837564279074904382605163141518161494337undG=(55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424)

Antworten (1)

Ein privater Schlüssel ist eine Zahl, eine sehr große 256-Bit-Zahl. Sie können mit solchen Zahlen gewöhnliche Arithmetik durchführen, zum Beispiel Addition modulo n, wobei n die Ordnung der Kurve ist (jemand anderes muss dies bei Bedarf erweitern). n ist sehr nahe an, aber kleiner als 2^256.

Hier ist ein Diagramm der Ableitung des untergeordneten privaten Schlüssels:

Geben Sie hier die Bildbeschreibung ein

Die linken 256 Bit des 512-Bit-Hash werden modulo n zum übergeordneten privaten Schlüssel hinzugefügt. Die Summe, die ebenfalls eine 256-Bit-Zahl ist (wegen Modulo n), ist der untergeordnete private Schlüssel. Die Summe des übergeordneten privaten Schlüssels und einer scheinbar zufälligen 256-Bit-Zahl ist eine scheinbar zufällige 256-Bit-Zahl, sodass diese Summe gut als privater Schlüssel funktionieren wird.

Alle Operationen sind Modulo der Kurvenordnung N, nicht Modulo 2^256
Danke, @MikeD. Habe meine Antwort entsprechend aktualisiert.
Aus diesem Bild können wir diesen childPrivateKey= leftSideHash + parentPrivateKey ? ableiten. Korrigieren Sie mich, wenn ich falsch liege. Aus dieser Beziehung, wo wird n oder G verwendet?
@TheOverloadGenius n wird in der Addition verwendet (Addition modulo n). In der Abbildung steht "Normale Addition", aber es ist eigentlich "Normale Addition modulo n". Vielleicht sollte ich das der Abbildung hinzufügen. G wird bei der Ableitung von untergeordneten privaten Schlüsseln überhaupt nicht verwendet. Es wird nur verwendet, wenn ein öffentlicher Schlüssel aus einem privaten Schlüssel berechnet wird.