¿Cómo mover/barrer sus bitcoins de Bitcoin Core de forma segura y con espacio de aire a su nuevo y elegante almacenamiento en frío?

He almacenado mis bitcoins en Bitcoin Core en algunas direcciones P2PKH con muchos UTXO. Me gustaría tener un plan, cómo estos bitcoins se pueden mover con espacio de aire a una configuración más actualizada (no discutida aquí).

Hace muchos años que no toco esta computadora (OFFLINE) y tengo miedo de conectarla a internet.

Supongo que necesito tener acceso al último conjunto de UTXO y luego crear transacciones con brechas de aire. Pero, ¿cómo se puede hacer esto exactamente?

¿Es posible configurar un Bitcoin Core en otra computadora en línea (EN LÍNEA) e importar las direcciones usando "dirección de importación"?
¿Es posible (y cómo) crear una transacción sin firmar en esta computadora EN LÍNEA que incluya todos los UTXO de una de las direcciones importadas (solo para ver)?
¿Y luego mover esta transacción sin firmar a la antigua computadora fuera de línea (OFFLINE) con el antiguo archivo wallet.dat y firmar la transacción?

¿Es esto posible o hay otra forma de hacer esto con espacio de aire?

¿Alguien ha documentado todos los pasos necesarios?

¡Gracias por tu ayuda!

-Un hodler asustado

Puede crear una transacción sin procesar, firmarla y obtener el valor hexadecimal fuera de línea bitcoin.stackexchange.com/questions/69842/… A continuación, puede transmitirla utilizando otro nodo en otra máquina que esté en línea.
Gracias. Pero crear manualmente una transacción con muchas entradas me parece demasiado propenso a errores. ¿Es esto posible usando la GUI?
Tal vez pueda crear una billetera de solo reloj i.imgur.com/IFrWWGc.png en otra máquina para crear una transacción sin firmar que gasta los UTXO. Firme este tx en la máquina que tiene una billetera fuera de línea con claves privadas y transmítalo más tarde desde otra máquina. Las dos últimas cosas pueden necesitar consola.
Sí, esa es mi idea. Pero, ¿es esto realmente posible usando Bitcoin Core? ¿Conoces alguna documentación/videos?
Si es posible. No, pero puede intentar hacer una pregunta aquí si recibe un error en cualquier paso o no puede completarlo.
@Prayank Lo intenté y estoy atascado aquí: lo hice importaddressen la computadora EN LÍNEA, getaddressinfomuestra que la dirección es iswatchonly, no isminey no solvable. ¿Qué tengo que hacer ahora para crear un PSBT tx sin firmar usando la GUI?
He hecho una pregunta relacionada con este problema: bitcoin.stackexchange.com/questions/99046/…
Al configurar una billetera con claves privadas deshabilitadas e importar la p2pkhdirección usando, importmultiahora es posible hacer clic, Create Unsignedpero ahora estoy atascado como usted en La cantidad excede su saldo ¿Ha logrado que funcione? Supongo que el problema es de alguna manera la secuencia de comandos de salida que falta. ¿Cómo puedo importarlo?
@Prayank Genial. Pero, ¿cómo se crea un descriptor cuando se usa una p2pkhdirección?
Puede usar getdescriptorinfo y mencionar la clave pública de la dirección i.stack.imgur.com/wlKVi.png
@Prayank Gracias, pero getaddressinfono devuelve lo pubkeyrequerido por getdescriptorinfo. ¿Lograste probarlo usando una p2pkhdirección?
sí, funciona para mí y la salida json incluso tiene un campo de descripción con alguna cadena aparte de pubkey

Respuestas (3)

Actualización 1 de agosto de 2021 : esta respuesta cubre Bitcoin Core <= 0.20.1. Para Bitcoin Core >= 0.21.0 utilizando la integración de GUI para PSBT, verifique la segunda respuesta .

Sí, es posible usar descriptores y PSBT.

Cómo gastar/barrer p2pkhUTXO con espacio de aire utilizando la GUI y los PSBT de Bitcoin Core.

Estos son los pasos necesarios, la mayoría de ellos deben ingresarse en la consola de Bitcoin Core.

DESCONECTADO

  • exportar el descriptor de la p2pkhdirección:

    getaddressinfo DIRECCIÓN

  • copie la "desc": "pkh([....",salida a la computadora EN LÍNEA

EN LÍNEA

  • opcional: cree una nueva billetera en Bitcoin Core
  • importe el descriptor de arriba en Bitcoin Core:
    importmulti '[{ "desc": "pkh([....", "timestamp":0, "label":"import", "watchonly":true }]'
  • opcional: compruebe que lo siguiente es ahora "solvable":
    getaddressinfo DIRECCIÓN
  • ahora cree el PSBT sin firmar usando la GUI de Bitcoin Core
  • copie el PSBT sin firmar (SU-PSBT) a la computadora SIN CONEXIÓN

