Author: Arman The Parman | Original Date: Uknown | Translated by: Leon A. Wankum | Signing Bitcoin PSBTs with QR codes with the Pi Zero (ZeroTrust Level 6)
Ich wollte ursprünglich über die Verwendung von QR-Codes für PSBTs auf einem Air-Gap-Raspberry Pi Zero schreiben, aber ich habe es erweitert, um auch eine allgemeine Diskussion über PSBTs aufzunehmen, insbesondere die Verwendung der Electrum Desktop Wallet. Sanfter Rat: Ich empfehle Ihnen dringend, den Umgang mit Electrum zu lernen, wenn Sie ein ernsthafter Bitcoiner sind. Spielen Sie nicht ausschließlich mit heruntergekommener Software für die breite Masse. Lernen Sie die „Werkzeuge des Geschäfts“. Hier könntest Du anfangen.
ELECTRUM BITCOIN-TRANSAKTIONEN
Dies ist ein Bitcoin-Transaktionsbestätigungsfenster in Electrum:
Das obere Fenster enthält die Eingabedetails der Transaktion (die Coins die zum Bezahlen verwendet werden), und das untere Fenster zeigt die Ausgabedetails (wohin die Coins gehen). Beachten Sie oben links, dass zu diesem Zeitpunkt „Unsigned“ steht.
Die Details hier können vor oder nach dem Signieren gespeichert und auf einen anderen Computer verschoben werden.
Es gibt drei Arten von Transaktionsphasen, die ich im Folgenden erörtern möchte:
VORSIGNIERT: Für eine vorsignierte Transaktion haben Sie möglicherweise ein Setup, bei dem Sie eine Transaktion aus einer Watch-Only-Wallet (auf einem internetfähigen Computer, vorzugsweise mit Ihrer eigenen Node verbunden) generieren und die Transaktion auf einen Offline-Computer zum signieren verschieben. Dieser Computer ist viel besser davor geschützt, dass die privaten Schlüssel kompromittiert werden. Ich zeige hier, wie man einen billigen Air-Gap-Raspberry Pi Zero baut (oder einen fertigen von mir kauft, wenn Sie keine Zeit haben), aber natürlich könnten Sie einen speziell angefertigten Desktop-Computer ohne WiFi- oder Bluetooth-Fähigkeiten kaufen (eine teure Option, aber schneller als ein Pi Zero). Ein Laptop reicht nicht aus, weil sie alle WiFi-Chips haben, soweit ich weiß, und ich nehme an, Sie wollen den Computer nicht öffnen und den Chip selbst entfernen.
VOLLSTÄNDIG SIGNIERT: Nachdem dieser Offline-Computer die Transaktion signiert hat, ist sie vollständig signiert, und Sie senden die Transaktion dann an Ihren internetfähigen Computer zurück und laden sie in Ihre Wallet. Dann veröffentlichen Sie die Transaktion. (Sie können natürlich keine Transaktion von einem Air-Gap-Computer veröffentlichen). Ein weiterer Grund für den Export einer vollständig signierten Transaktion ist, wenn Sie eine Transaktion im Voraus vorbereiten und für eine spätere Übertragung speichern möchten.
TEILWEISE SIGNIERT: Dies wird in einem Multisignatur-Wallet-Setup verwendet (machen Sie eins; wenn Sie Angst haben, machen Sie zumindest ein Übungs-Wallet). Sie generieren eine vorsignierte Transaktion auf Ihrem Watch-Only-Wallet (auf einem internetfähigen Computer, vorzugsweise mit Ihrer eigenen Node verbunden) und verschieben die Transaktion auf Ihren ersten Offline-Computer, der die Transaktion signiert. Jetzt wird es zu einer teilweise signierten Transaktion (PSBT). Dann verschieben Sie die Transaktion auf Ihren anderen Offline-Computer und fügen die nächste Signatur hinzu und so weiter, bis genügend Signaturen vorhanden sind, um die Transaktion gültig zu machen. Sobald die erforderliche Mindestanzahl an Signaturen erreicht ist, wird die Transaktion als „vollständig signiert“ eingestuft und wie zuvor erwähnt, an die Watch-Only-Wallet zurückgesendet und veröffentlicht.
UNTERSCHÄTZTER VORTEIL VON MULTISIGNATURE WALLETS:
Die Leute fragen: „Warum kann ich nicht einfach eine einzige Signatur-Wallet mit einer Passphrase verwenden und diese separat speichern?“ – Nun, das repliziert die Speichervorteile von Multisignature in gewisser Weise, aber der große Vorteil von Multisignature kommt in dem Moment, in dem Sie Geld ausgeben. Bei der Seed-Splitting-Methode müssen Sie, wenn Sie jemals etwas ausgeben, Ihren Schlüssel und Ihre Passphrase erhalten und sie in einen EINZIGEN Computer an einem physischen Ort eingeben, um sie auszugeben. Was, wenn dieser Computer kompromittiert wurde? Was ist, wenn der Standort kompromittiert wurde? Durch die Verwendung von Multisignatur können Sie die Ausgabebedingungen auf verschiedene Computer an verschiedenen Orten verteilen, indem Sie teilweise signierte Bitcoin-Transaktionen verwenden. Das ist sehr beruhigend für den modernen paranoiden Bitcoiner wie mich.
Um dies tun zu können, müssen Sie die verschiedenen Möglichkeiten zum Verschieben von Transaktionen (signiert, teilweise oder vollständig signiert – es spielt keine Rolle) auf andere Geräte kennen. Es gibt drei Schritte, die ich besprechen werde:
- Exportieren Sie die Transaktion
- Übertragung der Transaktion
- Importieren Sie die Transaktion
1. TRANSAKTION EXPORTIEREN:
Die exportierten Daten sind tatsächlich als eine Art Text codiert. Hier ist ein Beispiel:
cZNidP8BAFICAAAAASLi0qKdKLpOBOVfjI9w2kLw8/VVnm1tMCXkCMjv0OjcAAAAAAD9////AeyiFgAAAAAAFgAU05DtPttCR2WkXbEuhhG+1fF3Ia0AAAAAAAEA/XwBAQAAAAABAQvN8kuoD1DSexoC+s3BTfF6mPXsvBTMxaZmfWKlanWfAQAAAAD/////AmDjFgAAAAAAFgAU05DtPttCR2WkXbEuhhG+1fF3Ia1m5tkAAAAAACIAIHwNZO/9YriUdA1EW/ynuR4vM75gCwZ4b5bWAWslhmE7BABIMEUCIQDiB/cBSLkyT7CuXMTmzPUitmoIeCgM34FO/1LtDC1iggIgduQq84lO3KpzCqrcc0ch6Wpkeln6kNw2t5YhO2YSsLkBRzBEAiAXczv8ijMWE3F6fRvp1/OwgV5CbeUY3dtn5HKK2R7OwgIgfXVvQGilgzYNzotqG8Y82hSvCg/l2MPbBILVSVcRfzEBaVIhAqW6zsXKoQcBhCEh5s84bZ4vwnoz5MWox7k8WIXZ5LayIQMJzvNDyrJx8c4kaRCRn357kMU4qIsWcNJo2LB0gcJ1oiEDCAP6SV0/zifSQEJlCRJL8GBNbgrb35Nlj7Ou4MH1pIBTrnhHCgAiBgKgL33jv+JYfiDc2pYHPXw2zyZa51w4So25rvU/JcvK/xhB5kZCVAAAgAAAAIAAAACAAAAAAAEAAAAAIgICoC9947/iWH4g3NqWBz18Ns8mWudcOEqNua71PyXLyv8YQeZGQlQAAIAAAACAAAAAgAAAAAABAAAAAA==
Electrum kann dies lesen und ein Transaktionsfenster füllen.
Sie können diesen Text in einer Datei speichern, z. B. „MyTransaction.psbt“, oder Sie können den Text in die Zwischenablage kopieren und per E-Mail an einen anderen Computer senden, wenn Sie dies wünschen, oder Sie können einen QR-Code generieren und die Photonen auf die Kamera eines anderen Computers beamen (z. B. im selben Raum oder weltweit per Videoverbindung).
Sobald Sie eine Transaktion durchgeführt und alle Details überprüft haben, klicken Sie auf „Abschließen“. Dann erscheint die Schaltfläche „Exportieren“. Dies ist das Untermenü:
Die Option „In die Zwischenablage kopieren “ kopiert Text in die Zwischenablage, der die Transaktionsdetails kodiert. Sie könnten das in einer Datei oder sogar in einem Dokument speichern und es dann auf Papier schreiben (nicht zu empfehlen).
Die Option „ Als QR-Code anzeigen “ ist unglaublich nützlich, um zu verhindern, dass sich Air-Gap-Computer gegenseitig kontaminieren, indem Sie USB-Geräte zur Datenübertragung gemeinsam nutzen. Sehen Sie sich etwas später an, wie Sie dies einrichten. QR-Codes sind erstaunlich. Sie können jeden Text verschlüsseln, nicht nur Bitcoin-Transaktionen oder Webadressen. Zum Beispiel:
Die Option „In Datei exportieren “ macht genau das. Speichern Sie es auf Ihrem Desktop, senden Sie die Datei per E-Mail oder kopieren Sie sie auf eine SD-Karte, die zum Signieren in Ihre Hardware-Wallet passt – obwohl das nicht ganz stimmt, ich habe es auf der ColdCard getestet und es funktioniert nicht es sei denn, Sie speichern die Datei speziell unter dem letzten Punkt im Menü „ Für Hardwaregerät; xpubs enthalten “. Keine Ahnung warum.
Ich habe „ For CoinJoin; strip privates" noch nie getestet; also werde ich nicht kommentieren.
2. ÜBERTRAGUNG DER TRANSAKTIONSDATEN
Nach Datei – Sie können die Datei auf ein USB-Speichergerät kopieren und diese dann auf den nächsten Computer kopieren. Das potenzielle Problem besteht darin, dass Malware auf dem ersten Computer den nächsten Computer infizieren kann.
Oder Sie können die Datei an eine E-Mail anhängen und an einen anderen Computer (natürlich keinen Air-Gap, unmöglich) irgendwo auf der Welt senden. Dies verringert das Risiko, dass Malware transportiert wird, obwohl dies nicht unmöglich ist.
Zwischenablage – die Textdaten der Transaktion werden in den Speicher des Computers kopiert – das ist hauptsächlich nützlich, um die Transaktion in eine andere Wallet auf demselben Computer zu verschieben. Aber es ist auch eine Möglichkeit, die Textdaten zu extrahieren und in ein Dokument einzufügen.
Von Hand – Wenn Sie die Textdaten aus der Zwischenablage extrahiert haben, können Sie alles auf ein Blatt Papier schreiben. Wenn Sie einen Fehler machen, wird bitcoin nicht an die falsche Stelle geschickt, es wird nur die gesamte Transaktion ungültig machen. Kein empfehlenswerter Weg, aber es ist ziemlich cool, dass das möglich ist. Sie können es dann per traditioneller physischer Post in die ganze Welt schicken, nur zum Spaß.
QR – Sobald ein QR-Code für die Transaktion generiert wurde, kann der Bildschirm auf der Kamera eines anderen Computers angezeigt werden, um die Daten zu übertragen.
3. IMPORTIEREN SIE DIE TRANSAKTION
Auf der Electrum-Wallet des empfangenden Computers finden Sie das Transaktionslademenü wie folgt …
Datei – Sie können zum Speicherort der Datei navigieren, die Sie übertragen haben (normalerweise das USB-Laufwerk).
Text – Sie können den Text in ein Popup-Fenster eingeben; Geben Sie den Text entweder manuell ein (nicht zu empfehlen!) oder kopieren Sie den Text aus einer E-Mail und fügen Sie ihn aus der Zwischenablage ein.
Blockchain – Noch nie gemacht. Ich nehme an, Sie könnten eine bestätigte Transaktion aus der Blockchain laden, um die Transaktion aus irgendeinem Grund zu überprüfen. Bei dieser Methode geben Sie eine Transaktions-ID in ein Popup-Fenster ein.
QR-Code – das ist der interessante Teil. Dadurch wird die Kamera des empfangenden Computers geöffnet. Zeigen Sie auf den QR-Code auf dem Bildschirm des sendenden Computers, und die Transaktion wird kopiert. Schön.
WIE MAN DEN AIR-GAPPED PI MIT EINER KAMERA FÜR DIE QR-CODE-ÜBERTRAGUNG VON PSBTS EINRICHTET
Der Hauptzweck der QR-Übertragung besteht darin, vorsignierte oder teilweise signierte Transaktionen zu senden, ohne den Air-Gap-Computer potenziell zu gefährden.
Für den Pi-Zero-Computer habe ich ein paar USB-Webcams getestet. Sie können eine billige bei eBay oder Amazon kaufen. Stellen Sie sicher, dass Sie keine mit einem eingebauten Mikrofon erhalten, obwohl es nicht das Ende der Welt ist, wenn Sie so eine verwenden. Das theoretische Risiko besteht darin, dass ein Mikrofon gehackt werden kann, als Mikrofon fungieren und Daten per Ton an einen Angreifer senden könnte (sogar Ton außerhalb des Frequenzbereichs Ihres Gehörs – OK, James-Bond-Zeug, aber Risiko ungleich Null).
Vor einiger Zeit konnte ich das nicht per Plug-and-Play machen. Ich konnte das Problem umgehen, aber das ist nicht mehr nötig. Plug and Play funktioniert jetzt. Ich denke, weil neuere Versionen von Electrum einige Probleme behoben haben, funktionieren die Kameras jetzt als Plug-and-Play auf dem Raspian OS des Pi Zero.
SCHRITTE ZUM SENDEN EINER TRANSAKTION MIT DEM PI-ZERO UNTER VERWENDUNG VON QR-CODES
- Schließen Sie die Kamera an den Pi Zero an – es passiert nichts, das ist ok.
- Laden Sie Electrum auf das Watch-Only-Wallet auf dem internetfähigen Computer und öffnen Sie Ihr Wallet.
- Machen Sie eine Transaktion auf der Watch-Only-Wallet und schließen Sie diese ab. Die Schaltflächen „Sign“ und „Broadcast“ sind grau, da dieses Wallet keinen privaten Schlüssel hat. Anschließend exportieren Sie die Transaktion in den QR-Code.
- Öffnen Sie dieselbe Wallet auf dem Pi Zero, aber diese Wallet hat einen privaten Schlüssel und kann signieren.
- Gehen Sie zum Electrum-Menü oben und wählen Sie Extras –> Transaktion laden –> Von QR-Code
- Es öffnet sich ein Kamerafenster. Richten Sie die Pi Zero-Kamera auf den QR-Code auf dem anderen Computer. Beachten Sie, dass der Pi Zero SEHR langsam ist und alle paar Sekunden ein Bild angezeigt wird, kein Video. Es ist ziemlich schwierig, verzögertes Feedback zu erhalten und zu versuchen, die Kamera so zu positionieren (und still zu halten), dass sie genau auf den QR-Code zeigt. Es ist mit Mühe und Übung machbar. Auf einem leistungsstarken Air-Gap-Desktop-Computer ist es ein Kinderspiel und eine Freude.
- Sobald der QR erkannt wird, erscheint die Transaktion auf magische Weise auf dem Air-Gap.Computer. Anschließend können Sie die Transaktion überprüfen und auf „Signieren“ klicken.
- Die Transaktion ändert sich von „nicht signiert“ zu „signiert“.
- Exportieren Sie die signierte Transaktion vom Pi Zero, indem Sie im Transaktionsfenster auf die Schaltfläche „Exportieren“ klicken und „Als QR-Code anzeigen“ auswählen.
- Schließen Sie am Internet-Rechner die unsignierte Transaktion und gehen Sie erneut ins Menü: Extras –> Transaktion laden –> Von QR-Code.
- Auf dem Desktop öffnet sich ein Kamerafenster. Richten Sie die Kamera des Internet-Computers auf den Monitor des Pi und erfassen Sie den QR-Code.
- Die Transaktion wird auf dem Internet-Computer angezeigt. Es wird „signiert“ angezeigt.
- Die Schaltfläche „Broadcast“ steht zum Anklicken zur Verfügung. Drauf klicken.
Und das ist es! Sie haben eine Transaktion unterzeichnet und übertragen, ohne dem internetfähigen Computer jemals zu erlauben, einen privaten Schlüssel zu kontaktieren, und Ihr Air-Gap Computer bleibt sauber, da er nie einen "schmutzigen" USB-Stick berührt hat.
Value 4 Value | Tips:
Wenn Ihnen diese Übersetzung gefallen hat, würde ich mich über eine Wertschätzung in Form von Satoshi an law@getalby.com freuen.
Sie können mir ausserdem auf Twitter folgen oder meine Homepage besuchen.
Nostr: npub1v5k43t905yz6lpr4crlgq2d99e7ahsehk27eex9mz7s3rhzvmesqum8rd9
Leon A. Wankum
Bitcoin. Real Estate. Philosophy & Ethics. ⚡law@getalby.com npub1v5k43t905yz6lpr4crlgq2d99e7ahsehk27eex9mz7s3rhzvmesqum8rd9
follow me :
Related Posts
Rabbit fragt #17
Aug 28, 2024
Der Bitcoiner in der Midlife-Crisis
Jun 14, 2024
Rabbit fragt...#16...Was ist eine Hardware Wallet?
May 26, 2024