Bestimmen von xprv aus xpub und dem privaten untergeordneten Schlüssel

Ich bin verwirrt durch den Wortlaut in BIP0032:

Eine Schwäche, die möglicherweise nicht sofort offensichtlich ist, besteht darin, dass die Kenntnis eines erweiterten öffentlichen Elternschlüssels plus eines nicht gehärteten privaten Schlüssels, der davon abstammt, gleichbedeutend ist mit der Kenntnis des erweiterten privaten Elternschlüssels (und somit aller davon abstammenden privaten und öffentlichen Schlüssel). Das bedeutet, dass erweiterte öffentliche Schlüssel sorgfältiger behandelt werden müssen als normale öffentliche Schlüssel. Dies ist auch der Grund für das Vorhandensein von gehärteten Schlüsseln und warum sie für die Kontoebene im Baum verwendet werden. Auf diese Weise riskiert ein Leck des kontospezifischen (oder niedrigeren) privaten Schlüssels niemals, das Master- oder andere Konten zu gefährden.

Das standardmäßig empfohlene Wallet-Layout ist m/0'/0/i.

Wenn ich also das xpubvon m/0'/0(das theoretisch mein Prüfer hat) und einen privaten Schlüssel in durchsickern lassen m/0'/0/14, wären dann nicht alle Schlüssel in m/0'/0/ikompromittiert? Ich verstehe das m/1'und mbin auf der sicheren Seite, aber jetzt haben Sie ein ganzes Konto verloren, obwohl Sie nur noch den Index härten mussten. Was ist der Grund für diese Empfehlung?

Antworten (1)

Diese Empfehlung stammt direkt aus einer der Sicherheitsüberlegungen aus demselben Dokument:

Beachten Sie jedoch, dass die folgenden Eigenschaften nicht existieren: (...) Wenn ein erweiterter öffentlicher Elternschlüssel (K par , c par ) und ein nicht gehärteter privater untergeordneter Schlüssel (k i ) gegeben sind, ist es schwierig, k par zu finden .

Der Grund für diese Empfehlung ist die Tatsache, dass die gesamte nicht gehärtete Schlüsselableitung auf einigen der Eigenschaften der elliptischen Kurve basiert. Eine davon ist, dass Sie dem privaten Schlüssel (der selbst eine gewöhnliche Nummer ist) eine Nummer hinzufügen können. Wenn Sie dieselbe Zahl in den Punkt auf der elliptischen Kurve konvertieren, können Sie sie zum öffentlichen Schlüssel hinzufügen (der selbst der Punkt auf der elliptischen Kurve ist). Dieser neue private Schlüssel ist genau der private Schlüssel für den neuen öffentlichen Schlüssel.

Das Problem besteht darin, dass diese Zahl, die wir hinzufügen (parse 256 ( IL )) aus dem übergeordneten öffentlichen Schlüssel und dem übergeordneten privaten Schlüssel berechnet werden kann.

Wenn wir also den untergeordneten privaten Schlüssel k child und die zuvor erwähnte Nummernanalyse 256 (I L ) kennen (die wir kennen, weil wir den öffentlichen übergeordneten Schlüssel kennen), können wir die Gleichung, aus der dieser Schlüssel abgeleitet wurde, neu anordnen:

k Kind = parse 256 (I L ) + k par (mod n)

und finden Sie k par , das der übergeordnete private Schlüssel ist.