DESCONECTADO

  • si es necesario, desbloquee su billetera
    frase de contraseña de billetera "SU_CONTRASEÑA DE CARTERA" 600
  • opcional: comprobar el PSBT
    decodepsbt TU-PSBT
    y
    analizarpsbt TU-PSBT
  • firme su PSBT:
    walletprocesspsbt TU-PSBT
  • finalice su PSBT:
    finalizarpsbt SALIDA-DE-WALLETPROCESSPSBT-ARRIBA
  • copie la hexsalida de arriba a su computadora EN LÍNEA

EN LÍNEA

  • enviar la transacción sin procesar usando
    sendrawtransaction HEX-DESDE-ARRIBA
  • opcional: copie la transacción sin procesar en un explorador de bloques como blockstream.info en su lugar

¡Hecho!

¡Los comentarios son bienvenidos!

Hola hodddl, ¿entiendo correctamente que la diferencia entre sus dos respuestas es que una está basada en CLI y la otra en GUI? Creo que podría tener sentido combinarlos en una respuesta en la que se brinden ambas variantes para el paso fuera de línea, ya que las dos respuestas no parecen obviamente diferentes para un lector hojeador en primer lugar.
Hola Murch, gracias por tus comentarios. La primera respuesta cubre Bitcoin Core <= 0.20.1 y requiere muchos comandos CLI. La segunda respuesta es una actualización que cubre Bitcoin Core >= 0.21.0 utilizando la integración de GUI para PSBT.
Tal vez podría agregar un pequeño puntero en la parte superior de esta respuesta, en cuyo caso las personas deberían leer la otra respuesta. :)

Sí, es aún más fácil usar Bitcoin Core 0.21.0, descriptores y PSBT.

Cómo gastar/barrer p2pkhUTXO con espacio de aire usando la interfaz gráfica de usuario 0.21.0 de Bitcoin Core y los PSBT.

Estos son los pasos necesarios, muchos de ellos deben ingresarse en el archivo console.

SIN CONEXIÓN (lo mejor es usar una computadora portátil iniciada desde una memoria USB de Ubuntu y sin conexión a Internet)

  • exportar el descriptor de la p2pkhdirección:

    getaddressinfo DIRECCIÓN

  • copie la "desc": "pkh([....",salida a la computadora EN LÍNEA

EN LÍNEA

  • opcional: cree una nueva billetera en Bitcoin Core
  • importe el descriptor de arriba en Bitcoin Core:
    importmulti '[{ "desc": "pkh([....", "timestamp":0, "label":"import", "watchonly":true }]'
  • opcional: compruebe que lo siguiente es ahora "solvable":
    getaddressinfo DIRECCIÓN
  • ahora cree el PSBT sin firmar usando la GUI de Bitcoin Core: "Enviar", "Crear sin firmar", "Crear sin firmar" y "Guardar"
  • copie el archivo que contiene el PSBT sin firmar a la computadora SIN CONEXIÓN

DESCONECTADO

  • si es necesario, desbloquee su billetera
    frase de contraseña de billetera "SU_CONTRASEÑA DE CARTERA" 600
  • ahora importe el archivo desde arriba y firme el PSBT sin firmar usando la GUI de Bitcoin Core: "Archivo-> Cargar PSBT desde archivo"
  • verifique dos veces la transacción y "Firmar Tx"
  • luego seleccione "Copiar al portapapeles"
  • copie esta hexsalida (ahora en su Portapapeles) desde arriba a su computadora EN LÍNEA

EN LÍNEA

  • enviar la transacción sin procesar usando
    sendrawtransaction HEX-DESDE-ARRIBA
  • opcional: copie la transacción sin procesar en un explorador de bloques como blockstream.info en su lugar

¡Hecho!

¡Los comentarios son bienvenidos!

Con Bitcoin Core 22.0 es aún más fácil ya que agrega el comando "listdescriptors".

DESCONECTADO:

  • Cree una billetera con descriptores verdaderos.
  • En consola escriba: listdescriptors.
  • Copie los descriptores deseados. (Verá descriptores con internal:false e internal:true. Internal false proporcionará la información necesaria para que la billetera solo para vigilancia genere direcciones de recepción, mientras que internal true es para las direcciones de cambio).

EN LÍNEA:

  • Crear solo un reloj
  • Importar descriptores con el comando "importdescriptors"

Después de esto, la billetera del reloj solo es completamente funcional, lo que permite recibir pagos y crear transacciones sin firmar.

Para pagos:

EN LÍNEA: Crear sin firmar, guardar el archivo PSBT

SIN CONEXIÓN: Archivo→Cargar PSBT desde archivo y firmar

EN LÍNEA: Archivo → Cargar psbt desde archivo y transmitir tx firmado

¿Está seguro de que esto funcionará con una billetera de direcciones P2PKH antigua (OFFLINE)?