La escalabilidad de Bitcoin y el problema de la propagación de bloques

Se sabe que la falta de escalabilidad es el principal obstáculo que impide la adopción masiva de la tecnología de cadenas de bloques. Todos los proyectos de cadenas de bloques existentes buscan soluciones que puedan mejorar el rendimiento de su red. Muchos proyectos emergentes afirman que tienen una bala mágica que podría resolver el problema. Sin embargo, tales afirmaciones no siempre son válidas. Desafortunadamente, muchos observadores e inversionistas no se dan cuenta del núcleo y la raíz de este problema. Sin una investigación profunda y un considerable bagaje técnico, es difícil determinar los cuellos de botella ocultos y las compensaciones. En este post, vamos a discutir un cuello de botella bien conocido que impide que Bitcoin escale.

Poco después de la invención de la red descentralizada peer-to-peer Bitcoin, los investigadores se interesaron en lo que determina los límites del escalado de Bitcoin. Pronto se determinó el problema principal y se describió en términos de tiempo de propagación de bloques o retardo de propagación de bloques.

Es el tiempo medio que se necesita para que el nuevo bloque alcance la mayoría de los nodos de la red. En una gran red descentralizada como Bitcoin, cada vez que se genera el nuevo bloque, se transmite según el protocolo Gossip. Si algún nodo tiene el nuevo bloque válido, informa a los nodos conectados a él sobre su nueva posesión. Luego el nodo transfiere este bloque a los nodos que le pidieron que lo hiciera. Antes de que el bloque llegue a cada nodo completo de la red, pasa por siete nodos intermedios. Es importante que cada nodo honesto verifique el bloque antes de transmitirlo a otros pares. Obviamente, todo esto lleva un tiempo. Cada nuevo bloque sacude la red y hace que los nodos y las conexiones de ethernet entre ellos funcionen a toda potencia.

Se podría argumentar que desde el lanzamiento de la red, ha habido muchas mejoras en el protocolo Gossip.

Por ejemplo, la propuesta de mejora de Bitcoin BIP 0152 introdujo la opción de transferir sólo identificaciones de transacciones cortas, en lugar de la lista completa de transacciones, en el cuerpo del bloque. Sin embargo, si el nodo no tiene esa transacción en su mempool, tiene que pedir a sus pares que la transfieran en un mensaje separado. Si hay un gran número de tales transacciones en el bloque, entonces la mejora del BIP 0152 desaparece.

Dado que la transmisión de datos es la parte del bloque que más tiempo consume, los investigadores se interesaron en determinar cuánto tiempo se requiere para que un paquete de datos de cierto tamaño alcance el 50%, 90% o 95% de los nodos de la red. Se encontró que para los bloques mayores de 20kB, el retardo de propagación del bloque es casi proporcional al tamaño del mismo.

Según una investigación publicada en 2013, cada kB extra de datos en el bloque causó 80ms extra de retardo de propagación del bloque. Desde entonces, se han publicado un par de artículos académicos y encuestas sobre este tema cada año. Ellos actualizan los datos mencionados y discuten varias propuestas de mejora. Además, el sitio monitoriza el estado actual de la red de Bitcoin y el tiempo de propagación del bloque. También proporciona gráficos con datos históricos sobre este tema.

La mayoría de las redes de cadenas de bloques bien establecidas tienen el mismo diseño que Bitcoin. Como resultado, el tiempo de propagación de bloques en estas redes obedece a las mismas reglas. Desafortunadamente, el tiempo de propagación de bloques tiene un efecto masivo en la seguridad de las cadenas de bloques. Cuanto más largo es el tiempo de propagación en la red, más a menudo los mineros minan encima de viejos bloques. Como resultado, la bifurcación de la cadena principal ocurre más a menudo, y el porcentaje de bloques huérfanos aumenta. El largo retardo de propagación lleva al llamado Dilema de los Verificadores.

Algunos nodos pueden encontrar que saltarse el paso de verificación de bloques podría ser una estrategia rentable. En este caso, se enfrentan al riesgo de minar encima del bloque equivocado. Sin embargo, si el tiempo de verificación del bloque es significativo, esta estrategia podría ser rentable. Los investigadores encontraron que un largo retraso de propagación reduce la resistencia del nodo contra los ataques del 51% y la minería egoísta.

Con el fin de abordar el problema mencionado

, los desarrolladores de cadenas de bloques a menudo intentan que el tiempo de propagación de los bloques sea inferior al 1% del tiempo medio de los bloques.

Esto es cierto para Bitcoin, Ethereum y otras grandes redes de cadenas de bloques que se basan en un consenso de prueba de trabajo. Por esta razón, el tiempo de propagación de bloques al 50% de los nodos de la red Bitcoin es a menudo inferior a 6 segundos.

Aunque la retransmisión rápida de bloques, como la descrita en el BIP 0152, reduce el tiempo medio de propagación de bloques, en el peor de los casos podría llevar más tiempo que el protocolo básico. Es importante que incluso en el peor de los casos, el retardo de propagación sea razonable, para que los mineros mantengan sus nodos sincronizados la mayor parte del tiempo, y siempre verifiquen los bloques propuestos.

Siempre que se habla de la escalabilidad de la cadena de bloques, se menciona el rendimiento de las transacciones del sistema. Sin embargo, la gente olvidó que las mejoras en el rendimiento de las transacciones no deberían comprometer la seguridad de la red.