Öffentlicher Kettencode und MPK

Wenn der Master Private Key und der Master Public Key generiert werden, kann ich den Kettencode als beispielsweise BIP32 offenlegen ? Wenn nicht, wie kann ein öffentlicher Kinderschlüssel mit öffentlichen Parametern verifiziert werden?

Dies ist eine wichtige Frage für mich, da es notwendig ist, die Möglichkeit zu geben, den generierten öffentlichen untergeordneten Schlüssel in meinem Szenario einem anderen Benutzer zu verifizieren.

Könnte der Master Private Key generiert werden, indem eine zufällige Ganzzahl 0 < k < n verwendet wird, wobei n die Kurvengruppenreihenfolge ist?

Antworten (1)

Sie können einen erweiterten öffentlichen Schlüssel (xpub-Schlüssel) freigeben, und der Empfänger kann untergeordnete Pubkeys generieren (und somit die ihm bereitgestellten untergeordneten Pubkeys überprüfen). Ein erweiterter öffentlicher Schlüssel ist definiert als (K,c), wobei Kder übergeordnete öffentliche Schlüssel und cder Kettencode ist.

Denken Sie daran: Jeder mit dem xpub-Schlüssel kann nicht nur überprüfen, ob eine Adresse, die Sie ihm geben, vom xpub-Schlüssel abgeleitet ist, sondern auch alle Adressen, die sich auf den xpub-Schlüssel beziehen, selbst ableiten . Je nach Situation kann dies ein Datenschutzproblem darstellen.

Erwähnenswert: Für die meisten Anwendungen sollten Sie keinen Master Extended Public Key teilen. Stattdessen sollten Sie einen erweiterten öffentlichen Schlüssel freigeben, der sich auf einer tieferen Ebene des Ableitungsbaums befindet. Es kann sich auch lohnen, die Vorteile der Verwendung eines gehärteten Schlüsselableitungsschemas zu betrachten, sodass Sie eine Firewall mit einer bestimmten Ableitungstiefe erstellen können, was bedeutet, dass ein Angreifer nicht in der Lage ist, über diese Ebene hinaus zurückzuarbeiten, falls Ihr System kompromittiert wird.

Im Grunde könnte also ein Master Private Key (k) 0<k<n und ein Master Public Key kG sein, wobei G ein Punkt auf der gewählten Kurve ist. Rechts?
@CipherX Um einen erweiterten privaten Hauptschlüssel zu erstellen, sollten Sie sich genau an den BIP32-Standard halten, um die Kompatibilität mit anderen Wallet-Implementierungen sicherzustellen. Welche Werte ein privater Schlüssel haben kann, hat das Bitcoin-Wiki einige gute Informationen . Von dieser Seite kopiert: ... jede 256-Bit-Zahl von 0x1 bis 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4140 ist ein gültiger privater Schlüssel. Der Bereich gültiger privater Schlüssel wird durch den von Bitcoin verwendeten ECDSA-Standard secp256k1 geregelt.