Muss ich meine alten privaten Schlüssel für immer im Auge behalten?

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?

Antworten (3)

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.

Ja, die aktuelle Bitcoin-API ist eine Katastrophe. Schlüssel sollten (wenn sie überhaupt als Zahlungsziele genutzt werden sollen) immer ein (möglichst kurzes) Verfallsdatum haben.
Gut, also kann ich davon ausgehen, dass sich das in Zukunft verbessern wird. Die wirkliche Lösung besteht darin, dass Menschen Adressen als Wegwerfdaten sehen und behandeln, ganz im Gegensatz zu E-Mail-Adressen oder Telefonnummern. Die Tatsache, dass die meisten (alle?) Bitcoin-Wallets über Adressbücher verfügen, hilft hier nicht weiter ...
„Fälle, in denen der Empfänger offline war“ sind kein „nice to have“-Feature. Die Fähigkeit, ein bestimmtes Ziel abzufeuern und zu vergessen, ohne sich Gedanken darüber machen zu müssen, ob der Empfänger online ist, ist ein absolutes Muss. Ich kann mir nicht vorstellen, dass Bitcoin anders funktioniert.
@MeniRosenfeld Aber das haben wir gerade gar nicht. Es gibt keine Garantie dafür, dass sich das Netzwerk an Ihre gesendete Transaktion erinnert, bis sie aufgenommen wird. Das heißt, ich plädiere sicherlich nicht dafür, Send-to-Pubkeyhash-via-P2P zu entfernen (zum Beispiel für anonyme Spenden sehe ich keinen besseren Weg), sondern argumentiere nur, dass das Aushandeln einer Zahlung in vielen Fällen Vorteile hat.

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.

Ich glaube nicht, dass die Weitergabe meiner privaten Schlüssel an einen externen Dienst (wie MtGox) das von mir beschriebene Problem löst, da ich nicht wissen kann, wie lange der Dienst in Zukunft verfügbar sein wird. Darüber hinaus fügt es die Anforderung hinzu, dass ich dem Dienst vertraue (indem ich die Schlüssel habe, kann er, technisch, wenn nicht legal, mein Geld ausgeben). Mit anderen Worten, der Import der Schlüssel in ein Online-Wallet ist nicht einfacher oder langfristiger als in mein Desktop-Wallet und erfordert zusätzliches Vertrauen.

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.

Sie in den neuen Client zu importieren, ist viel besser, als den alten Client zu behalten, da Sie leicht Ihre Wallet-Passphrase vergessen könnten oder das Programm nicht mehr funktioniert usw.