Wie können Sie Ihre Bitcoin Core-Bitcoins sicher und mit Luftspalt zu Ihrem neuen, schicken Kühllager bewegen/fegen?

Ich habe meine Bitcoins auf Bitcoin Core in einigen P2PKH-Adressen mit vielen UTXOs gespeichert. Ich hätte gerne einen Plan, wie diese Bitcoins in ein aktuelleres Setup verschoben werden können (hier nicht diskutiert).

Ich habe diesen Computer (OFFLINE) seit vielen Jahren nicht mehr berührt und habe Angst, ihn mit dem Internet zu verbinden.

Ich gehe davon aus, dass ich Zugriff auf das neueste UTXO-Set haben und dann Air-Gap-Transaktionen erstellen muss. Aber wie genau kann dies geschehen?

Ist es möglich, einen Bitcoin Core auf einem anderen Online-Computer (ONLINE) einzurichten und die Adressen mit „importaddress“ zu importieren?
Ist es (und wie) möglich, auf diesem ONLINE-Rechner eine unsignierte Transaktion mit allen UTXOs einer der importierten (watch-only) Adressen zu erstellen?
Und dann diese unsignierte Transaktion mit der alten wallet.dat-Datei auf den alten Offline-Computer (OFFLINE) verschieben und die Transaktion signieren?

Ist dies möglich oder gibt es eine andere Möglichkeit, dies mit Luftspalt zu tun?

Hat jemand alle notwendigen Schritte dokumentiert?

Vielen Dank für Ihre Hilfe!

- Ein verängstigter Hodler

Sie können eine Rohtransaktion erstellen, signieren und den Hex-Wert offline abrufen bitcoin.stackexchange.com/questions/69842/… Als Nächstes können Sie sie über einen anderen Knoten auf einem anderen Computer senden, der online ist.
Danke schön. Aber das manuelle Erstellen einer Transaktion mit vielen Eingaben erscheint mir zu fehleranfällig. Ist das über die GUI möglich?
Vielleicht können Sie eine Watch-Only-Wallet i.imgur.com/IFrWWGc.png auf einem anderen Computer erstellen, um eine unsignierte Transaktion zu erstellen, die die UTXOs ausgibt. Signieren Sie diese TX auf einem Computer, der über eine Offline-Brieftasche mit privaten Schlüsseln verfügt, und übertragen Sie sie später von einem anderen Computer. Die letzten beiden Dinge benötigen möglicherweise eine Konsole.
Ja, das ist meine Idee. Aber ist das mit Bitcoin Core wirklich möglich? Sind Ihnen Dokumentationen/Videos bekannt?
Ja es ist möglich. Nein, aber Sie können versuchen, hier eine Frage zu stellen, wenn Sie bei einem Schritt einen Fehler erhalten oder nicht abschließen können.
@Prayank Ich habe es versucht und stecke hier fest: Ich habe importaddressauf dem ONLINE-Computer getaddressinfoangezeigt, dass die Adresse iswatchonly, not ismineund not ist solvable. Was muss ich jetzt tun, um mit der GUI einen unsignierten PSBT-Tx zu erstellen?
Ich habe eine Frage zu diesem Thema gestellt: bitcoin.stackexchange.com/questions/99046/…
Indem Sie eine Brieftasche mit deaktivierten privaten Schlüsseln einrichten und die p2pkhAdresse importieren, importmultikönnen Sie jetzt auf klicken, Create Unsignedaber ich stecke jetzt wie Sie fest Der Betrag übersteigt Ihr Guthaben. Haben Sie es geschafft, es zum Laufen zu bringen? Ich denke, das Problem ist irgendwie das fehlende Ausgabeskript. Wie kann ich es importieren?
@Prayank Großartig. Aber wie erstellt man einen Deskriptor, wenn man eine p2pkhAdresse verwendet?
Sie können getdescriptorinfo verwenden und den öffentlichen Schlüssel der Adresse i.stack.imgur.com/wlKVi.png angeben
@Prayank Danke, getaddressinfogibt aber nicht das pubkeyerforderliche by zurück getdescriptorinfo. Hast du es geschafft, es mit einer p2pkhAdresse zu testen?
Ja, es funktioniert für mich und die JSON-Ausgabe hat sogar ein Desc-Feld mit einer Zeichenfolge außer Pubkey

Antworten (3)

Update 1. August 2021 : Diese Antwort deckt Bitcoin Core <= 0.20.1 ab. Für Bitcoin Core >= 0.21.0 mit der GUI-Integration für PSBTs überprüfen Sie die zweite Antwort .

Ja, es ist möglich, Deskriptoren und PSBTs zu verwenden.

p2pkhWie man UTXOs Air-Gap mit der GUI und den PSBTs von Bitcoin Core ausgibt/ fegt .

Hier sind die erforderlichen Schritte, die meisten davon müssen in die Konsole von Bitcoin Core eingegeben werden.

OFFLINE

  • Exportieren Sie den Deskriptor der p2pkhAdresse:

    getaddressinfo ADRESSE

  • Kopieren Sie die "desc": "pkh([....",Ausgabe auf den ONLINE-Computer

ONLINE

  • optional: Erstellen Sie eine neue Brieftasche in Bitcoin Core
  • importiere den Deskriptor von oben in Bitcoin Core:
    importmulti '[{ "desc": "pkh([....", "timestamp":0, "label":"import", "watchonly":true }]'
  • Optional: Überprüfen Sie, ob Folgendes jetzt gilt "solvable":
    getaddressinfo ADRESSE
  • Erstellen Sie nun das unsignierte PSBT mit der GUI von Bitcoin Core
  • Kopieren Sie die unsignierte PSBT (YOUR-PSBT) auf den OFFLINE-Computer

