Wie signiere ich eine Transaktion nur mit einem Offline-Computer?

Ich denke, es ist möglich, Schlüssel auf einem Offline-Computer zu generieren und zu signieren. Um eine Transaktion zu erstellen, muss ich Transaktionsdetails eingeben, und irgendwie muss ich signierte Transaktionen von einem Offline-Computer auf einen Online-Computer übertragen, um die Transaktion weiterzuleiten.

Geht das auch ohne USB-Speicher? Ich kann eine Tastatur oder einen Strichcodeleser verwenden, um den eingegebenen Transaktions-Hash auf einen Offline-Computer und die signierte Transaktion zurück auf den Online-Computer zu übertragen. Dieser private Schlüssel bleibt also auf dem Offline-Computer.

Was sind Schritt-für-Schritt-Anleitungen dazu, mit erforderlicher Fehlerprüfung/Korrektur?

Solange der Offline-Computer in der Lage ist, die Nachricht zu signieren und einen QR-Code zu generieren, sollte der Vorgang sehr einfach sein.

Antworten (2)

Sie haben Recht, dass der Offline-Knoten wissen muss, wie er seine Gelder anfordert, sodass er nicht vollständig isoliert werden kann.

Derzeit ist die ausgereifteste Offline-Wallet-Lösung ein Client namens Bitcoin Armory . So sieht Ihr Workflow mit Offline-Wallets aus:

Online-Knoten erstellt Transaktion -> USB-Schlüssel -> Offline-Computer signiert Transaktion -> USB-Schlüssel -> Online-Knoten überträgt Transaktion

Sie können Windows, Linux oder Mac für Ihr Offline-Wallet verwenden, aber ich würde Linux empfehlen, da es schwierig ist, AutoRun/AutoPlay unter Windows zu deaktivieren.

Download:

Auf dieser Seite werden Offline-Transaktionen ausführlicher erläutert.

danke für den hinweis. ist es möglich, den Teil "USB-Laufwerk" zu überspringen?
@vi.su. Sie brauchen eine Möglichkeit, die Eingaben/den Index auf den Offline-Computer zu bringen, und eine Möglichkeit, die signierten Transaktionen herauszuholen. Sie könnten dies tun, indem Sie sie manuell eingeben, aber das scheint übermäßig schwierig zu sein.
Ich verwende derzeit einen USB-Stick, um nicht signierte Transaktionen auf einen Offline-Computer zu kopieren, auf dem ich sie signiere, und kopiere sie dann mit demselben USB-Stick zurück auf einen Online-Computer. Aber heute habe ich arstechnica.com/security/2013/10/… gelesen, was ziemlich erschreckend ist, wenn es wahr ist. Ich würde gerne einen Weg finden, QRcodes zu verwenden, um die erforderlichen Informationen zwischen Computern zu übertragen, anstatt einen USB-Stick, um dieses Infektionsrisiko zu vermeiden.
Die nicht signierte Rohtransaktion selbst ist klein genug, um in einen QR-Code zu passen, aber der Offline-Computer benötigt auch Zugriff auf die Eingabetransaktionen für die Transaktion, die er zu signieren versucht, was ich derzeit durch Kopieren einer Wallet-Datei ebenfalls bereitstelle. Wallet-Dateien sind zu groß, um in einen QR-Code zu passen.
Der Link "Diese Seite" in Ihrer letzten Zeile ist veraltet. bitcoinarmory.com/about/using-our-wallet/#offlinewallet ist vielleicht der neue Link.
@ChrisMoore "Der Link "Diese Seite" in Ihrer letzten Zeile ist veraltet." Vielen Dank. "Ich würde gerne einen Weg finden, QRcodes zur Übermittlung der erforderlichen Informationen zu verwenden" Das ist eine interessante Idee, aber wahrscheinlich außerhalb des Rahmens dieser Frage.
Denkst du so? Die Frage lautete: "Ist es möglich, dies ohne die Verwendung eines USB-Speichers zu tun?" Eine Antwort mit QR-Codes scheint also genau das zu sein, wonach er gesucht hat.
Der Link zur erklärenden Seite scheint wieder veraltet zu sein.

Daran arbeite ich gerade. Derzeit habe ich Online- und Offline-Waffenkammer eingerichtet, um den USB-Stick zu verwenden, wie hier zuvor beschrieben wurde. Ich habe gerade eine neue Android-App erstellt, die mit dem Bitcoin-Netzwerk peert und es Ihnen ermöglicht, einen QR-Code zu scannen, der JEDE signierte Transaktion darstellt, und ihn an die Peers zu senden. Dadurch können Sie Folgendes tun:

  • Machen Sie eine unsignierte Transaktion in der Waffenkammer
  • Erstellen Sie daraus einen QR-Code
  • Scannen Sie es mit dem Telefon (bisher funktionieren QR Droid und Barcode Scanner)
  • Bringen Sie das Telefon in die Offline-Brieftasche
  • Zeigen Sie den QR-Code für nicht signierte Transaktionen auf dem Telefon an (die Verwendung des Verlaufs in QR Droid funktioniert gut)
  • Scannen Sie mit einer Webcam in einem Offline-Wallet-Computer (ich habe dies erfolgreich mit der zbar-Linux-Anwendung in Ubuntu gemacht - Paketdetails folgen)
  • Unterzeichnen Sie tx mit Offline-Waffenkammer
  • QR-Code für signierten TX anzeigen (weitere Pakete folgen)
  • Scannen Sie mit der neuen Android-App, um zu senden

Dies ist fast fertig – die App führt derzeit Peering mit Bitcoin-Knoten durch und scannt den QR-Code und sendet ihn an eine Broadcasting-Aktivität, aber der Broadcast-Teil und das Parsen des Armory-Formats bleiben bestehen.

UPDATE: Implementiert. Schau das Video

Python-Code hier

Android-App-Code hier

Diese Erklärung hilft dem Fragesteller nicht allzu sehr, könnten Sie die Bits „Erstellen einer Transaktion“ und „Signieren von TX mit Offline-Waffenkammer“ erläutern?
Ich habe ein Video hinzugefügt, das den gesamten Prozess demonstriert. Es wird davon ausgegangen, dass Sie wissen, wie man eine Offline-Transaktion in Armory durchführt, was hier beschrieben wird . Alles, was Sie tun müssen, ist, den unsignierten Transaktionstext in einen QR-Code umzuwandeln (ich habe dazu QREncoder aus dem App Store auf meinem Mac verwendet), und dann den Schritten im Video zu folgen. Ich werde die Skripte bald posten und aus dem Video und wahrscheinlich hier verlinken.