¿Qué es Grafroot?

Graftroot es una mejora desarrollada para ampliar las capacidades de Taproot, una propuesta que busca ofrecer a Bitcoin mejores capacidades para su lenguaje de programación habilitando la creación de smart contracts más potentes.

El desarrollo de Bitcoin no se detiene, y en la mitad de esa activa, una mejora que se espera en este protocolo es la de Graftroot. Esta mejora tiene como base el trabajo que se está efectuando sobre 2 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 considerablemente más elaboradas. De esta manera, los scripts de Bitcoin utilizando Graftroot podrían permitir la programación de diferentes condiciones de bloqueo que en estos instantes no son posible, todo ello mientras que se sostiene la seguridad y se mejora la privacidad del sistema.

Pero ¿De qué manera Graftroot puede hacer todo esto posible? Puesto que bien, esto y considerablemente más lo analizaremos ahora.

Origen de Graftroot

En primer sitio, el origen de Graftroot nos remonta a 2 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 clarísimo, Taproot es una mejora que busca mudar la manera en como los scripts de Bitcoin pueden construirse, ejecutarse y guardarse en la blockchain de Bitcoin. Su misión primordial es la de flexibilizar los Bitcoins Scripts a fin de que estos puedan prosperar su capacidad de programación o bien de smart contracts.

La mejora propuesta por Taproot va acompañada de un nuevo género de firma digital llamado firmas Schnorr. Este es un género 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 utilizado por Bitcoin actualmente.

Dicho esto, podemos ver que Taproot y las firmas Schnorr van a mejorar mucho la capacidad de Bitcoin, y es una cosa que podemos aplaudir. No obstante, esto no acaba allá. El 5 de febrero de 2018, el desarrollador de Bitcoin, Gregory Maxwell, mandó un mail 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ó velozmente, de forma especial pues el diseñador de Taproot era asimismo Gregory Maxwell, y absolutamente nadie mejor que conocía la manera en de qué forma funcionaba esta mejora y de qué manera podría mejorarse.

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

Gregory Maxwell: ¿Qué es Graftroot?

Taproot adolece de una restricción y es que solo se puede administrar de forma nativa una opción alternativa. Se pueden hacer árboles o bien cataratas de taproots, mas tienen menos privacidad y eficacia que un solo nivel. No obstante, bajo el presunto de la raíz primordial, en la que hay una función monótona en claves públicas simples y solamente que sea suficiente para autorizar una transacción, podemos hacerlo todavía mejor.

Con Graftroot, los participantes establecen una clave de umbral (threshold key), opcionalmente con una taproot opción alternativa, como lo hacen con la taproot. De esta forma en cualquier instante, pueden delegar su capacidad para firmar un script substituto firmando ese script (y solo el script) con su clave primordial, y compartiendo esa delegación con quien escojan. Después, cuando llega el instante de gastar la moneda, si los firmantes no están libres y debe utilizarse el script, la parte salvadora hace lo que sea preciso para satisfacer el script (por poner un ejemplo, da su firma y un bloqueo de tiempo, o bien lo que sea) y presenta esa información de manera conjunta con la del firmante firma del script.

El resultado es que, en vez de permitir una sola opción alternativa, se puede administrar un número ilimitado de opciones alternativas. Todos son ejecutados con igual eficacia que una sola opción alternativa, y el número de ellos está escondo sin gastos generales. Se pueden administrar opciones alternativas para monedas asimismo, sin precisar que se muevan, el movimiento es solo preciso para destruir la capacidad de emplear opciones alternativas mudando claves.

Lo precedente dicho de una manera menos técnica y extensa es: Grafroot nos deja introducir más programación en los scripts, mejorando las condiciones de programación y activación de los scripts, y todo ello sin trastocar el protocolo y disfrutando de los beneficios de privacidad que Taproot y Schnorr nos permiten.

Ciertamente una muy elegante solución, que al tiempo ofrece mejoras que todos agradeceremos y que van a tener un enorme impacto positivo en la usabilidad de Bitcoin.

¿De qué forma marcha Graftroot?

Ahora bien, precisamente de qué forma marcha Graftroot. Puesto que bien, primeramente, como ya comentamos, Graftroot marcha merced a Taproot y las firmas Schnorr. Estas 2 funciones son básicas y precisas para el buen funcionamiento. Mas deja de preocuparte, puedes saber todo cuanto tienes que saber si visitas nuestros artículos para Taproot y firmas Schnorr, acá en Bit2Me Academy.

Dicho esto, vamos a proceder a dar un breve ejemplo de de qué manera marcha Graftroot. Para esto imagina el próximo escenario:

Ejemplo de de qué forma marcha Graftroot

En primer sitio, tenemos a Daniela y Luis administrando una cartera multifirma. La cartera es del tipo dos-de-dos, esto es, se precisan las dos firmas para poder autorizar un gasto del dinero en esa cartera.

