UTreeXO, es una propuesta de mejora diseñada por Tadje Dryja, que busca mejorar el manejo de las UTXO de la blockchain de Bitcoin, comprimiendo el mismo en un simple hash reproducible por todos los actores de la red.
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:
María ha decidido pagarle a Juan por una vieja deuda, lo correspondiente a 200€ en Bitcoin. Para ello, María abre su monedero, prepara la transacción y envía el saldo a Juan. En ese punto, Juan puede ver la transacción no confirmada, y una vez confirmada, Juan finalmente tiene su saldo y María su deuda pagada. En este ejemplo hay tres puntos:
- María usa el saldo disponible para pagarle a Juan. Este saldo disponible forma parte de los UTXO (monedas bajo su poder que no han sido gastadas) que María tiene a su disposición.
- Se realiza el pago, María pasa la propiedad de esas monedas a Juan, creando una transacción con una entrada (usando su saldo disponible, el UTXO) y una salida (que asigna las monedas a Juan) y en caso de que haya un cambio se crea una segunda salida que regresa dicho saldo a María.
- Juan recibe el pago de María, y las entradas de María (el saldo UTXO que tenía a su disposición) ahora se transforma en el saldo disponible de Juan, siendo ahora sus UTXO a futuro.
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.
Pros y Contras de UTreeXO
Pros
- Entre sus pros, está la mejora en la velocidad de las transacciones en Bitcoin. Esto al brindar una mayor escalabilidad ante la ingente cantidad de información que se maneja en la red debido al aumento del volumen de transacciones.
- Reducció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. Esto es posible ya que solo se transmiten las pruebas de la existencia de fondos sin incluir más detalles. De esta manera se evita que se pueda vulnerar la privacidad y seguridad de los usuarios.
Contras
- La implementación de UTreeXO requiere que se creen los nodos intermediarios o nodos puentes. Estos nodos 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 completo. 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. Esto 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. Esta es una posibilidad que podría ocurrir en el caso de la implementación de la tecnología UTreeXO en la red Bitcoin. Esto llevaría a un aumento en el costo de las comisiones de transacciones.
¿Cuánto sabes, criptonauta?
¿UTreeXO conlleva a problemas de seguridad en Bitcoin?¡FALSO!
UTreeXO ha sido creado con el fin de mantener el mismo nivel de seguridad de las UTXO. De hecho, no sustituye este sistema, simplemente implementa una serie de mejoras laterales que permiten optimizar la sincronización de los nodos a nivel de UTXO. El objetivo es mejorar y optimizar el uso de la red y el almacenamiento de datos dentro de los nodos.
Una solución aún en desarrollo
Sin embargo, UTReeXO es un proyecto en fase altamente experimental. Aquí te hemos explicado las cosas que propone, pero esto no está en funcionamiento en la red principal de Bitcoin. Es una propuesta que, tal vez, nunca se ponga en funcionamiento dentro la mainnet de Bitcoin, o que otra persona tome dicha propuesta y, cambiando algunos puntos, cree una nueva propuesta mejor. Esta es la magia de este ecosistema abierto y libre.
En la web principal de la propuesta, se pueden leer los avances del proyecto, y en su repositorio de GitHub es posible bajar el software de prueba para poner en ejecución el código de pruebas de este desarrollo. Es importante recalcar que existe un enorme interés por este proyecto, lo que se puede ver claramente en la enorme actividad de desarrollo en GitHub.Tal vez abra nuevas oportunidades para emprendedores, quién sabe.
Por otro lado, el 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.