So generieren Sie zufällige Adressen aus dem öffentlichen Schlüssel, sodass sie später nur mit dem öffentlichen Schlüssel wiederhergestellt werden können

Ich gehe davon aus, dass Sie aus einem öffentlichen Schlüssel zufällige Adressen generieren können, indem Sie dem öffentlichen Schlüssel einfach eine Nonce hinzufügen. Dann können Sie all diese Adressen bei Bedarf erneut generieren, richtig?

Wenn mein Wallet Kenntnis von meinem öffentlichen Schlüssel hat (natürlich hat es das), kann es viele private/öffentliche Schlüsselpaare generieren, indem es einfach eine Zahl hinzufügt. Angenommen, der private Schlüssel ist xund sein öffentlicher Schlüssel ist y. Wenn die Brieftasche den privaten Schlüssel xfür eine Weile gelöscht hat, kann sie die Adresse generieren y+1und sicher sein, dass x+1sie in Zukunft den privaten Schlüssel für diese Adresse erhält, wenn sie diese Gelder ausgeben muss. Dies ist eine Eigenschaft der Elliptischen-Kurven-Kryptografie, da zwischen den Sätzen privater und öffentlicher Schlüssel ein Homöomorphismus besteht.

Ich habe gehört, dass, wenn ich jemandem meinen öffentlichen Schlüssel gebe, er eine eindeutige Adresse ableiten und an diese Adresse senden kann, wobei er sicher ist, dass ich ihn ausgeben kann, weil ich den privaten Schlüssel für diese Adresse finden kann, indem ich einfach denselben hinzufüge Einmal hat er seinen öffentlichen Schlüssel generiert. Das Problem ist:

Er muss mir sagen, welche Nonce verwendet wurde, sonst müsste ich zufällige ausprobieren, bis ich zu der komme, die er verwendet hat. ABER, wenn es so gemacht wird, dann kann jeder meinen öffentlichen Schlüssel auswählen und alle meine Adressen finden. Wenn er mir wirklich das verwendete Nonce mitteilen muss (angenommen, es ist wirklich groß und zufällig, sodass ich es nicht durch Brute-Force erraten könnte), besteht die Gefahr, dass ich es verliere, weil ich all das im Auge behalten müsste nonces.

Wie wird das gemacht? Wie kann ich angesichts des öffentlichen Schlüssels von jemandem eine zufällige Adresse für ihn generieren, sodass er später den privaten/öffentlichen Schlüssel dafür erhalten kann, aber so, dass er nichts speichern muss, was zum Generieren verwendet wurde? diese Adresse?

Ich kann Ihrer Logik nicht ganz folgen ... Reden wir über Bitcoin? Ich bin mir nicht sicher, ob Ihre Aussage zutrifft, dass das Hinzufügen einer Nonce zu einem öffentlichen Schlüssel zufällige Adressen generiert. Naja, man könnte es sich denken. Sind Sie sicher, dass Sie nicht von hierarchischen deterministischen BIP32/44-Brieftaschen und deren Ableitung von Schlüsseln sprechen?
@pebwindkraft Ich spreche darüber: bitcoin.stackexchange.com/questions/41947/…

Antworten (1)

Ich glaube, Sie sprechen von HD-abgeleiteten Schlüsseln, ebenso wie die vorherige Frage, die Sie verlinkt haben. Die HD-Wallet-Struktur ist in BIP 32 ausgelegt .

Wenn jemand Ihren erweiterten öffentlichen Elternschlüssel hat, kann er mit diesem und einem Index/einer Nonce öffentliche erweiterte untergeordnete Schlüssel ableiten. Sie müssen den erweiterten Schlüssel (einschließlich des Kettencodes) haben, aber sie können die untergeordneten privaten Schlüssel nicht ableiten. Nur Sie können dies tun, indem Sie den übergeordneten erweiterten privaten Schlüssel verwenden. Sie können Ihnen also den Index mitteilen, und jeder andere mit dem Index und dem erweiterten übergeordneten öffentlichen Schlüssel kann sehen, welcher öffentliche Schlüssel verwendet wurde, aber der einzige mit dem privaten Schlüssel sind Sie.

Um die untergeordneten Schlüssel abzuleiten, müssen Sie zumindest den Master Extended Private Key (oder den Seed, aus dem er stammt) aufbewahren. Ohne das können Sie keine privaten Schlüssel ableiten.