Miniscript y descriptores de salida

Escribir políticas de gasto complejas con seguridad.

El Script en bruto es potente pero fácil de equivocar. Un pequeño error puede dejar monedas sin poder gastarse, o gastables por la persona equivocada. Dos herramientas hacen más seguras las billeteras avanzadas.

Descriptores de salida

Un descriptor es una cadena que describe exactamente qué scripts posee una billetera:

  • wpkh(xpub…/0/*): SegWit nativo de una sola clave.
  • wsh(multi(2,xpubA…,xpubB…,xpubC…)): multifirma 2-de-3 P2WSH.
  • tr(KEY,{pk(A),pk(B)}): Taproot con una ruta de clave y dos hojas de script.

Orígenes de clave como [fingerprint/84h/0h/0h] dicen a los firmantes qué clave usar, y un checksum tras # captura erratas. Los descriptores están estandarizados en los BIP 380–386. Las billeteras de Bitcoin Core son basadas en descriptores por defecto desde la versión 23.

Miniscript

Miniscript, diseñado por Pieter Wuille, Andrew Poelstra y Sanket Kanjalkar y especificado en BIP379, es un subconjunto estructurado de Script. Escribes una política:

or(pk(A), and(pk(B), older(12960)))

«A puede gastar en cualquier momento, o B puede gastar tras 12.960 bloques (unos 90 días).» Un compilador lo convierte en miniscript, que mapea directamente a Script. El resultado se parece a:

or_d(pk(A),and_v(v:pk(B),older(12960)))

Por qué ayuda

  • Analizable: el software puede calcular cada forma de gastar, el tamaño máximo del witness (así se estiman comisiones) y qué claves se necesitan.
  • Composable: piezas como pk(), multi(), thresh(), older(), after() y sha256() encajan de forma tipada.
  • Amigable con firmantes: cualquier billetera compatible puede firmar cualquier miniscript sin código a medida, junto con PSBTs.

Uso real

Miniscript permite billeteras de herencia y multifirma decreciente, como «2-de-3 ahora, 1-de-3 tras un año», que antes exigían scripts a medida. Bitcoin Core admite miniscript en descriptores para P2WSH y Tapscript.

Límites

Miniscript cubre la mayor parte del Script útil, pero no todo script posible. Tampoco puede impedir una mala política, como dar la clave de recuperación a la persona equivocada.