61 / 691DESC

Output Descriptor

Descriptor de salida

Un Output Descriptor es una descripción legible por máquina de un conjunto de scripts de salida de Bitcoin y de las claves necesarias para derivarlos. Permite reproducir con precisión la política de direcciones, no solo una clave o dirección.

Un descriptor no es una dirección, una seed ni un archivo de cartera. Una expresión como wpkh(...) fija el tipo de scriptPubKey, el origen de claves, la derivación y un rango opcional; el índice usado y la fecha inicial del escaneo se respaldan aparte.

Un Output Descriptor describe un conjunto de scriptPubKeys y los datos para derivarlos o gastarlos. wpkh(KEY) representa salidas SegWit nativas de esa clave. No es una dirección Bitcoin, una seed ni una copia completa de la cartera.

Las funciones pk(), pkh(), wpkh(), sh(), wsh(), addr() y raw() fijan el script exacto. Un anidamiento como sh(wpkh(KEY)) cambia scriptPubKey y dirección; el mismo xpub bajo otro envoltorio define otra cartera.

Una clave puede incluir el origen [fingerprint/path], seguido por un xpub y derivación adicional. Key origin ayuda al signer a elegir la ruta, pero el fingerprint no autentica una identidad ni un dispositivo; hay que verificar el export por un canal fiable.

El wildcard /* crea un ranged descriptor y exige un range al derivar. La notación multipath <0;1> puede unir ramas receive y change. El descriptor no conserva por sí solo next index, direcciones usadas, gap limit ni scan birthday.

Los ocho caracteres tras # forman el descriptor checksum de BIP 380. Detectan muchos errores de escritura y orden, pero no son firma, cifrado ni prueba de origen; tras modificar la expresión se puede calcular otro checksum válido.

Un descriptor público con xpub permite observar y derivar sin firmar. Si contiene xprv, WIF u otro material privado, puede permitir gastar y debe protegerse como una seed. getdescriptorinfo entrega forma pública canónica y hasprivatekeys.

multi(k,...) conserva el orden escrito; cambiarlo altera script y direcciones. sortedmulti(k,...) ordena las claves lexicográficamente en cada derivación. La copia debe guardar threshold, todos los cosigners, key origins y envoltorio; una seed no basta.

tr(KEY) describe el key path de Taproot y tr(KEY,TREE) añade el árbol de script path. La forma del árbol cambia Merkle root y dirección. Miniscript o multi_a expresan condiciones, pero no sustituyen el descriptor completo.

importdescriptors recibe el descriptor con checksum y metadatos timestamp, active, internal, range y next_index. timestamp controla el comienzo del escaneo; un birthday tardío oculta historial hasta un rescan correcto. No todo ese estado está en la expresión.

Antes de recibir fondos, ejecute getdescriptorinfo y revise checksum, isrange, issolvable y hasprivatekeys. Con deriveaddresses derive varias direcciones externas y change y compárelas con la cartera original o la pantalla de hardware wallet. Pruebe una restauración completa. Fuentes: BIP 380 — Generic Output Script Descriptors; BIP 383 — multi() and sortedmulti() Descriptors; BIP 386 — tr() Output Script Descriptors; Bitcoin Core — Output Descriptors; Bitcoin Core RPC — importdescriptors.

Para obtener la imagen más completa, lee esta entrada junto con Cartera, Watch-only Wallet, Multisig, PSBT, Miniscript, Bitcoin. También enlazan con esta entrada Watch-only Wallet, Extended Public Key (xpub), PSBT, Miniscript.

DOC · 001BIP 380 — Generic Output Script DescriptorsEspecificaciónDOC · 002BIP 383 — multi() and sortedmulti() DescriptorsEspecificaciónDOC · 003BIP 386 — tr() Output Script DescriptorsEspecificaciónDOC · 004Bitcoin Core — Output DescriptorsDocumentaciónDOC · 005Bitcoin Core RPC — importdescriptorsDocumentación
Revisado el 1 de agosto de 2026Fuentes primero · No es asesoramiento financiero