Wie verwende ich UTXO von xpub-abgeleiteten Adressen?

Ich bin neu in Bitcoin, das ist etwas, womit ich verwirrt bin.

Wenn wir Kinder, dh öffentliche Schlüssel, von xpub ohne private Schlüssel ableiten, um Ausgaben zu erhalten, wie können wir dann UTXO ausgeben, wenn wir keinen privaten Schlüssel haben?

In diesem Beispiel: https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch05.asciidoc#using-an-extended-public-key-on-a-web-store xpub wird auf dem Server eingerichtet, um öffentlich zu generieren Schlüssel, um Geld auf der E-Commerce-Website zu erhalten. Aber wie greifen wir auf dieses Geld zu, wenn wir keine privaten Schlüssel haben?

Antworten (2)

Gabriels HD-Wallet bietet eine viel bessere Lösung durch die Möglichkeit, öffentliche untergeordnete Schlüssel abzuleiten, ohne die privaten Schlüssel zu kennen. Gabriel kann auf seiner Website einen erweiterten öffentlichen Schlüssel (xpub) laden, mit dem für jede Kundenbestellung eine eindeutige Adresse abgeleitet werden kann. Gabriel kann die Gelder von seinem Trezor ausgeben, aber der auf der Website geladene xpub kann nur Adressen generieren und Gelder erhalten.

Der von Ihnen erwähnte Link beschreibt, wie Sie XPUB verwenden können, um für jede Bestellung auf Ihrer Website eine neue Adresse zu erhalten, und die Adresse gehört zu Ihrem Wallet-Setup, möglicherweise auf einem Hardware-Wallet oder woanders, um es auszugeben.

Aber wie greifen wir auf dieses Geld zu, wenn wir keine privaten Schlüssel haben?

Sie greifen nicht im Webshop darauf zu, sondern über eine Hardware-Wallet oder eine Wallet-Einrichtung auf einem anderen Computer usw.

Sie können dies mit btcpayserver versuchen

In deterministischen Ableitungsschemata wie BIP-32 wird die Essenz einer Brieftasche auf zwei Informationen reduziert: einen privaten Schlüssel und eine Ableitungsregel. Wir nennen diese beiden in Kombination einen xPrivoder erweiterten privaten Schlüssel. Ebenso xPubbesteht ein erweiterter öffentlicher Schlüssel ( ) aus dem entsprechenden öffentlichen Schlüssel und einer weiteren Ableitungsregel. Wir können den öffentlichen Schlüssel leicht aus dem privaten Schlüssel finden. Aber was ist mit der Ableitungsregel?

Im Standardfall¹ sind die Ableitungsregeln einfache Arithmetik mit großen Zahlen. Schauen wir uns ein Beispiel an. Seien kder private Hauptschlüssel, die Ableitungsregel k' = k + 1, gder Generator und der öffentliche Schlüssel K = k•g. Wenn wir also den zweiten Schlüssel in der Kette ableiten, k'beobachten wir

k'•g = (k+1)•g = k•g + g = K + g = K'

was bedeutet, dass, wenn die privaten Schlüssel eine skalare Reihe sind, die durch Additionen von 1 erzeugt werden, die entsprechenden öffentlichen Schlüssel eine Reihe von elliptischen Kurvenpunkten wären, die durch Additionen des Generators abgeleitet werden g. Wir haben also sowohl den öffentlichen Hauptschlüssel als auch eine Ableitungsregel, mit der wir jeden Unterschlüssel daraus finden können!

Was hat das mit deiner Frage zu tun? In dem Beispiel, auf das Sie verlinken, verwendet Gabriel die beschriebene Beziehung zwischen seinem xPubund seinem xPriv, um den privaten Schlüssel offline zu halten und den nur xPubauf seinem Online-System bereitzustellen. Dies ermöglicht Gabriel, Adressen nach Bedarf für den Webshop zu generieren, verhindert jedoch, dass die privaten Schlüssel einem potenziell angreifbaren Online-System ausgesetzt werden. Wenn Gabriel einige Gelder ausgeben möchte, die er erhalten hat, generiert er die Transaktion mit der Watch-Only-Wallet und signiert sie offline, indem er die entsprechenden privaten Schlüssel mit seiner Hardware-Wallet nach Bedarf ableitet.


¹ Es gibt auch Ableitungsregeln, die es nicht zulassen, dass öffentliche Schlüssel aus dem öffentlichen Hauptschlüssel abgeleitet werden, zB indem bei der Ableitung ein Hash-Schritt verwendet wird. Solche "gehärteten" Schemata erfordern Zugriff auf den privaten Hauptschlüssel, um zusätzliche Adressen abzuleiten.