¿Cómo puedo gastar desde una dirección P2TR en Signet con la billetera Bitcoin Core en 22.0?

Aparentemente (crédito 0xB10C ) solo hay 20 key-path y 5 script-path gastados de salidas P2TR en la cadena de bloques de Signet hoy (7 de julio de 2021). ¿Cómo puedo aumentar este número hoy con, por ejemplo, la billetera Bitcoin Core en la próxima versión 22.0? Si hay varias formas (de diferentes niveles de complejidad), descríbalas todas.

Respuestas (1)

Esta es una respuesta preliminar (incompleta).

Para configurar Signet, es decir, sincronizar la cadena Signet y reclamar algo de Signet Bitcoin, siga estas instrucciones . (Puede ejecutar un nodo de Signet en paralelo con su nodo de red principal, es decir, el mismo hardware)

Ahora tiene fondos en una dirección de Signet que no es P2TR (es decir, SegWit v0, bech32). Ahora necesita generar una dirección P2TR para enviar fondos para que tenga fondos en una dirección P2TR (para que pueda gastar de ella).

No puede generar una dirección P2TR (SegWit v1, bech32m) en la billetera usando getnewaddress:

./bitcoin-cli -signet -rpcwallet=insert_wallet_name getnewaddress "" "bech32m"

devoluciones

error code: -12
error message:
Error: No bech32m addresses available.

Por lo tanto, debe construir un descriptor Taproot manualmente y luego importarlo a su billetera de descriptores.

Un ejemplo de descriptor Taproot es:

tr(c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5,{pk(fff97bd5755eeea420453a14355235d382f6472f8568a18b2f057a1460297556),pk(e493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13)}) 

que describe una salida P2TR con la c6...clave pública solo x como clave interna y dos rutas de script.

Si solo desea realizar un gasto de ruta clave, solo necesita el equivalente a:

tr(c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5)

Puede importar un tr(xprv/insert_xpriv_here)descriptor para que su billetera de descriptor tenga la clave privada para gastar de él.

Para hacer: Enviar signet Bitcoin a esta billetera de descriptor, gastar de nuevo a una dirección SegWit v0 (sendtoaddress) ¿Incluir generación de xprv?

por confirmar

Esto también se discutió en la lista de correo de bitcoin-dev.

¿Puede agregar un ejemplo de cómo importar el descriptor? Lo intento importdescriptors "tr(c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5)"(en la consola de Bitcoin Core 22.0) pero siempre obtengo Error parsing JSON.
@Andreas: Avíseme si "Importar un descriptor de raíz principal (de la forma "tr(KEY)"), como descriptor activo (con active=true), donde KEY puede ser un tprv.../* o cualquier otra clave admitida expresión." de la publicación de la lista de correo de Pieter resuelve su problema. Gracias
El importdescriptorsRPC toma como argumento una lista de objetos, cada uno con un descriptor y algunos otros parámetros. Mire la ayuda de RPC ( help importdescriptors) y los ejemplos allí.