MAST o Merkelized Abstract Syntax Trees, es un importante desarrollo con el cual se están creando varias herramientas que les permitirán llevar a un nuevo nivel a Bitcoin e incluso otorgarle una mayor potencialidad para crear smart contracts avanzados. 

Los desarrolladores de Bitcoin siempre están en la búsqueda de alternativas y soluciones que mejoren las características de la blockchain. Así, la propuesta de Merkelized Abstract Syntax Trees, también conocida como MAST, tiene la finalidad de mejorar la capacidad de scripting de Bitcoin, así como la seguridad de los mismos. Una función que no solo puede aplicarse a Bitcoin, sino también a cualquier criptomoneda implementen la actualización SegWit

Esta propuesta surge y se crea debido a la constante competencia que existe frente a otras redes blockchains. Especialmente aquellas que ofrecen características muy atractivas como el desarrollo de avanzados smart contracts (contratos inteligentes), incluso para desarrolladores novatos. Por lo que esta mejora al sistema de Bitcoin puede llevar a que ésta red brinde mayores y mejores funcionalidades. Un punto que puede mejorar aún más la posición de Bitcoin dentro del enorme universos de criptomonedas y blockchains 

La implementación de MAST fue dada a conocer por el desarrollador Johnson Lau en 2016, bajo el BIP-0114.. Y ésta será posible si la actualización de SegWit sigue dando sus frutos, preparando el camino para la aplicación de una nueva gama de mejoras técnicas al sistema.

Formulación de la propuesta MAST

Esta propuesta surge de 2 conceptos. En primer lugar el Árbol de Merkle. Esta es una función integrada desde los primeros días de la blockchain de Bitcoin. Su función es permitir la verificación de transacciones dentro de los bloques de la blockchain, y también la verificación de los mismos bloques. Gracias a ella, es posible conocer si éstos forman parte de un conjunto sin necesidad de descargar la información completa. 

Con ello se reduce la necesidad de espacio de almacenamiento para guardar toda la información de la cadena de bloque. Un ejemplo de esta funcionalidad la podemos apreciar con las wallets SPV. Estas wallets ligeras nos permiten verificar si una transacción ha sido añadida a un bloque, sin necesidad de descargar la totalidad de la blockchain. Algo que es posible gracias al uso y aplicación de los árboles de Merkle.

En segundo lugar, se encuentran los Árboles de Sintaxis Abstracta, también denominados AST. Estos tienen su origen en un tipo de algoritmo que divide la información en partes diferentes individuales. Con ello hace más fácil comprender y clasificar dicha información, al tiempo que nos permite el acceso a datos relevantes o de interés de forma rápida. Todo ello sin necesidad de mostrar o exponer públicamente toda la información que contienen. 

Es gracias a la combinación de estas dos herramientas, que podemos construir MAST. Un método que hace posible que se puedan incluir datos e información mucho más compleja a la red blockchain. Al tiempo que se mejora su privacidad y se reduce la necesidad de espacio de almacenamiento.

Objetivos de MAST

Ahora bien ¿Qué buscan los desarrolladores de Bitcoin con MAST? Pues bien en primer lugar buscan crear un mecanismos para fragmentar de forma más especializada la información de la blockchain. Más específicamente buscan fragmentar la programación de los Bitcoin Script. Pero al mismo tiempo, quieren mantener un mecanismo de verificación de esos scripts evitando problemas de seguridad. De allí, que decidieron unir los árboles de Merkle con los árboles de sintaxis abstracta.

Cálculo de un MAST o Merkelized Abstract Syntax Trees

Gracias a ello, los desarrolladores de Bitcoin diseñaron un nuevo mecanismo para segmentar los scripts y verificarlos sin necesidad de descargar toda la información de la blockchain. Además, este método permite que las partes o fragmentos de ese script que no fueron utilizadas pueden ser reemplazadas u ocultadas. Esto último, con la finalidad de reducir el espacio ocupado en la red, a la vez que se mejora la privacidad del sistema al no tener que revelar las partes inutilizadas. 

Para entender el alcance de esto con claridad citemos un ejemplo: 

