Puedo crear billetera electrum multifirma con 2 claves xpub.
¿Cómo puedo crear un núcleo de bitcoin para hacer eso?
Uso estándar; Agregar una dirección multisig de 2 direcciones
bitcoin-cli addmultisigaddress 2 "[\"16sSauSf5pF2UkUwvKGq4qjNRzBZYqgEL5\",\"171sgjn4YtPu27adkKGrdDwzRTxnRkBfKV\"]"
¿Hay manera de hacer como;
bitcoin-cli addmultisigaddress 2 "[\"tpubDAenfwNu5GyCJWv8oqRAckdKMSUoZjgVF5p8WvQwHQeXjDhAHmGrPa4a4y2Fn7HF2nfCLefJanHV3ny1UY25MRVogizB2zRUdAo7Tr9XAjm\",\"tprv8erNzbjXdtYpKbKF4HeZpBCQj2W64MS2SAJCcWxgqLueSZ9KLTPZGoDTu8NugecLLqeS2RYan2f6qcexUTjp3m2HGxmpAiP48BaUz7XHxzQ\"]"
Esto será mayormente posible en el próximo lanzamiento de Bitcoin Core 0.18.
Primero, debe comprender que la secuencia de tales direcciones multisig emparejadas (con claves públicas generadas a partir de 2 xpubs al mismo tiempo) se puede describir en el nuevo lenguaje descriptor.
La sintaxis es sh(multi(2,XPUB/*,XPUB/*))
. Indica sh
la incrustación de P2SH, multi
se refiere a multisig, 2
significa que se requieren 2 firmas y los dos argumentos XPUB son de donde se extraen las claves públicas.
Como los descriptores están destinados a ser seguros para la comunicación humana, en algunos casos necesitan una suma de verificación. Esta suma de verificación se puede calcular usando el getdescriptorinfo
comando RPC, que agregará un #CHECKSUM
sufijo.
Una vez que tenga el descriptor, puede hacer varias cosas con él. Uno es determinar las direcciones correspondientes usando deriveaddresses
.
bitcoin-cli deriveaddresses "DESC" [0,1000]
Le dará las primeras 1001 direcciones (usando claves con índices del 0 al 1000) para su descriptor.
También puede importarlos a una billetera, todos a la vez usando el importmulti
RPC flexible, que en 0.18 se amplía para admitir descriptores.
bitcoin-cli importmulti [{"desc" : "DESC", "range" : [0, 1000], "watchonly" : true, "timestamp" : "now"}]
Importará las primeras 1000 direcciones, junto con toda la información necesaria para reconocer los pagos a ellas y firmar para gastarlas (excluyendo las claves privadas, por supuesto).
watchonly
indica que sabe que faltan claves privadas, pero desea importarlas como se observa de todos modos.timestamp
indica la primera vez que se pueden haber utilizado estas teclas. "now"
significa que sabe que las claves aún no se han utilizado (o no le importa su historial); alternativamente, puede dar una marca de tiempo como el número de segundos desde la época de UNIX para especificar una hora de nacimiento.Tenga en cuenta que esto no buscará automáticamente más de las primeras 1000 direcciones a medida que se consuman; necesitará un nuevo comando de importación para eso (por ahora).
fontaine