Sin embargo, Daniela y Luis decidieron flexibilizar la manera de gasto en determinadas condiciones. De esta manera establecen que después de un año, el dinero en tal monedero puede ser movilizado con la firma de uno de ellos solamente. De este modo, Daniela o bien Luis, pasado ese tiempo, pueden desplazar el dinero merced a esta condición compañía de seguros. Al lado de esta condición, programan otra en la que Luis puede gastar el saldo dando un secreto.

Escritas las condiciones, Daniela y Luis crean sus claves de umbral (threshold keys) utilizando firmas Schnorr, firman los scripts primordiales y alternativos, y cada uno de ellos de ellos sostiene los datos que precisan para cumplir las condiciones de gastos que han sido programadas en los scripts.

Explicando el escenario

En primer sitio, Daniela y Luis pueden crear una multifirma dos-de-dos y poner su dinero allá, esto es una cosa que ahora podemos hacer en Bitcoin. Lo que sí es nuevo, es incluir múltiples condiciones opciones alternativas que se ejecutarán si se presentan las condiciones precisas a fin de que dicha operación se cumpla. Y que en el caso de cumplirse una de ellas, el resto de condiciones no puedan ser vistas por absolutamente nadie más.

Esto quiere decir que, si por servirnos de un ejemplo, Daniela retira el dinero un año después pues Luis ha tenido algún inconveniente, va a poder hacerlo sin inconvenientes. Mas al tiempo en la blockchain, solo vamos a poder ver el script que le ha tolerado tal acción, el resto de scripts y condiciones continuarán ocultas. Dicho de otro modo, solo aquella condición que se cumpla en la transacción va a poder ser vista en la blockchain de forma pública, el resto de opciones alternativas y condiciones continuarán privadas y absolutamente nadie va a poder saber cuáles fueron.

Esta función efectivamente mejora la privacidad, mas no solo eso, mejora la capacidad para programar cada Bitcoin en la red. Y lo mejor, es que estas transacciones cuando sean vistas en la blockchain, no van a tener 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 por el hecho de que sencillamente se olvidó o bien perdió la llave para su manejo? Con una dirección y un script utilizando Graftroot sería posible programar condiciones singulares a fin de que el dinero en esa dirección pueda moverse bajo otras condiciones que se programen, eludiendo de este modo las pérdidas de exactamente los mismos. De esa forma casos como los de QuadrigaCX con sus mil BTC perdidos, o bien el de un usuario de Bitcointalk con ocho mil novecientos BTC perdidos, serían otra historia.

¿Cuánto sabes, criptonauta?

¿La aplicación de Graftroot va a poner a Bitcoin al mismo nivel programación de smart contracts de Ethereum?

Pros y contras de Graftroot

Pros

En primer sitio, uno de los pros de Graftroot es que dejan crear smart contracts (Bitcoin Scripts) considerablemente más elaborados, con más condiciones y con funciones que de otra manera serían imposible de incorporar. Esto mejora significativamente la usabilidad de Bitcoin, y abre las puertas para la implementación on-chain de nuevas funciones de intercambio seguras y trasparentes.

Además, Graftroot no renuncia a las mejoras de privacidad y escalabilidad que Taproot y las firmas Schnorr nos ofrecen, puesto que estas 2 tecnologías son precisas para Graftroot. Esto ha motivado a los desarrolladores a ver con buenos ojos el empleo de Taproot y Schnorr en Bitcoin, lo que pronto vamos a poder ver.

Contras

Por el lado negativo, Graftroot introduce una mayor dificultad en el código de Bitcoin, lo que implacablemente lleva a inconvenientes de seguridad. No obstante, tanto Taproot, como Schnorr en Bitcoin llevan en desarrollo desde dos mil dieciocho, el código se ha estudiado, lo que disminuye la posibilidad de inconvenientes de esta clase.

Lo que sí es verdaderamente un inconveniente con Graftroot es que este es un sistema interactivo, en el que las dos partes deben firmar los scripts (el primordial como los alternativos) a los fines de poder efectuar algún gasto. Si esto no sucede por cierto motivo, el dinero va a estar allá hasta el momento en que dicha acción se complete.

bitcoin
Bitcoin (BTC) $ 61,079.00
ethereum
Ethereum (ETH) $ 3,819.42
binance-coin
Binance Coin (BNB) $ 466.70
tether
Tether (USDT) $ 1.00
cardano
Cardano (ADA) $ 2.16
xrp
XRP (XRP) $ 1.12
solana
Solana (SOL) $ 160.73
polkadot
Polkadot (DOT) $ 41.53
usd-coin
USD Coin (USDC) $ 1.00
dogecoin
Dogecoin (DOGE) $ 0.236928