Tabla de Contenidos
ToggleSi eres usuario de Bitcoin tal vez hayas escuchado hablar de Utretxo, una mejora para la escalabilidad en Bitcoin. Todo este funcionamiento se lleva a cabo con el objetivo de reducir notablemente el número de pruebas criptográficas para representar un estado de la blockchain y sus distintas UTXO en el mismo.
Entre las capacidades de esta mejora se encuentra reducir drásticamente el almacenamiento que se necesita para representar el estado general de las UTXO de Bitcoin. En otras palabras, gracias a esta mejora habría nodos que ocuparían menos espacio de almacenamiento además de redes con la capacidad de sincronización más rápida y con una mayor seguridad.
Uno de los problemas que más destacan en la red de Bitcoin es su escalabilidad debido a que a medida que se unen más usuarios a la red esto provoca un aumento en el volumen de información que deben procesar los nodos. Este problema resalta sobre todo en el ámbito de UTXO.
UTXO o Unspent Transaction Output se trata de la información que gestionan los nodos en cuanto a la salida de las transacciones no gastadas en la red Bitcoin. El volumen de esta información aumenta a medida que se unen más personas a la red Bitcoin.
Con el objetivo de resolver este problema y disminuir el tamaño de la información, el coautor del documento técnico de Lightning Network, Tadje Dryja de la Iniciativa de Moneda Digital del MIT Media Lab propuso la implementación de UtreeXO, el proyecto capaz de permitir la poda de datos para el área de UTXO.
UTreeXO es, en palabras más técnicas, un acumulador basado en hash. Dicho acumulador crea una raíz del conjunto de datos UTXO con lo cual se permite almacenar únicamente esta raíz y no el conjunto completo UTXO. Con este funcionamiento el acumulador guarda y almacena toda la información en un espacio de menos de un kilobyte de datos. Los nodos que hacen uso de este acumulador (UTreeXO) son llamados nodos compactos.
Como ya podemos imaginar, UTreeXO persigue un objetivo principal y es el de disminuir el alto volumen de información necesaria para que los nodos puedan comprobar la disponibilidad de las UTXO. Mediante su funcionamiento, solo tendrían que almacenar una copia de la información de propiedad de cada transacción realizada. Junto a esta información almacenada, también guardan una prueba criptográfica de la información sobre las UTXO. Como resultado de todo este sistema, los requisitos necesarios de potencia computacional y almacenamiento de datos de los nodos necesarios para el funcionamiento de la red se reducen drásticamente. Por otra parte mejora notablemente la disponibilidad de recursos y ancho de banda en la red.
Otro de sus principales objetivos es poder ofrecer una mayor escalabilidad en la red Bitcoin en algunos puntos, ya que este suele ser el mayor fallo de la misma. Este objetivo es posible debido a la reducción en el flujo de datos dentro de la red, lo cual a la vez reduce notablemente el uso de ancho de banda, y por otra parte, reduce el tiempo de verificación de las transacciones lo cual es una gran ventaja para la red.
Al volverse cada vez más notable el problema de Bitcoin se hizo necesaria la implementación de UTreeXo. Para remediar este problema, UTreeXo comienza su funcionamiento. Los nodos de UTreeXo comienzan a funcionar cuando se ejecuta una nueva transacción y esta es transmitida a través de la red. El nodo se hace cargo de la transacción y envía una prueba criptográfica de la misma. A través de la prueba criptográfica se regenera el árbol de UTXO de la cadena de bloques con el objetivo de obtener un Hash final.
Llegados a este punto cada nodo compacto reenvía tanto la transacción como la prueba criptográfica a otros nodos compactos. Así es como se genera un consenso sobre el árbol UTXO de la cadena habilitando así la verificación pública de toda la información. Finalmente cuando la transacción es incluida en un determinado bloque son descartados todos los datos de prueba. Esto hace que los nodos compactos puedan almacenar y guardar las transacciones y las pruebas en su memoria. De este modo no hay ninguna información que se escriba en el disco duro.
Además de los nodos compactos de UTreeXO, también podemos encontrar otros nodos llamados los nodos puentes de UTreeXO. Estos nodos llevan a cabo la tarea de recibir las transacciones estándar de la red. Las transacciones estándar son aquellas que en un principio no están formateadas para usar UTreeXO. Además, estos nodos puente se encargan de llevar a cabo todo el proceso necesario para incluir las transacciones en el árbol.
Para lograr realizar todo este proceso, los nodos puentes almacenan todo el historial de la cadena de bloques y la lista UTXO en su totalidad. Por ello, su función es recibir la información de los nodos completos y plasmar una prueba de la existencia de fondos no gastados basada en la lista UTXO. Cuando todo este proceso se haya completado, se reenvía la información con la prueba a los nodos compactos que le corresponde.
En todo este proceso cabe destacar que la presencia del nodo puente solo se necesita en el momento en que un nodo completo estándar transmite los datos a un nodo compacto. Por otra parte, lo que conocemos como nodo compacto solo enviará los datos de la transacción al nodo completo estándar obviando la prueba criptográfica de prueba de fondos.
Todo este sistema permite la implementación de UTreeXO en un ambiente “retrocompatible”. En dicho ambiente los nodos estándares y UTreeXO pueden funcionar sin ninguna complicación.
Como todo proyecto UTreeXo cuenta con algunas ventajas y desventajas. A continuación veremos algunas de ellas.