Nehmen wir an, jemand (Person A) beginnt mit der Verwendung von Bitcoin und veröffentlicht nach einiger Zeit eifrig einige seiner zufällig generierten (z. B. vom Satoshi-Client) empfangenen Bitcoin-Adressen auf Formularen, sendet einige andere Adressen an einige Personen usw.
Die alten Schlüssel sind jetzt Person A zugeordnet, und in ein paar Jahren möchten einige Leute Person A vielleicht etwas Geld schicken; Sie könnten eine dieser alten Adressen finden (in einem alten Forumsbeitrag oder in einem alten privaten Bitcoin-Adressbuch) und sie verwenden.
Aber inzwischen ist A dazu übergegangen, eine andere Brieftasche anstelle des ursprünglichen Satoshi-Clients zu verwenden, und hat alle seine Gelder dorthin verschoben.
Bedeutet dies nicht, dass A alle ursprünglichen (nicht deterministisch generierten) privaten Schlüssel aller Adressen, die er möglicherweise an andere Personen gesendet oder verfügbar gemacht hat, für immer im Auge behalten und sie weiterhin in neue Brieftaschen importieren muss wann immer er zu einem neuen Brieftaschensystem wechselt, und sie (sicher) sichert usw.? Das erscheint sehr mühsam und fehleranfällig.
Ich weiß, dass empfohlen wird, für jede neue Transaktion eine neue Adresse zu verwenden, aber das wird in keiner Weise erzwungen, und was noch wichtiger ist, es liegt außerhalb der Kontrolle von Person A – es sind alle anderen Personen, die ihnen möglicherweise Geld schicken möchten.
Dieses Problem wird in Zukunft weniger wichtig sein (z. B. bei der deterministischen Schlüsselgenerierung, bei der nur der Seed gesichert werden muss), aber jemand, der den Satoshi-Client in der Vergangenheit ausgiebig und frei verwendet, wird möglicherweise nie einen sauberen Schnitt machen können.
Also ist das ein echtes Problem oder verstehe ich die Dinge falsch? Vielleicht gibt es einen einfachen (und sicheren) Workaround, oder vielleicht ist das doch nicht so umständlich?
Ich denke, der Kern des Problems besteht darin, dass wir base58-codierte öffentliche Schlüssel-Hashes "Adressen" nennen, unabhängig davon, ob die Leute bereit sind, Zahlungen an sie zu akzeptieren.
Meiner Meinung nach sind sie nur Kennungen für einen öffentlichen Schlüssel - etwas Internes in der Technologie von Bitcoin. Menschen sollten sie niemals sehen, es sei denn, sie debuggen.
Satoshi hatte ursprünglich nicht die Absicht, die aktuellen base58-Adressen als „Zahlungsziel“ zu verwenden – er dachte, Pay-to-IP (wobei der öffentliche Schlüssel vor Ort ausgehandelt wird) wäre die übliche Art, Transaktionen durchzuführen. Das Pay-to-Pubkeyhash-via-P2P wurde erst später für Fälle hinzugefügt, in denen der Empfänger offline war. Pay-to-IP hatte mehrere Probleme und wurde veraltet, aber es hatte viele Vorteile im Vergleich zu dem, was wir jetzt haben. Ich denke, die Lösung geht auf so etwas zurück, wie eine Pay-to-URI, bei der wiederum Schlüssel zum Zeitpunkt der Transaktion ausgehandelt werden. Das bedeutet, dass Sie immer sicher sind, dass der verwendete Schlüssel noch aktiv ist, private Schlüssel nicht für immer aufbewahrt werden müssen, kein Schlüssel jemals wiederverwendet wird (besser für das Datenschutzmodell von Bitcoin) und Sie sofort Unterstützung für das Anhängen von Nachrichten oder Rückerstattungsinformationen an Transaktionen erhalten .
Natürlich werden die Leute die privaten Schlüssel wahrscheinlich trotzdem aufbewahren, zum Beispiel in einer Archiv-Wallet, wie in anderen Antworten auf diese Frage erwähnt. Aber meiner Meinung nach sollte es keine Katastrophe sein, wenn die Leute es nicht tun.
Mt. Gox ist der erste, der es anbietet, aber ein Wallet-Sweeping-Service wird dieses Problem lösen.
Wenn Sie eine Brieftasche aufgeben möchten (oder müssen), können Sie die Schlüssel entweder mit einer Reihe technischer Schritte übertragen oder die wallet.dat zu einem Dienst hochladen, der sie überwacht, und wenn Gelder eingehen, diese löschen Geld auf ein Konto oder eine Bitcoin-Adresse in Ihrer Kontrolle.
Bis Mt. Gox eine entsprechende Benutzeroberfläche erstellt, ist diese Funktion zum Hochladen von wallet.dat nur über die API möglich. Sie können private Schlüssel bereits einzeln entweder über die API oder den Browser/die Benutzeroberfläche importieren.
Theoretisch sollten Sie alle Ihre Schlüssel behalten, von denen Sie glauben, dass jemand sie verwenden könnte, um Ihnen Geld zu schicken. Es kann sein, dass Sie sie in eine neue Brieftasche importieren oder einfach die alte Brieftasche behalten und gelegentlich überprüfen. Wenn Sie nur einige der Adressen verwenden, könnten Sie dazu neigen, diese einfach in Ihre neue Brieftasche zu importieren.
Da dieses Problem noch nicht so groß ist, gibt es nur wenige andere Lösungen, die Sie verwenden können. Es ist möglich, dass die Clients in Zukunft eine „Wallet archivieren“-Option haben, bei der Sie alle Ihre alten Wallets entsorgen und verfolgen, ob Sie dort neue Coins erhalten, ohne Ihre Haupt-Wallet oder einige online zu überladen Der Dienst funktioniert ähnlich wie ein eWallet.
Stéphane Gimenez
mazi
Meni Rosenfeld
Pieter Wuille