Saltar al contenido
buybitcoinsmart

Glosario / Direcciones y claves

Descriptor de salida

También se conoce como Descriptor o Billetera de descriptores.

¿Qué es un descriptor de salida?
Un descriptor de salida es una sola línea de texto que indica qué tipo de script, qué claves y qué rama de derivación debe usar una billetera, con una suma de comprobación al final.

Se especifica en el BIP-380.

Los descriptores existen porque una clave extendida por sí sola es ambigua. La misma xpub puede producir direcciones heredadas (legacy), SegWit anidadas, SegWit nativas o Taproot, y solo la función que la contiene resuelve la duda. Bitcoin Core crea billeteras de descriptores de forma predeterminada desde la versión 23.0, publicada en abril de 2022, y un respaldo multisig sin su descriptor a menudo es irrecuperable.

Cómo funciona

Un descriptor es una función aplicada a una expresión de clave, seguida del signo # y de ocho caracteres de suma de comprobación. La función designa el script: pkh para el tipo heredado, sh(wpkh(...)) para SegWit anidado, wpkh para SegWit nativo, tr para Taproot y wsh(sortedmulti(2,...)) para una bóveda 2 de 3.

La expresión de clave lleva el resto. Los corchetes contienen el origen, es decir, la huella digital de la clave maestra y la ruta usada para llegar a esa clave, como en [1a2b3c4d/84h/0h/0h]. Después va la clave extendida y luego un sufijo como /0/* en el que el asterisco es un comodín que representa, uno tras otro, cada índice de dirección. Un descriptor con comodín se denomina descriptor con rango, y pedirle las direcciones 0 a 999 es una sola llamada RPC en lugar de mil importaciones.

La recepción y el cambio son dos descriptores, no uno, y por eso las billeteras los importan en parejas que terminan en /0/* y /1/. BIP-389 puso orden en eso con la notación multiruta, que escribe la pareja como /<0;1>/ en una sola cadena de caracteres.

La suma de comprobación es pequeña e imprescindible. BIP-380 define un código de ocho caracteres sobre el texto del descriptor, diseñado para detectar el tipo de daño que realmente sufre una cadena de caracteres larga: un carácter cambiado, un texto truncado al pegarlo, un salto de línea insertado por un cliente de correo electrónico. Bitcoin Core rechaza cualquier descriptor cuya suma de comprobación no coincida, y la llamada RPC getdescriptorinfo calcula la correcta para una cadena de caracteres que usted mismo haya tecleado.

Dónde aparece

Los descriptores son el formato de respaldo de todo lo que sea más complejo que una sola semilla. Sparrow, Nunchuk y Specter exportan uno por cada billetera que crean, y un Coldcard escribe el descriptor en una microSD al configurar un multisig, de modo que esa configuración pueda reconstruirse sin el software coordinador original.

Fue en Bitcoin Core donde se convirtieron en estándar. La versión 0.17.0, publicada en octubre de 2018, los introdujo para el escaneo y la generación de direcciones; las llamadas RPC importdescriptors y listdescriptors los convirtieron en el lenguaje nativo de la billetera; y la billetera de descriptores es hoy el único tipo que crea el software. Restaurar una billetera de Core a partir de un descriptor más un nuevo escaneo es una ruta admitida, que además sobrevive a una reinstalación del software desde cero.

Con una billetera sencilla de una sola firma, normalmente usted puede arreglárselas sin ver nunca uno, porque su frase semilla y la ruta estándar bastan. Con multisig, el descriptor es la mitad que falta del respaldo: tres frases semilla sin registro del tipo de script, del orden de las claves ni del origen de cada cofirmante pueden dejarlo sin forma de reconstruir las direcciones en las que están sus monedas.

Descriptor de salida frente a clave extendida

Una clave extendida es un ingrediente y un descriptor es la receta. La xpub le dice al software qué claves existen; el descriptor le dice qué construir con ellas y dónde empezar a contar. Por eso importar una xpub en dos aplicaciones distintas puede producir dos listas de direcciones distintas, mientras que importar el mismo descriptor no puede. Ambos exponen la misma privacidad: cualquiera que tenga uno u otro puede enumerar su rama, así que un descriptor merece el mismo cuidado que la clave que contiene.

No confundir con

Preguntas frecuentes

¿Necesito respaldar un descriptor además de mi frase semilla?

Para una billetera corriente de una sola firma en una ruta estándar, basta con la frase semilla. Con multisig, o con cualquier configuración personalizada, respalde también el descriptor, porque las frases por sí solas no registran el tipo de script, las claves de los cofirmantes ni el orden de las claves.

¿Es seguro compartir un descriptor?

Solo con alguien a quien usted confiaría todo su historial de transacciones. Un descriptor que contiene una clave pública extendida permite a quien lo tenga derivar todas las direcciones de esa rama y observarla para siempre, aunque nunca le permite gastar.

Términos relacionados

Más en la sección Direcciones y claves

Leer esta página en inglés