OFFLINE

  • Entsperren Sie bei Bedarf Ihre Brieftasche
    Wallet-Passphrase „YOUR_WALLET-PASSWORT“ 600
  • optional: Überprüfen Sie die PSBT
    decodepsbt YOUR-PSBT
    Und
    analyzepsbt YOUR-PSBT
  • Unterschreiben Sie Ihre PSBT:
    walletprocesspsbt YOUR-PSBT
  • Stellen Sie Ihre PSBT fertig:
    finalizepsbt OUTPUT-FROM-WALLETPROCESSPSBT-ABOVE
  • Kopieren Sie die hexAusgabe von oben auf Ihren ONLINE-Computer

ONLINE

  • Senden Sie die Rohtransaktion mit
    senddrawtransaction HEX-FROM-OBEN
  • Optional: Kopieren Sie stattdessen die Rohtransaktion in einen Block-Explorer wie blockstream.info

Erledigt!

Feedback ist willkommen!

Hallo Hodddl, verstehe ich richtig, dass der Unterschied zwischen Ihren beiden Antworten darin besteht, dass die eine CLI-basiert und die andere GUI-basiert ist? Ich denke, es könnte sinnvoll sein, beide in einer Antwort zu kombinieren, in der beide Varianten für den Offline-Schritt angegeben werden, da die beiden Antworten für einen Skimming-Leser von vornherein nicht offensichtlich unterschiedlich aussehen.
Hallo Murch, danke für dein Feedback. Die erste Antwort deckt Bitcoin Core <= 0.20.1 ab und erforderte viele CLI-Befehle. Die zweite Antwort ist ein Update, das Bitcoin Core >= 0.21.0 abdeckt und die GUI-Integration für PSBTs verwendet.
Vielleicht könnten Sie oben in dieser Antwort einen kleinen Hinweis hinzufügen. In diesem Fall sollten die Leute stattdessen die andere Antwort lesen. :)

Ja, es ist noch einfacher, Bitcoin Core 0.21.0, Deskriptoren und PSBTs zu verwenden.

Wie man p2pkhUTXOs Air-Gap mit der 0.21.0 GUI und den PSBTs von Bitcoin Core ausgibt/sweep.

Hier sind die erforderlichen Schritte, viele davon müssen in Bitcoin Core's eingegeben werden console.

OFFLINE (am besten einen Laptop verwenden, der von einem Ubuntu-USB-Stick gebootet wurde und nicht mit dem Internet verbunden ist)

  • Exportieren Sie den Deskriptor der p2pkhAdresse:

    getaddressinfo ADRESSE

  • Kopieren Sie die "desc": "pkh([....",Ausgabe auf den ONLINE-Computer

ONLINE

  • optional: Erstellen Sie eine neue Brieftasche in Bitcoin Core
  • importiere den Deskriptor von oben in Bitcoin Core:
    importmulti '[{ "desc": "pkh([....", "timestamp":0, "label":"import", "watchonly":true }]'
  • Optional: Überprüfen Sie, ob Folgendes jetzt gilt "solvable":
    getaddressinfo ADRESSE
  • Erstellen Sie nun das unsignierte PSBT mit der GUI von Bitcoin Core: „Send“, „Create Unsigned“, „Create Unsigned“ und „Save“
  • Kopieren Sie die Datei mit dem unsignierten PSBT auf den OFFLINE-Computer

OFFLINE

  • Entsperren Sie bei Bedarf Ihre Brieftasche
    Wallet-Passphrase „YOUR_WALLET-PASSWORT“ 600
  • Importieren Sie nun die Datei von oben und signieren Sie die unsignierte PSBT mit der GUI von Bitcoin Core: „Datei->PSBT aus Datei laden“
  • Überprüfen Sie die Transaktion noch einmal und "Sign Tx"
  • Wählen Sie dann "In die Zwischenablage kopieren"
  • Kopieren Sie diese hexAusgabe (jetzt in Ihrer Zwischenablage) von oben auf Ihren ONLINE-Computer

ONLINE

  • Senden Sie die Rohtransaktion mit
    senddrawtransaction HEX-FROM-OBEN
  • Optional: Kopieren Sie stattdessen die Rohtransaktion in einen Block-Explorer wie blockstream.info

Erledigt!

Feedback ist willkommen!

Mit Bitcoin Core 22.0 ist es noch einfacher, da es den Befehl „listdescriptors“ hinzufügt.

OFFLINE:

  • Erstellen Sie eine Brieftasche mit wahren Deskriptoren.
  • Geben Sie in der Konsole ein: listdescriptors.
  • Kopieren Sie die gewünschten Deskriptoren. (Sie werden Deskriptoren mit internal:false und internal:true sehen. Internal false liefert die Informationen, die das Watch-Only-Wallet benötigt, um Empfangsadressen zu generieren, während internal true für die Änderungsadressen steht).

ONLINE:

  • Erstellen Sie nur eine Uhr
  • Deskriptoren importieren mit dem Befehl "importdescriptors"

Danach ist nur noch die Watch-Wallet voll funktionsfähig, sodass Zahlungen empfangen und nicht signierte Transaktionen erstellt werden können.

Für Zahlungen:

ONLINE: Erstellen Sie unsigniert, speichern Sie die PSBT-Datei

OFFLINE: Datei→PSBT aus Datei laden und unterschreiben

ONLINE: Datei→PSBT aus Datei laden und signierte TX übertragen

Sind Sie sicher, dass dies mit einem alten (OFFLINE) P2PKH-only-Adress-Wallet funktioniert?