El grupo de desarrolladores del cliente Bitcoin Core ha publicado en su blog una lista de preguntas y respuestas frecuentes en referencia a Compact Blocks, un método para reducir el ancho de banda utilizado en la propagación de los bloques en la red Bitcoin.
Los tiempos de propagación de los bloques en los nodos en la red, así como el gran tamaño de los bloques actualmente se acerca mucho al límite de 1Mb, es el principal cuello de botella que presenta actualmente la red Bitcoin. Con lo cual diversas iniciativas se han estado desarrollando en los diferentes clientes de Bitcoin para resolver dicho problema y aligerar el funcionamiento de la red.
Del lado del equipo desarrollador del cliente Bitcoin Unlimited, fue presentada la iniciativa de Xtrem Thinblocks (Xthin) para resolver este cuello de botella. Xthin emplea los filtros Bloom para reducir la cantidad de información que se propaga entre los nodos, haciendo también que el tiempo de propagación sea mucho más rápido.
El equipo de Bitcoin Unlimited realizó pruebas utilizando la técnica de Xthin donde demostró que puede reducir el tamaño de los bloques, el tiempo de propagación y los efectos del gran cortafuegos de China en gran medida, con respecto al método de propagación estándar. Los resultados obtenidos y los análisis respectivos fueron publicados por CriptoNoticias en una serie de 5 artículos.
Compact Blocks, la alternativa de Bitcoin Core
Al igual que Xthin, Compact Blocks reduce el ancho de banda necesario para propagar los bloques entre los nodos de la red Bitcoin. Core emplea principios similares donde un Nodo A enviaría a un Nodo B la cabecera del bloque, los identificadores de las transacciones ya propagadas y las transacciones completas que no han sido propagadas. Sin embargo, la diferencia más notable es la no utilización de los filtros Bloom por parte de Compact Blocks.
Además de esta técnica, Compact Blocks ofrece un segundo modo de operación denominado high bandwith mode, el cual reduce el tiempo de recepción de los bloques al configurar a los nodos para recibir los bloques de manera automática sin ni siquiera recibir invitación de los otros nodos.
Según Bitcoin Core, los experimentos realizados con esta técnica han arrojado buenos resultados, en los cuales los bloques de 1Mb pueden llegar a ser reconstruidos usando bosquejos de datos de bloques de apenas unos 20Kb. Sin embargo, en la publicación no se especifican, ni de forma numérica, las ventajas de Compact Blocks ante el método de propagación estándar. Algo que sí hizo el equipo de Bitcoin Unlimited en su serie de 5 artículos con los resultados y análisis de sus experimentos.
El método predictivo de Compact Blocks para decidir cuáles transacciones propagar a sus nodos vecinos, se basa en comparar las transacciones recién generadas con las que ya posee en su memoria (mempool). Con esta heurística simple, los nodos podrían predecir cuáles transacciones no han sido todavía guardadas en las memorias de sus nodos vecinos y así enviarían solamente éstas transacciones de forma completa y los hashes de las transacciones que ya han sido registradas.
Bitcoin Core añade que información adicional sería utilizada para depurar este proceso y evitar que se pierdan transacciones en la propagación o se realicen chequeos de más entre los nodos. Lamentablemente aún no se cuentan con datos precisos de experimentos realizados con Compact Blocks, con los que se podría comparar la eficiencia de esta técnica con la de Xthin.
Bitcoin en la búsqueda de bloques más eficientes
En la publicación de Bitcoin Core se especifica que esta técnica fue inicialmente desarrollada por Matt Corallo y Mike Hearn, aunque inicialmente esta propuesta empleaba los filtros Bloom al igual que lo hace la técnica actual de Xthin. Sin embargo también alegan que el desarrollador Pieter Wuille trabajó posteriormente en la propuesta y llegó a una versión que prescinde de los filtros Bloom.
Esta última versión de Wuille ha sido trabajada en conjunto con Matt Corallo y es la apuesta del cliente Bitcoin Core para resolver el problema del cuello de botella de la propagación de los bloques en los nodos de la red Bitcoin.
Es importante resaltar que tanto Compact Blocks de Core como Xtrem Thinblocks de Unlimited son propuestas muy necesarias actualmente para reducir los tiempos de confirmación de las transacciones de la red de Bitcoin. Si bien son técnicas que usan principios ligeramente distintos, ambas logran el mismo cometido de ahorrar tiempo y datos en los procesos de propagación.
Aunque Bitcoin Core aboga por una red Bitcoin con canales de pagos como principal propuesta para alcanzar la escalabilidad, Compact Blocks es una técnica cuyo principios de funcionamiento ya están siendo desarrollados y probados por diversos clientes de Bitcoin. Esto nos dice que estamos cerca de que los usuarios empiecen a implementar de forma masiva estas mejoras en sus nodos que permitan reducir la actual congestión de la red.
Sobre si será Compact Blocks, Xthin u otra técnica similar la que resulte preferida por la mayoría de los usuarios que ejecuten nodos completos en la red, falta todavía tiempo para que la comunidad decida cuál de estas es la que mejor se adapta a sus requerimientos. Pero un aspecto muy positivo hay que resaltar: la comunidad de desarrolladores está trabajando en soluciones palpables y eficientes para garantizar la escalabilidad de la red.