¿Qué es UTreeXO?

Una de las mejoras que se preparan para Bitcoin (BTC) es conocida como UTreeXO, un proyecto que busca ayudarnos a reducir los problemas que ocurren con la gestión de las las salidas no gastadas (UTXO) dentro de la blockchain. Pero ¿Qué es lo que UTreeXO hace realmente? ¿En que puede ayudarnos? Pues bien eso es precisamente lo que conocerás a continuación.

UTreeXO, mejorando el control de UTXO en Bitcoin

Las UTXO, son un mecanismo diseñado para poder identificar las monedas no usadas dentro de una dirección de Bitcoin. Para verlo de forma más sencilla ten presente este ejemplo:

Este modelo de UTXO, es la base de la contabilidad de pagos de Bitcoin, y es una forma inteligente de evitar que salgan monedas de la nada dentro de Bitcoin o que alguien haga uso de monedas que realmente no están bajo su poder. Es decir, las UTXO son fundamentales en Bitcoin.

El problema del modelo UTXO de Bitcoin

Sin embargo, este modelo genera también un problema, y es que, genera una ingente cantidad de información que al final hace que crezca de forma desmesurada el tamaño de la blockchain. No solo eso, hace cada vez más complejo y difícil el poder verificar de forma completa la blockchain, ralentizando el proceso de sincronización de los nodos.

Para resolver este problema y reducir el tamaño de la información UTXO dentro de la blockchain, Tadje Dryja, co-creador de Lightning Network, ha presentado UTreeXO. La idea detrás de esta mejora es brindar a Bitcoin un sistema que permita podar de forma correcta, y criptográficamente comprobable, el conjunto de datos UTXO de la blockchain de Bitcoin a un hash.

Es decir, UTreeXO es un acumulador basado en hash. Para lograr esto, UTreeXO toma los datos del UTXO de la blockchain, y convierte dichos datos en un enorme árbol (parecido al árbol Merkle). Este árbol luego es sintetizado en un hash raíz que sintetiza todo ese conjunto de datos. El sistema es acumulativo, con lo que la creación de un hash nuevo simplemente necesita de la copia del hash anterior, con los datos UTXO anteriores, generar el proceso de acumulación y como resultado se obtiene el nuevo hash.

Dicha tarea estaría en manos de los llamados nodos de compactación, y permitirían mantener a la red sincronizada con respecto a los datos UTXO y UTreeXO según se requiera. Esto garantiza que el sistema no pueda ser manipulado, que pueda ser verificado públicamente y que el sistema no interrumpa el funcionamiento actual de Bitcoin.

¿Cómo funciona UTreeXO?

El problema de la escalabilidad en Bitcoin se vuelve cada vez más grave. En primer lugar, tenemos que cada día más y más personas crean sus monederos y comienzan a hacer uso de la red Bitcoin. Esta mayor afluencia de personas dentro de la red Bitcoin aumenta el volumen de información (más transacciones e información dentro de la red), información que deben manejar los nodos y que debe ser grabada en la blockchain. Entre estos datos está la información de la UTXO (Unspent Transaction Output).

Ante esto, los nodos compactos de UTreeXO empiezan su papel cuando se crea una nueva transacción y está se transmite a través de la red. En ese punto, el nodo toma la transacción, realiza una prueba criptográfica de ese hecho y regenera el árbol de UTXO de la cadena, para obtener el hash final. Seguidamente, se envía la prueba de inclusión (la prueba criptográfica de la UTXO) junto con la transacción y se almacena en la blockchain.

A partir de ese momento, cada nodo compacto de UTreeXO reenvía la transacción y la prueba criptográfica a otros nodos compactos. De esta manera, se genera un consenso sobre el árbol UTXO de la cadena, y se habilita la verificación pública de toda esta información. Al final, cuando la transacción se incluye en un bloque, se descartan todos los datos de prueba. Esto significa que los nodos compactos pueden mantener las transacciones y las pruebas en su memoria. Así, no hay información alguna que se escriba en el disco duro.

Una solución escalada

Adicional a los nodos compactos de UTreeXO, también están los nodos puentes de UTreeXO. La función de estos nodos es la de recibir las transacciones estándar de la red (aquellas que inicialmente no están formateadas para usar UTreeXO) y realizar todo el proceso necesario para ser incluidas en el árbol. Para lograr esto, los nodos puentes contienen todo el historial de la blockchain y la lista UTXO completa. Así su papel es recibir la información de los nodos completos y crear una prueba de la existencia de fondos no gastados basada en la lista UTXO. Realizado este punto, se reenvía esta información con su respectiva prueba a los nodos compactos.

En este punto es necesario recalcar que la presencia del nodo puente solo es necesaria cuando un nodo completo estándar envía datos a un nodo compacto. Por otro lado, el nodo compacto solo envía los datos de la transacción al nodo completo estándar omitiendo la prueba criptográfica de prueba de fondos. En definitiva, este sistema permite la implementación de UTreeXO en un ambiente retrocompatible, en la que los nodos estándares y UTreeXO pueden funcionar sin problemas.

Objetivos de UTreeXO

El objetivo principal de UTreeXO es el de disminuir la cantidad de información necesaria para que los nodos comprueben la disponibilidad de las UTXO. De esta manera, solo tendrían que almacenar una copia de la información de propiedad de la transacción. Y junto a esta información, una prueba criptográfica de la información sobre las UTXO. Como resultado, los requisitos de potencia computacional y almacenamiento de datos de los nodos se reducen drásticamente, mejorando al mismo tiempo la disponibilidad de recursos y ancho de banda en toda la red.

Al mismo tiempo, permite ofrecer una mayor escalabilidad a la red Bitcoin en algunos puntos. Esto es posible debido a la reducción en el flujo de datos dentro de la red, lo que reduce significativamente el uso de ancho de banda, y al mismo tiempo, reduce el tiempo de verificación de las transacciones.