UtreeXO, otra mejora para la escalabilidad en Bitcoin
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.