Cuando un usuario posee una cierta cantidad de bienes, puede establecer condiciones sobre el gasto de éstos. Si María tiene en una dirección Bitcoin la cantidad de 10 BTC, puede establecer un script que le permita a su esposo hacer uso de ese dinero después de transcurrido un tiempo. En caso de que a ella le suceda algo y entonces ya no pueda gastarlos. 

Bien, María puede gastar los BTC en cualquier momento que lo desee, pero si por alguna circunstancia transcurre ese tiempo determinado, digamos que de 6 meses, y los BTC no se han movido de su cuenta, el esposo de María puede hacer uso de esos fondos. Ahora bien, el esposo de María, previniendo cualquier situación, también puede establecer un script donde, igualmente si por alguna razón él no puede hacer uso de los fondos en 4 meses, sus hijos puedan disponer del dinero. Toda esta cadena de script y condiciones para gastar los fondos demandan bastante espacio en la red, además de que permanecen públicos, indiferentemente de que se cumplan o no. 

Entonces, considerando que los script que contienen toda la información (tanto de las claves públicas de María, del esposo y de los hijos, los condicionales y los tiempos establecidos) son añadidos a la blockchain, esto incrementa considerablemente el espacio de almacenamiento utilizado. A la vez que reducen la privacidad, porque se exponen todos los datos y condiciones establecidas de forma pública.

Por ello, es necesario añadir una herramienta que garantice la privacidad y minimice el tamaño de las transacciones. Esto es lo que hace MAST al eliminar la necesidad de añadir las partes no utilizadas de un script en la blockchain de Bitcoin. 

Creación de smarts contracts más complejos

El ejemplo anterior se parece un smart contract avanzado ¿No creen? Es bastante parecido. Y aquí está otro de los grandes beneficios que traerá consigo la implementación de MAST. MAST abre las puertas a que la capacidad de programaciń de los Bitcoin Scripts se amplíe. En pocas palabras, es un paso más adelante en la implementación de smarts contracts o contratos inteligentes de alta complejidad. 

Esto es posible gracias a que MAST permite la creación de una gran cantidad de script y gravámenes sin demandar demasiado espacio. Lo que hace posible la creación de smarts contracts más complejos dentro de la blockchain. Todo ello sin tener que perjudicar la escalabilidad de blockchain

¿Cuánto sabes, criptonauta?

¿MAST rompería con la seguridad de Bitcoin?

¡FALSO!

MAST o Merkelized Abstract Syntax Trees, no supone ningún riesgo a la seguridad dentro de Bitcoin. De hecho, aplicando MAST junto a las firmas Schnorr, la seguridad y capacidades de Bitcoin mejorarían visiblemente, tanto a nivel de seguridad como de privacidad.

Ventajas de implementar MAST

MAST traerá múltiples beneficios a la blockchain de Bitcoin. En primer lugar, al reducir el tamaño de las transacciones con la utilización del árbol de Merkle, éstas ocupan menos espacio dentro de la blockchain. Con lo cual se podrá mejorar el problema de escalabilidad que la red presenta, al no tener que incluir toda la información dentro de la cadena. Lo que deja más espacio libre para el procesamiento de un mayor número de transacciones de forma rápida. 

Así mismo, el nivel de privacidad de las transacciones también se verá mejorado en la blockchain. Con la implementación de AST en MAST se podrán revelar sólo la información esencial de una transacción o un script. Sin tener que mostrar todos los condicionales y restricciones previamente establecidos. Así, los condicionales y restricciones que no sean activados en la transacción, simplemente no serán incluidos dentro de la blockchain. Garantizando la privacidad de los usuarios al no revelar sus datos, y optimizando el espacio y uso de la blockchain.  

Por otra parte, MAST también puede contribuir a mejorar la fungibilidad del sistema, ya que podría impedir que ciertas criptomonedas pudieran ser asociadas a un smart contract o a una transacción particular.

Sin embargo, estas funcionalidades aún están en desarrollo y prueba, por lo que pasará algún tiempo para que las veamos finalmente aplicadas en la blockchain de Bitcoin.