Header Ads Widget

Ticker

6/recent/ticker-posts

El árbol de sintaxis abstracta merkelizada de Bitcoin (MAST) ¡Explicado!

MAST

Los bitcoins están esencialmente bloqueados en un script (un par de líneas de códigos), y cuando ese script se vuelve verdadero o está satisfecho, los bitcoins se desbloquean.

También puede ver este script como un contrato inteligente que, de nuevo, es simplemente un par de líneas de código que se ejecuta cuando se alimenta con entradas relevantes.


Algo similar sucede cuando alguien intenta gastar bitcoins de una dirección P2SH, donde deben producir todo el script (condiciones), el hash del script y los requisitos para desbloquearlo en la cadena de bloques.

Pero, ¿y si el script (condiciones) es demasiado?

Esto puede hacer que la transacción sea demasiado pesada si hay demasiadas condiciones presentes durante la transacción a través de una dirección P2SH. Pero el MAST de Bitcoin (árboles de sintaxis abstracta de Merklized) proporciona una solución.

¿Qué es un MAST en Bitcoin?

MAST (Merklized Abstract Syntax Trees) es una combinación de dos conceptos denominados Merkle Trees y Abstract Syntax Trees. No se sienta abrumado por estos términos técnicos, ya que lo voy a explicar lo más simple posible.

La técnica MAST nos permite crear un árbol hash de scripts (o condiciones) individuales que están presentes en un conjunto de condiciones complicadas.

Y todas estas condiciones se pueden condensar en un solo hash llamado la raíz de Merkle. Pero uno diría, ¿en qué se diferencia esta raíz Merkle del hash de pago a script?

Bueno, es diferente, y entenderás esto leyendo, ¿cómo se forma una raíz Merkle?

Para generar una raíz Merkle, se forma un árbol Merkle, y para eso, cada condición (o script) se revisa individualmente, y luego los hashes resultantes se vuelven a emparejar con los hashes cercanos para hacer un conjunto de hashes nuevamente. Este proceso continúa hasta que solo queda un hash, y a esto se le llama la raíz Merkle.

Por ejemplo, eche un vistazo a este conjunto de 4 condiciones que primero es un hash individual, y luego se forman dos pares a partir de estos cuatro hashes para ser hash nuevamente. Esto genera dos hashes más respectivamente a partir de esos dos pares que nuevamente se combinan para crear el hash final. Esto se llama la raíz de Merkle.

Merkle

En MAST podemos convertir esta raíz Merkle en una dirección de Bitcoin válida y pagable. Esta dirección de Bitcoin Merklized que obtenemos a través de la técnica MAST tiene varios beneficios, y uno de estos beneficios es la capacidad de verificar un script (o condición) individual que está encapsulado en algún lugar del árbol de Merkle sin conocer todos los scripts (o condiciones)

Este truco se llama Prueba de Merkle y aquí hay un ejemplo simple para entenderlo:

Digamos que hay dos conjuntos de datos (o condiciones) que están Merklized en una raíz Merkle. Tenemos un conjunto como "11" que le permite a Bob gastar los bitcoins y el otro es "12" que le permite a Alice gastar los bitcoins. Y ahora estas dos condiciones hacen una raíz Merkle que es "121".

Ahora cualquier persona con la raíz "121" y la condición presentada "11" puede verificar que la condición "11" está en algún lugar presente en el árbol Merkle, incluso cuando no tienen la condición de desactivación de conocimiento "12".

De manera similar, cualquier persona con la raíz "121" y la condición presentada "12" puede verificar que la condición "12" está en algún lugar presente en el árbol de Merkle, incluso cuando no tienen la condición de desactivación de conocimiento "11".

Esto permite que una transacción de Bitcoin tenga varias condiciones y, sin embargo, es fácil de verificar.

Además, mientras usa las direcciones habilitadas para MAST, no necesita incluir el script completo (o las condiciones) en el UTXO para gastarlo, ya que incluso una parte del script completo (o una condición individual) puede verificarse contra el hash del script completo, es decir, la Raíz de Merkle.

De esta manera, en lugar de bloquear bitcoins en un solo script complicado, MAST puede usarse para bloquear bitcoins en pequeños scripts individuales (o condiciones) que son mutuamente excluyentes.

Por ejemplo, estas condiciones mutuamente excluyentes podrían ser:
  • Las firmas de Alicia son necesarias para desbloquear los bitcoins.
  • se requiere la firma de Bob cuando se pasa una cierta cantidad de tiempo para desbloquear las monedas
  • O, aparte de una firma válida de Harry, debe proporcionar una contraseña para desbloquear las monedas.

Entonces, ¡cualquiera que sea la condición que se cumpla, los bitcoins se podrán gastar para esa persona!

Sé que algunos de ustedes podrían estar pensando, ¿cómo funciona esto en la cadena de bloques?

Gasto de la transacción

Los bitcoins están bloqueados en la raíz de Merkle, que se deriva como he explicado en la sección anterior al mezclar las condiciones individuales y apilarlas en un árbol de Merkle.

Entonces, para gastar esta salida de Bitcoin de la dirección de Merklized, uno debe producir el script, el hash del script (raíz de Merkle) y otros requisitos como las firmas para desbloquear las monedas.

Bueno, pero en MAST, no es necesario incluir todo el conjunto de la secuencia de comandos (o las condiciones) y en su lugar solo se puede producir la secuencia de comandos que se está utilizando realmente.

Ahora, utilizando el truco de la prueba de Merkle, los clientes de Bitcoin pueden ejecutar y producir el hash del script real que se está utilizando y que puede verificarse con la raíz de Merkle.

Ahora, debido a que el hash de la condición que se está utilizando y la raíz de Merkel son suficientes para verificar si la condición era parte del conjunto de condiciones original, ahora tiene una transacción compacta.

Y cuando esto se verifica, la cadena de bloques llega a saber que las monedas estaban bloqueadas solo en este script y la transacción se realiza correctamente.

Esta construcción de ocultar ramas de script inesperadas le permite tener condiciones de canje complicadas donde cada una de las condiciones es una hoja en el árbol Merkle. Cuando está gastando, solo necesita presentar la sucursal más una prueba de que formaba parte del árbol Merkle sin mostrar ninguna otra información o sucursales, y esto es lo que MAST habilita.

Beneficios de Bitcoin MAST

Bitcoin Mast mejora la flexibilidad de los contratos inteligentes de Bitcoin, aumenta la privacidad y ayuda mucho en la escalabilidad.

Dado que muchos tipos complejos de condiciones pueden expresarse utilizando MAST para bloquear bitcoins, uno puede tener contratos multisig fácilmente como 1 de 1000 o 20 de 200 tipos fácilmente.

Además, dado que MAST requiere que incluya solo esa condición en la transacción que está utilizando, en lugar de todo el conjunto tiene beneficios de datos. De esta manera, su transacción se vuelve mucho más pequeña y, al mismo tiempo, le brinda la capacidad de participar en complejas condiciones de desbloqueo. Esto también reduce la tarifa de transacción que de otro modo pagaría al usar P2SH.

Finalmente, con MAST usted obtiene la privacidad adicional porque uno solo puede adivinar mirando una transacción MAST que existen condiciones involucradas, ¡pero nunca se llegaría a saber cuáles eran esas condiciones o son!

Pero el hecho de que uno pueda descifrar observando una transacción que alguien está tratando de lograr privacidad mediante el uso de MAST es un vacío de privacidad, y los desarrolladores de Bitcoin están tratando de solucionar este problema con otra técnica conocida como Bitcoin Taproot.


Publicar un comentario

0 Comentarios