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.
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:
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.
Mike D
N=115792089237316195423570985008687907852837564279074904382605163141518161494337
undG=(55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424)