Transacciones pequeñas, privacidad y contratos inteligentes en bitcoin: MAST

por David A. Harding, traducción AulaBitcoin.com

Los árboles de sintaxis abstracta de Merkel (MAST) son una propuesta a Bitcoin que permite tamaños de transacción más pequeños, más privacidad y contratos inteligentes más grandes. En este artículo, exploraremos los fundamentos del MAST y describiremos sus beneficios potenciales.

El problema: datos de script no utilizados

Satoshi Nakamoto dio a Bitcoin una característica interesante que no estaba descrita en el whitepaper original. En lugar de exigir que los bitcoins se reciban en una clave pública y sean gastados por una firma digital, Nakamoto dio a los usuarios la posibilidad de escribir programas (llamados scripts) que actuaran como claves públicas dinámicas y firmas.

Cuando se especifica un script -que es lo predeterminado en cada billetera- el protocolo de Bitcoin, aplicado por consenso, no permite que nadie gaste sus bitcoins a menos que el script devuelva «True» (Verdadero). Esto permite especificar restricciones, tales como exigir que la transacción de gastos esté firmada por su clave privada.

También son posibles restricciones más complejas, como el siguiente ejemplo: Alicia quiere poder gastar sus bitcoins en cualquier momento, pero si sus bitcoins no se gastan en tres meses (quizás porque está muerta o incapacitada), quiere que sus hermanos Bob y Charlie tengan sus bitcoins siempre y cuando se pongan de acuerdo sobre dónde gastarlos.

El script de restricciones a continuación, que especifica la política descrita anteriormente, incluye no sólo la clave pública de Alicia (necesaria para verificar una firma de su clave privada), sino también cierta lógica condicional, una especificación de tiempo y las claves públicas tanto para Bob como para Charlie.

En el actual Protocolo de Bitcoin, todos los datos anteriores deben añadirse a la cadena de bloques (blockchain) cuando se gasten las bitcoins de Alice. Esto incluye las partes del script que no se utilizan en un gasto en particular, como las llaves públicas de Bob y Charlie cuando Alice gasta sus propios bitcoins.

Los datos de las restricciones no utilizados aumentan el tamaño de las transacciones, reducen la privacidad al revelar públicamente más información de la necesaria, y limitan principalmente los contratos inteligentes por su tamaño en lugar de por sus costes de validación. MAST busca mejorar esta situación eliminando la necesidad de incluir directamente partes no utilizadas de un script en la cadena de bloques.

Los orígenes de MAST

La idea detrás de MAST proviene de dos conceptos preexistentes, los árboles de sintaxis abstracta (AST por sus siglas en inglés) y los árboles de Merkle. Los Árboles de Sintaxis Abstracta (AST) son una forma de describir un programa dividiéndolo en sus partes individuales, lo que puede facilitar su análisis y optimización.

Por otro lado, los árboles de Merkle permiten verificar que un elemento individual es miembro de un conjunto sin que todo el conjunto esté presente. Por ejemplo, las carteras SPV de Bitcoin utilizan árboles de merkle para ahorrar ancho de banda al verificar que las transacciones individuales recibidas son miembros de un bloque sin descargar el bloque completo.

En resumen, la técnica detrás de los ASTs nos permite dividir un programa en sus partes individuales, y los árboles de Merkle nos permiten verificar que las partes individuales pertenecen a un programa completo sin que el programa entero esté presente. Esta es la base de MAST, que permite a los usuarios sustituir las partes no utilizadas de los gravámenes por una prueba de mercado, reduciendo el tamaño de las transacciones, aumentando la privacidad y haciendo posibles contratos inteligentes de mayor envergadura.

Déjanos tu comentario