Wie funktionieren wiederverwendbare Zahlungscodes?

Ich habe kürzlich von "Wiederverwendbaren Zahlungscodes" (BIP 47) gehört, und es klingt nach einer großartigen Funktion, außer dass ich keine einfache Erklärung dafür finden konnte, wie sie funktionieren.

Kann sie bitte jemand erklären?

FYI: Ich habe die Details zu diesem BIP nicht verfolgt, aber ein früherer Name für (glaube ich) einen ähnlichen Vorschlag war "Stealth Address".

Antworten (1)

Der Kern des wiederverwendbaren Zahlungscodes BIP besteht darin, dass Sie durch die Kombination von BIP32 (hierarchical deterministic wallets) mit dem Diffie-Hellman-Schlüsselaustausch ein gewisses Maß an Adressdatenschutz erreichen können. Um zu verstehen, was das bedeutet, lassen Sie uns herausfinden, wie die aktuelle Situation von Bitcoin-Wallets ist.

Ursprünglich generierten Bitcoin-Wallets im Referenzclient einfach Zufallszahlen für private Schlüssel, die wiederum einen Haufen zufälliger Adressen erzeugten. Das funktionierte großartig für das Senden und Empfangen, aber für die Privatsphäre ist es nicht so toll. Wenn Sie beispielsweise Ihre Adresse veröffentlichen, weiß jeder genau, wie viel Sie an diese Adresse erhalten, da die Blockchain ein öffentliches Hauptbuch ist.

Als nächstes kamen Deterministic Wallets von Armory. Dies ermöglichte es einem einzigen Seed, eine praktisch unendliche Anzahl von Adressen zu generieren. Das heißt, Sie können eine einzelne Brieftasche aus 256 Bit (oder weniger) generieren und so viele Adressen erhalten, wie Sie benötigen. Dies ermöglichte es den Leuten, sich gegenseitig Wallets nur für Waffen zu schicken und auf diese Weise bezahlt zu werden. Viel besser für die Privatsphäre, da Sie im Allgemeinen nur neue Adressen verwenden sollten, aber sobald jemand im Besitz Ihrer Watch-Only-Brieftasche ist, kennt er alle Transaktionen in und aus dieser Brieftasche. Natürlich besser als es öffentlich zu sein, aber immer noch etwas zu wünschen übrig, wenn es um die finanzielle Privatsphäre geht, wenn Ihr Arbeitgeber Sie beispielsweise über eine Wallet bezahlt hat, die nur von Armory überwacht werden kann, weiß er genau, wie viel davon bewegt wurde und bald.

Dann kamen HD-Wallets (hierarchische deterministische Wallets), mit denen Sie mehrere Wallet-Ebenen aus einem einzigen Seed haben können. Jetzt können Sie einer Person eine Watch-only-Wallet (xpub im BIP32-Jargon) und einer anderen Person eine andere Watch-only-Wallet schicken, und sie werden nichts darüber wissen, was die andere tut. Auch das ist besser für die Privatsphäre, aber jetzt müssen Sie jedem, mit dem Sie es zu tun haben, verschiedene Brieftaschen nur für die Uhr ausgeben, was unordentlich werden kann.

Wiederverwendbare Zahlungscodes sind im Wesentlichen ein einzelner Code (im Wesentlichen ein xpub von BIP32), den Sie veröffentlichen können und der in Kombination mit einem anderen HD-Wallet eine neue Brieftasche erstellt. Dies funktioniert über den Diffie-Hellman-Schlüsselaustausch, bei dem der Absender das xprv aus seiner HD-Brieftasche verwendet und das mit dem xpub des Empfängers kombiniert, um im Wesentlichen eine Brieftasche zu erhalten, die nur der Empfänger öffnen kann, aber sowohl der Absender als auch der Empfänger die Adressen bestimmen können. Als Teil des Schlüsselaustauschs muss der Sender dem Empfänger seinen xpub senden, damit die Zahlungen bidirektional erfolgen können. Wenn Sie beispielsweise eine Rückerstattung benötigen, ist der Zahlungscode symmetrisch, sodass eine in die andere Richtung gehende Brieftasche beiden Seiten deterministisch bekannt sein kann. Eine Rückerstattung kann ohne verrückte Workarounds, die für die aktuelle Bitcoin-Landschaft typisch sind, an den Zahlungscode gesendet werden.

Wiederverwendbare Zahlungscodes sind im Wesentlichen eine Möglichkeit, sich zu identifizieren, ohne Informationen darüber preiszugeben, wie viel von diesem Zahlungscode empfangen oder an ihn gesendet wurde. Adressen, deterministische Wallets und HD-Wallets haben diese Fähigkeit nicht.

Tolle Antwort, danke Jimmy! Ich habe vor kurzem eine ähnliche Frage gestellt , vielleicht kannst du dich dazu äußern?
Dies ist im Allgemeinen eine gute Erklärung, aber der Absatz über die wiederverwendbaren Zahlungscodes ist etwas vage. Wenn der Empfänger die Adresse bestimmen kann, warum kann er diese Adresse dann nicht „beobachten“? Bedeutet der bidirektionale Zahlungscode, dass derselbe Code für Zahlungen von A nach B und von B nach A verwendet werden kann?
Sowohl Sender als auch Empfänger kennen das kombinierte Wallet, aber sie kennen keine anderen Wallets. Dies ist aus Sicht des Datenschutzes schön. Und ja, der bidirektionale Zahlungscode bedeutet, dass, wenn A den Zahlungscode von B kennt, B den Zahlungscode von A kennen muss, damit zwei verschiedene Brieftaschen erstellt werden können, eine, die von A nach B sendet, und eine andere, die von B nach A sendet. Übrigens, wenn Sie Wenn Sie eine gründlichere Antwort wünschen, stellen Sie bitte eine StackeExchange-Frage, damit ich mehr Raum zum Ausarbeiten habe =)