Saltar al contenido
buybitcoinsmart

Glosario / Protocolo y actualizaciones

MAST

También se conoce como Árbol de sintaxis abstracta merkelizado.

¿Qué es MAST?
MAST oculta tras un árbol de Merkle cada condición de gasto que no se usa, de modo que revelar una rama al gastar mantiene el resto en privado y fuera de la blockchain.

Se especifica en el BIP-341.

La idea es anterior a su despliegue. Dos propuestas, BIP-114 y BIP-116, la describieron en 2016 y 2017 y ninguna llegó a activarse; Taproot la incorporó en 2021 como el taptree (árbol de scripts de Taproot), cuyos gastos por ruta de script revelan una hoja más una prueba de 32 bytes por nivel. En una billetera con varias rutas de recuperación, la cadena solo llega a conocer la que usted tomó realmente.

Cómo funciona

Un árbol de scripts se reduce a un solo hash, y ese hash es lo que la dirección fija.

Empiece por las condiciones que desea; por ejemplo, cuatro: su clave de uso diario, un quórum familiar de dos de tres, la clave de un abogado tras un año de inactividad y una clave de emergencia guardada en otro lugar. Cada condición se escribe como un pequeño script propio, y el hash de cada una se convierte en una hoja. Las hojas se emparejan y se calcula su hash, esos resultados se emparejan y se vuelve a calcular su hash, y el proceso termina en una sola raíz de 32 bytes.

Al gastar se revela la hoja que usted usó, su script y los hash hermanos a lo largo de la ruta que va desde esa hoja hasta la raíz. Dos niveles de árbol suponen dos hash hermanos, 64 bytes, y cualquiera puede recalcular la raíz y confirmar que esta fija el script. Las otras tres condiciones nunca aparecen. Nadie se entera de que existe la clave de un abogado, de que el quórum familiar era de dos de tres ni de que una clave guardada en otro lugar formó parte alguna vez de la configuración.

El costo crece con el logaritmo del número de condiciones, y eso es lo que hace que valga la pena usar la estructura. Un árbol de 8 scripts añade 3 hash al testigo, uno de 128 scripts añade 7, y BIP-341 permite una profundidad de 128 niveles, así que el bloque de control que acompaña a un gasto por ruta de script llega como máximo a 4.129 bytes.

Los nombres son un caos y siempre lo han sido. MAST se desarrolla como merkelized alternative script tree (árbol de scripts alternativos merkelizado) y como merkelized abstract syntax tree (árbol de sintaxis abstracta merkelizado) según quién escriba; la segunda forma procede de BIP-114, donde el árbol contenía fragmentos de un solo script en lugar de un conjunto de alternativas. En la práctica, ambas designan la misma construcción.

Dónde aparece

Toda dirección Taproot que tenga más de una forma de gastarse usa MAST, tanto si la billetera emplea esa palabra como si no.

Las billeteras de herencia con bloqueo temporal (timelock) son el caso más claro. Liana, por ejemplo, envía los fondos a una dirección cuyo taptree contiene una clave de gasto normal y una rama de recuperación que pasa a poder usarse tras una espera fija, y un gasto normal nunca llega a publicar la rama de recuperación. Lightning usa la misma forma en sus salidas de canal más recientes y mantiene oculta la ruta de penalización durante un cierre cooperativo.

Hay un aspecto relacionado con las comisiones que conviene conocer antes de construir uno. El equilibrio importa: una hoja que usted espera usar a menudo debería quedar cerca de la parte superior del árbol, porque cada nivel adicional añade 32 bytes al testigo de cada gasto que pasa por ella. Las billeteras que le permiten definir la estructura del árbol suelen hacerlo por usted, pero un software coordinador que vuelca todas las condiciones en un árbol plano y equilibrado hará que la ruta habitual pague por las poco frecuentes.

MAST frente a Taproot

MAST es el árbol; Taproot es el árbol más una vía de escape. Un diseño MAST puro obligaría a que cada gasto revelara algún script, así que la cadena siempre sabría que existió un contrato aunque no supiera nada de las ramas no usadas.

Taproot añade una clave en la raíz. La dirección fija una clave pública interna a la que se aplica un ajuste (tweak) con la raíz de Merkle, y si todos los implicados están de acuerdo, firman con la clave ajustada y no publican nada más que una sola firma. Ese gasto no se distingue de un pago de una sola persona. El árbol sigue ahí, sigue siendo exigible y simplemente nunca se muestra. MAST aporta la privacidad entre ramas, y Taproot aporta la privacidad entre un contrato y un pago corriente.

No confundir con

Preguntas frecuentes

¿Un gasto con MAST cuesta más que uno normal?

Sí, un gasto por ruta de script paga el script revelado más 32 bytes por cada nivel del árbol. El ahorro se mide frente a la alternativa, que es publicar todas las condiciones de gasto que usted haya escrito alguna vez.

¿Es MAST una actualización aparte que tengo que activar?

No. MAST llegó dentro de Taproot como el taptree, así que cualquier billetera que cree una dirección bc1p con más de una condición de gasto ya lo está usando.

Para seguir leyendo

Términos relacionados

Más en la sección Protocolo y actualizaciones

Leer esta página en inglés