Introducción

UTreeXO es un proyecto que busca mejorar la forma en como las salidas no gastadas (UTXO) son vistas, analizadas y verificadas dentro de la blockchain de Bitcoin. Esto con el objetivo de reducir drásticamente la cantidad de pruebas criptográficas para representar un estado de la blockchain y sus distintas UTXO en dicho estado.

Como resultado, UTreeXO puede reducir enormemente el almacenamiento necesario para representar el estado completo de las UTXO de Bitcoin. Es decir, tendríamos nodos que ocupan menos espacio de almacenamiento y redes con una capacidad de sincronización mucho más rápida y segura. 

UtreeXO, una mejor herramienta para manejar las UTXO

El problema de la escalabilidad en Bitcoin se vuelve cada día más delicado, puesto que a medida que ingresan más personas a la red aumenta el volumen de información que deben manejar los nodos y esto se hace más notorio cuando se trata de UTXO. 

UTXO (Unspent Transaction Output) hace referencia a la información que manejan los nodos respecto a la salida de las transacciones no gastadas en la red Bitcoin. Y esta información aumenta su volumen cada día, a medida que ingresan más personas a la red Bitcoin.

Para resolver este problema y reducir el tamaño de la información, Tadje Dryja de la Iniciativa de Moneda Digital del MIT Media Lab (y coautor del documento técnico de Lightning Network) ha propuesto la implementación de UtreeXO, un proyecto que permite la poda de datos para el conjunto UTXO.

UTreeXO es un acumulador basado en hash. Este crea una raíz del conjunto de datos UTXO que permite almacenar solo esta raíz en lugar del conjunto completo UTXO, de esta manera el acumulador mantiene la información en menos de un kilobyte de datos. Los nodos que utilizan este acumulador UTreeXO se llaman nodos compactos.

Relacionado: ¿Qué es UTXO en Bitcoin?

Optimizando la transmisión de datos en la red

Cuando un nodo compacto crea una nueva transacción y la transmite a través de la red, envía la prueba de inclusión junto con la transacción. A partir de ese momento, cada nodo compacto reenvía la transacción y la prueba a otros nodos compactos.

Dado que cada nodo compacto tiene el mismo estado de acumulador y raíz, las pruebas son las mismas para cada nodo. Todo lo que hace el nodo compacto es reenviar exactamente el mismo mensaje a sus pares.

Una vez que 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.  

Cuando una transacción se realiza desde un nodo completo estándar, este solo envía la información de la transacción al resto de los nodos en la red. El problema es que los nodos compactos necesitan, además de la información de la transacción, la prueba de la existencia de fondos no gastados para dicha transacción en la blockchain. Para resolver este inconveniente, se crean los nodos intermediarios o “nodos puentes” que permiten la comunicación entre los nodos completos estándar y los nodos compactos.

Los nodos puentes deben contener la blockchain y la lista UTXO. 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, en el sentido contrario, el nodo compacto solo envía los datos de la transacción al nodo completo estándar omitiendo la prueba.

Objetivos de la mejora

Con la utilización del acumulador UTreeXO, se busca 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 junto con una prueba criptográfica de la información sobre las UTXO.

Otro objetivo es darle mayor escalabilidad a la red Bitcoin, dado que se disminuye el flujo de grandes cantidades de información en la realización y verificación de las transacciones.

Hacer que las pruebas de la existencia de las criptomonedas sean conservadas por los dueños de los fondos. 

Estado actual de la propuesta

Por el momento UTreeXO se encuentra en fases de prueba, y su implementación promete darle mayor velocidad a las transacciones que se realizan en la red Bitcoin. El propio creador de la propuesta advierte que “el software funciona en testnet, la red de prueba de Bitcoin, y no se recomienda su uso con dinero real. Todavía hay muchos errores conocidos e ineficiencias en el código, pero lo estamos mejorando a un ritmo rápido”.

Los desarrolladores de Bitcoin también anuncian que publicarán nuevas noticias acerca de la evolución de UTreeXO y, como se trata de un código abierto, esperan la colaboración de muchas personas a nivel mundial en el desarrollo de este proyecto.

Pros y Contras de UTreeXO

Pros

Entre sus pros, está la agilización de las transacciones en Bitcoin, brindándole la escalabilidad tan deseada ante la ingente cantidad de información que se maneja en la red debido al aumento del volumen de transacciones.

Disminución de la cantidad de información que se almacena en los nodos de la red Bitcoin.

Mantiene la seguridad y privacidad de las transacciones, dado que solo se transmiten las pruebas de la existencia de fondos sin incluir más detalles que pudieran vulnerar la privacidad y seguridad de los usuarios y sus fondos.

Contras

La implementación de UTreeXO amerita que se creen los nodos intermediarios o nodos puentes, que servirán como punto de transición de la información desde un nodo completo estándar hacia un nodo compacto. El caudal de información en estos nodos puentes debe estar completa, es decir, deben mantener la blockchain así como la lista UTXO, para crear las pruebas que necesitan los nodos compactos para la validación de las transacciones.

La presencia de los nodos puentes en la red pudieran crear situaciones que vayan en contra de la descentralización en caso de que UTreeXO se use ampliamente en la red.

La creación de nuevas comisiones que sirvan de incentivo a los nodos puentes, también es una posibilidad que pudiera ocurrir en el caso de la implementación de la tecnología UTreeXO en la red Bitcoin.

Conclusiones

La falta de escalabilidad de la red Bitcoin es un problema que se ha venido haciendo más evidente a medida que aumenta el volumen de transacciones que la red debe atender. En tal sentido, los desarrolladores de Bitcoin buscan soluciones que le permitan a la red atender las transacciones con mayor agilidad. 

La implementación del acumulador dinámico criptográfico, UtreeXO, aporta solución a este problema de escalabilidad en la red Bitcoin, reduciendo la cantidad de información necesaria que permita verificar la existencia de fondos no gastados en la red. Es decir, creando pruebas de la existencia de fondos no gastados sin necesidad de manejar la lista UTXO por completo y, en consecuencia, ahorrando tiempo de procesamiento y espacio de almacenamiento en los nodos de la red.

Los nodos que usan el acumulador sólo necesitan almacenar una representación de tamaño logarítmico del conjunto UTXO, reduciendo enormemente el espacio de almacenamiento y los tiempos de búsqueda en el disco. La contrapartida son los requisitos de descarga adicionales de las pruebas de inclusión, pero con la agregación de pruebas y el almacenamiento, el aumento es de un tamaño manejable.