¿Qué es Grafroot?

El desarrollo de Bitcoin no se detiene, y en medio de esa dinámica, una mejora que se espera dentro de este protocolo es la de Graftroot. Esta mejora tiene como base el trabajo que se está realizando sobre dos mejoras ya conocidas Taproot y las firmas Schnorr, y su objetivo es la de flexibilizar la creación de transacciones y scripts para crear condiciones de bloqueo mucho más elaboradas. De esta forma, los scripts de Bitcoin usando Graftroot podrían permitir la programación de diversas condiciones de bloqueo que en estos momentos no son posible, todo ello mientras se mantiene la seguridad y se mejora la privacidad del sistema.

Pero ¿Cómo Graftroot puede hacer todo esto posible? Pues bien, esto y mucho más lo analizaremos a continuación.

Origen de Graftroot

En primer lugar, el origen de Graftroot nos remonta a dos conceptos muy importantes: Taproot y las firmas Schnorr. Estos son la base de construcción de los Graftroot, y sin estos es imposible de que funcione. Para dejarlo muy claro, Taproot es una mejora que busca cambiar la forma en como los scripts de Bitcoin pueden construirse, ejecutarse y almacenarse en la blockchain de Bitcoin. Su misión principal es la de flexibilizar los Bitcoins Scripts para que estos puedan mejorar su capacidad de programación o de smart contracts.

La mejora propuesta por Taproot va acompañada de un nuevo tipo de firma digital llamado firmas Schnorr. Este es un tipo de firma digital cuya finalidad es la de crear firmas digitales más pequeñas, seguras y privadas que sus contrapartes ECDSA, el estándar usado por Bitcoin en la actualidad.

Dicho esto, podemos ver que Taproot y las firmas Schnorr mejorarán mucho la capacidad de Bitcoin, y es algo que podemos aplaudir. Sin embargo, esto no termina allí. El 5 de febrero de 2018, el desarrollador de Bitcoin, Gregory Maxwell, envió un correo electrónico a la lista de desarrolladores de Bitcoin dando a conocer su propuesta Graftroot. La propuesta era una mejora para Taproot que ampliará sus posibilidades. La idea caló rápidamente, en especial porque el diseñador de Taproot era también Gregory Maxwell, y nadie mejor que él conocía la forma en cómo funcionaba esta mejora y cómo podría mejorarse.

De hecho, Maxwell presentó ambas ideas con una separación de solo 13 días entre ellas, dejando muy en claro que había margen para mejorar ambas ideas.

Lo anterior dicho de una forma menos técnica y extensa es: Grafroot nos permite introducir más programación en los scripts, mejorando las condiciones de programación y activación de los scripts, y todo ello sin alterar el protocolo y gozando de las ventajas de privacidad que Taproot y Schnorr nos permiten.

Ciertamente una elegante solución, que al mismo tiempo ofrece mejoras que todos agradeceremos y que tendrán un gran impacto positivo en la usabilidad de Bitcoin.

¿Cómo funciona Graftroot?

Ahora bien, exactamente cómo funciona Graftroot. Pues bien, en primer lugar, como ya comentamos, Graftroot funciona gracias a Taproot y las firmas Schnorr. Estas dos funciones son básicas y necesarias para el buen funcionamiento. Pero no te preocupes, puedes saber todo lo que debes saber si visitas nuestros artículos para Taproot y firmas Schnorr, aquí en Bit2Me Academy.

Dicho esto, procederemos a dar un breve ejemplo de cómo funciona Graftroot. Para ello imagina el siguiente escenario:

Explicando el escenario

En primer lugar, Daniela y Luis pueden crear una multifirma 2-de-2 y poner su dinero allí, esto es algo que en este momento podemos hacer en Bitcoin. Lo que sí es nuevo, es incluir varias condiciones alternativas que se ejecutarán si se presentan las condiciones necesarias para que dicha operación se cumpla. Y que en caso de cumplirse una de ellas, el resto de condiciones no puedan ser vistas por nadie más.

Esto significa que, si por ejemplo, Daniela retira el dinero un año después porque Luis ha tenido algún problema, ella podrá hacerlo sin problemas. Pero al mismo tiempo en la blockchain, solo podremos ver el script que le ha permitido tal acción, el resto de scripts y condiciones permanecerán ocultas. Dicho de otra forma, solo aquella condición que se cumpla en la transacción podrá ser vista en la blockchain de forma pública, el resto de alternativas y condiciones permanecerán privadas y nadie podrá saber cuáles fueron.

Esta función ciertamente mejora la privacidad, pero no solo eso, mejora la capacidad para programar cada Bitcoin dentro de la red. Y lo mejor, es que estas transacciones cuando sean vistas en la blockchain, no tendrán mayor diferencia de una transacción normal de criptomonedas.

En cuanto a la “función aseguradora” imagina ¿Cuántos Bitcoins no están congelados en la blockchain porque simplemente se olvidó o perdió la llave para su manejo? Con una dirección y un script usando Graftroot sería posible programar condiciones especiales para que el dinero dentro de esa dirección pueda moverse bajo otras condiciones que se programen, evitando así las pérdidas de los mismos. De esa forma casos como los de QuadrigaCX con sus 1000 BTC perdidos, o el de un usuario de Bitcointalk con 8900 BTC perdidos, serían otra historia.