HD-Geldbörsen mit einem exponierten privaten Schlüssel des Kindes

Die hier beschriebenen HD-Wallets werden auf der Grundlage eines Master-Seeds und eines öffentlichen Master-Schlüssels wie folgt erstellt:

PK.b = PK.a + sG
SK.b = SK.a + s
  1. Ich bin gerade etwas verwirrt darüber. sKennt der Benutzer den mnemonischen Seed ? der die privaten Schlüssel generiert.
  2. Zweitens muss ein Dienstanbieter nur wissen sG, um die nächste Adresse des Benutzers zu berechnen. Habe ich recht?
  3. Und zu guter Letzt frage ich mich nur, ob es möglich ist, den Master Private Key (Seed) zu berechnen, wenn ein Angreifer oder Dienstanbieter die Private Key-Adresse eines Kindes erhält?
Der Link, den Sie angeben, definiert nicht die Notation PK.a und so weiter.
@abeikverdi Ich sehe diese Notation nicht auf der ersten Seite des von Ihnen verlinkten Threads und ich sehe sie nicht bei einer Suche in den Foren.
@NickODell PK.a bezieht sich auf den öffentlichen Schlüssel von a und SK.a bezieht sich auf den privaten Schlüssel von a. G ist der Generatorpunkt und s, nehme ich an, ist das Geheimnis, das verwendet wird, um die nächsten Schlüssel zu generieren. Wie Sie wissen, können wir in HD-Wallets neue Schlüsselpaare generieren, indem wir den privaten Schlüssel mit einem geheimen s hinzufügen. Jeder, der Ihren privaten Schlüssel nicht kennt, indem er einen "öffentlichen Hauptschlüssel" kennt, kann Ihren nächsten öffentlichen Schlüssel generieren. Bezieht sich dieser "Master Public Key" hier auf sG?
@abeikverdi Was Sie sagen, beschreibt BIP32 nicht. Fragen Sie nach BIP32 oder einem anderen HD-Wallet-System?
Ich ging davon aus, dass dies die Beschreibung von BIP32 für HD-Geldbörsen ist. Können Sie mir sagen, an welcher Stelle ich falsch liege?
@NickODell Okay, ich habe den Grund für diese Verwirrung gefunden. Die Sache, auf die ich mich beziehe, wird derzeit als deterministische Brieftasche Typ 2 bezeichnet, die von Maxwell vorgeschlagen wurde und schließlich als ursprüngliche Idee von BIP32 verwendet wurde, die von Pieter Wuille vorgeschlagen wurde. Irgendwie ergibt es für mich jetzt mehr Sinn.

Antworten (1)

Ich weiß nicht, wo Sie diese Formel gefunden haben, hier ist der Code zum Ableiten eines untergeordneten Schlüssels, der BIP ist hier , es sieht nicht wie Ihre Formel aus, aber ich werde versuchen, auf einige Ihrer Fragen zu antworten.

I just got a little confused about this. Is s the mnemonic seed that user knows? which generates the private keys.

Ein mnemonischer Seed ist nur ein Satz, der es Ihnen ermöglicht, den Hauptschlüssel mit (optional) einem Passwort zu erhalten. Ein Hauptschlüssel ist die wirklich wichtige Information, eine Mnemonik ist nur eine Möglichkeit, eine zu generieren, die in Worten niedergeschrieben werden kann.

Secondly a service provider only needs to know sG to calculate the user's next address. Am I right?

Ihre Formel sieht nicht so aus wie im BIP, daher kann ich das nicht wirklich kommentieren.

And lastly more importantly I am just wondering whether it is possible to calculate the master private key (seed) if an attacker or service provider gets one child's private key address?

Ja, wenn alle untergeordneten Elemente im Pfad zum durchgesickerten privaten Schlüssel nicht gehärtete Schlüssel sind UND der Root-HD-PubKey durchgesickert ist. Ich erkläre das P 35 meines Buches .

A non-hardened key can “climb” the hierarchy.
Non-hardened key should only be used for categorizing accounts that belongs to a single control. 
Danke für deine Antwort. Ich weiß, was ein mnemotechnischer Samen ist. Ich beziehe mich nicht auf die genaue Implementierung von BIP32. Was mir hier wichtig ist, ist, wie wir den nächsten öffentlichen Schlüssel generieren können, ohne den privaten Schlüssel des nächsten öffentlichen Schlüssels zu kennen. Ich beziehe mich auf diesen Beitrag „ bitcointalk.org/index.php?topic=19137.msg239768#msg239768 “ von gmaxwell, der die Idee von HD-Wallets vorschlug. Das sagt die Formel aus, die ich erwähnt habe. Ist das falsch?
Von gehärteten Schlüsseln habe ich noch nie gehört. Wie können Sie es härter machen, um die Leute davon abzuhalten, zurück zur Wurzel zu klettern? Ich lese dein Buch auf jeden Fall sehr gerne, aber kannst du mir das zusammenfassend erklären?
Sie können sich die Implementierung ansehen . Die Bedingung "(nChild >> 31) == 0" bedeutet "ist nicht gehärtet". Sie können sehen, dass der untergeordnete Schlüssel im nicht gehärteten Zustand vom öffentlichen Schlüssel abgeleitet wird, während er im gehärteten Zustand vom privaten Schlüssel abgeleitet wird. Dies bedeutet, dass Sie, wenn er nicht gehärtet ist, in der Hierarchie zurückgehen können, wenn Sie den übergeordneten öffentlichen Schlüssel kennen. Wie ich es hier mache Der Beitrag auf Bitcointalk ist im Vergleich zum Bip veraltet.
@NicolasDorier Eigentlich hast du es im Buch nicht erklärt. Sie haben die Tatsache einfach ohne jede Erklärung angegeben. :-)