Taproot, privacidad y smart contracts para Bitcoin

Introducción

Sin duda Bitcoin es una criptomoneda en constante evolución y desarrollo, procesos que no se han detenido desde su lanzamiento en 2009. Gracias a esto, Bitcoin ha podido crecer y mejorar como ecosistema. Pero en la actualidad, hay un desarrollo que está captando mucho la atención de la comunidad. Este desarrollo recibe el nombre de Taproot y es precisamente de lo que hablaremos en este artículo.

¿Qué es Taproot?

Taproot es un propuesta para mejorar el protocolo de Bitcoin, más precisamente es la Propuesta de Mejora de Bitcoin BIP-0341. Esta mejora al protocolo de Bitcoin busca introducir una serie de cambios fundamentales. Cambios dirigidos a mejorar la privacidad, la eficiencia y la flexibilidad de las capacidades de scripting de Bitcoin.

Más específicamente, Taproot es una mejora en la ejecución de los script  y la aplicación de firmas digitales criptográficas de Bitcoin. Y con ello, se busca mejorar la escalabilidad, seguridad, privacidad y fungibilidad de Bitcoin.

Para lograr todo esto, Taproot necesita de una serie de mejoras que le permitirán cumplir su objetivo. En primer lugar, Taproot necesita de SegWit una pequeña mejora ya en funcionamiento en Bitcoin. Pero adicionalmente, necesita de las conocidas firmas criptográficas Schnorr y de MAST (Merkelised Abstract Syntax Trees). La combinación de todas estas mejoras es lo que hace posible a Taproot y sus interesantes avances.

Los desarrolladores Pieter Wuille, Jonas Nick y Anthony Towns son quienes proponen esta interesante mejora. La presentación de la misma fue hecha pública en mayo de 2019.

Relacionado: Desarrollador de Bitcoin publica dos propuestas para una bifurcación suave, Taproot

¿Cómo funciona Taproot?

Para entender cómo funciona Taproot lo primero que debemos entender es cómo funcionan las transacciones en Bitcoin. Básicamente las transacciones en Bitcoin funcionan gracias una sencilla programación que se realiza en algo llamado Bitcoin Script. Este Bitcoin Script, es un lenguaje de programación que se usa para que Bitcoin pueda programar absolutamente todo lo que sucede dentro de su red. Desde enviar monedas desde una dirección a otra, firmar y verificar transacciones, o la creación de monederos de una o múltiples firmas. En definitiva, todo en Bitcoin funciona gracias a este lenguaje de scripting y por ello se dice que "Bitcoin es dinero programable".

Lo que hace basicamente Bitcoin Script es insertar una serie de instrucciones o códigos de operación (OP_CODES) en un orden específico. Estos sirven para manipular la clave pública y las firmas digitales para realizar así operaciones de todo tipo en Bitcoin. Esta es la forma en la que se programa todo en Bitcoin. La siguiente imagen nos muestra un ejemplo de este lenguaje dentro de Bitcoin (secciones Pkscript y Sigscript).

En los últimos años, muchas mejoras se han integrado a Bitcoin Script. En algunos casos se han quitado características debido a problemas de seguridad. Pero en otros, se han agregado nuevas para darle una mayor flexibilidad. Sin embargo, hasta el momento una serie de problemas conocidos sigue estando presente en este lenguaje.

En primer lugar, Bitcoin Script tiene muchas limitaciones. Llega hasta el punto que cosas como los avanzados smart contracts que vemos en Ethereum son una odisea. En segundo lugar, ciertas partes de los scripts y transacciones pueden alterarse en determinados momentos. Esto genera un problema de maleabilidad, fungibilidad y seguridad. Y finalmente, los scripts al ejecutarse revelan mucha información. Información relacionada con las condiciones en la que se crean las transacciones. Por lo que representa un problema de privacidad.

Todos estos problemas se estudian activamente en la actualidad. Tanto por los desarrolladores como por la comunidad de Bitcoin. Algunos de ellos ya tienen solución. Tal es el caso de la maleabilidad que ha sido resuelta gracias a SegWit. Sin embargo, la limitación del lenguaje y el problema de seguridad siguen presente. Y es allí donde Taproot entra en acción.

Alterando las condiciones de ejecución de Bitcoin Script con MAST

Para solucionar esto, Taproot debe cambiar la forma en como Bitcoin maneja estos scripts. Esto se logra gracias al uso de algo llamado MAST o Árbol de Sintaxis Abstracta de Merkelizada.

El objetivo de MAST es hacer que todas las condiciones o instrucciones de un Bitcoin Script sean comprimidas en un árbol merkle de estas instrucciones. Un árbol merkle, es una estructura de verificación de datos muy potente que permite resumir grandes cantidades de información en cadena de datos más reducida, llamada Merkle Root. Dicha cadena luego puede ser usada para verificar los datos y condiciones originales que llevaron a su creación.

En definitiva, cuando se realiza una transacción que usa MAST, los nodos de Bitcoin toman esta transacción y ejecutan su programación. Así cuando se cumplen las condiciones de ejecución del script, se revelan las condiciones incrustada en el MAST. De esa forma, el script se ejecuta y su resultado se almacena en la blockchain.

Lo importante acá es que, si bien MAST puede tener múltiples condiciones almacenadas, solo aquellas que se ejecuten serán hechas públicas en la blockchain. El resto de condiciones nunca son reveladas y de esa forma, se obtiene una capa de privacidad adicional a la hora de ejecutar scripts.  Esto es radicalmente distinto a lo que pasa en la actualidad, en donde todas las condiciones del script son hechas públicas.

Adicional a esto, MAST permite que los scripts sean más y más complejos. Esto gracias a que podemos programar muchas condiciones en un script y al final siempre obtendremos un merkle root. Uno en el que se agrupa toda esta información de forma resumida y segura.

Mejorando el sistema de firmas digitales usando firmas Schnorr

Pero MAST es solo una parte de Taproot, una que permite mejorar las capacidades de programación y privacidad de Bitcoin. Para mejorar aún más este diseño, Taproot introduce las firmas Schnorr. Una firma Schnorr es un potente procedimiento criptográfico que permite sustituir un conjunto de firmas por una sola. Con ello se logra salvar espacio de almacenamiento para agregar más información en una transacción y por consiguiente en los bloques de Bitcoin.

Con las firmas Schnorr, Taproot busca que sistemas como los monederos multifirmas sean mucho más seguros y privados. Además, las firmas de Schnorr permiten algo conocido como validación por lotes. Esta técnica permite validar varias firmas juntas de manera más eficiente que validar cada una de forma independiente. Una función interesante si características como los monederos multifirmas o los smart contracts complejos son algo que deseas alcanzar.

Así el conjunto de mejoras de SegWit, MAST y las firmas Schorr es lo que permite construir a Taproot. Con ello se logra desbloquear un potencial en Bitcoin que hasta el momento no está al alcance. Pero lo más importante, es que estos cambios permiten que Bitcoin siga funcionando con amplia compatibilidad y sin necesidad de poner en peligro la estabilidad y seguridad de su blockchain.

Relacionado: La actualización de Bitcoin, Taproot, no ayudará a la privacidad

Alcance de Taproot en Bitcoin

Como hemos mencionado una de las principales razones para el despliegue de Taproot es que esta mejora la privacidad de Bitcoin. Esto lo logra porque permite controlar de mejor manera la revelación de las condiciones de los scripts de Bitcoin.

Por otro lado, Taproot permite también mejora la escalabilidad al permitir que las transacciones sean hasta un 25% más pequeñas. Esto tiene un doble impacto, por un lado las comisiones o fee de minería disminuyen. Por el otro, transacciones más pequeñas significan que caben más transacciones en un mismo bloque. Esto lleva a que las transacciones se abaraten y que sea posible procesar más transacciones por segundo en la blockchain.

Si bien para poder disfrutar de estas ventajas tanto los nodos como las carteras deberán actualizarse. Esto no es limitativo, puesto que Taproot es un soft fork. Esto significa que los nodos y monedero que no actualicen podrán seguir haciendo uso de la red sin mayores limitaciones. Pero si desean usar Taproot y gozar de sus ventajas, la actualización es obligatoria.

Otra ventaja de Taproot es que esta tecnología permite habilitar en Bitcoin los llamados intercambios atómicos o atomic swaps. Esto permitiría por ejemplo hacer intercambios atómicos con firmas de adaptadores, que resultan en operaciones indistinguibles de otros tipos de transacciones. 

Todo esto nos deja claro que Taproot es una mejora muy importante y necesaria para Bitcoin. Una que seguramente veremos muy pronto habilitada en Bitcoin Core. Una vez allí todos podremos disfrutar de la misma sin mayores reservas.