Escalabilidad en Bitcoin ¿Dónde estamos?

José Maldonado
29 JUN 2020
Escalabilidad en Bitcoin ¿Dónde estamos?
1.

Introducción

Uno de los mayores desafíos que tiene Bitcoin frente a si como sistema es hacer frente a su problema de escalabilidad. Porque si, Bitcoin tiene un grave problema de escalabilidad. Uno que se va haciendo más y más crítico con el tiempo y el crecimiento de su red y base de usuarios.

Los problemas de escalabilidad de Bitcoin son largamente conocidos. El mismo Satoshi Nakamoto explicaba que el funcionamiento de la red y sus limitaciones, impondría un límite en su capacidad de procesamiento de transacciones. Y a pesar del inmenso trabajo de investigación y desarrollo hecho en Bitcoin y su código, muchas de esas limitantes aún siguen allí. Esto lo que ha hecho es hacer más visible el problema.

En principio, Bitcoin tenía una pequeña base de usuarios, se generaban pocas transacciones y el problema tenía una presencia mínima. Pero ahora con una base de usuarios mayor y diversos servicios como los exchanges, generan una mayor presión en la red y su principal consecuencia es saturar la red. Como resultado, las confirmaciones de las transacciones tardan más en hacerse. Y al mismo tiempo las comisiones se disparan en un esfuerzo de los usuarios por tomar mayor prioridad.  Evento que en sumatoria terminan demostrando que la escalabilidad de Bitcoin es pequeña y comienza a resentir la utilidad de la misma para ciertos usos, como los micropagos.

Pero ¿Por qué Bitcoin no puede escalar? ¿Qué es lo que evita que Bitcoin pueda mejorar sus prestaciones? Y lo más importante ¿Qué han hecho los desarrolladores para mejorar este problema?

Relacionado: ¿Qué es Bitcoin? Historia, características, pros y contras

2.

¿Por qué Bitcoin no puede escalar?

El principal problema que evita que Bitcoin no pueda escalar de forma correcta está en el reducido tamaño de bloque de Bitcoin. El límite actual del tamaño de bloque (block size) es de 1 MB. Esto significa que cada bloque de Bitcoin puede contener tanta información sobre transacciones como lo permita ese espacio de 1 MB de almacenamiento.

Para entrar en una comparación, 1 MB es un poco menos que la información que podías almacenar en un diskette de 3 1/2 pulgadas. Y este era un dispositivo usado en los años 90 durante el nacimiento de la informática de consumo. Pero en la actualidad, cualquier teléfono celular de gama baja puede contener 80 millones de veces más información. Así tenemos que el principal problema para escalar en Bitcoin es el tamaño de bloque. El cual, en su medida actual, permite incluir unas 1200 a 1500 transacciones. Eso es entre 3 a 7 transacciones por segundo.

Pero si pudiéramos llevar ese tamaño de bloque por ejemplo a los 16 MB, seríamos capaces de incluir unas 20 mil transacciones por bloque. Una situación que mejoraría enormemente la escalabilidad de Bitcoin. De hecho, a 16 MB por bloque podríamos incluir unos 18 a 20 mil transacciones por bloque. Además de mejorar hasta los 25 a 33 transacciones por segundos. Eso es una mejora de unas 5 veces en la eficiencia de la red.

Aumentar el tamaño del bloque no es una panacea

Entonces ¿Por qué Bitcoin, una tecnología tan avanzada sigue usando un tamaño de bloque tan pequeño? La principal razón es proteger la descentralización, haciendo que el acceso a construir y ejecutar nodos de Bitcoin sea algo posible en cualquier parte del mundo, con prácticamente cualquier tipo de conexión a Internet y hardware existente. Y es que no todo el mundo cuenta con conexiones ultra rápidas a Internet, ya que hay países donde el ancho de banda es mínimo. Pero ofrecer acceso a esos países al sistema que Bitcoin ofrece y dejarles acceso a los nodos, ayuda a que puedan usar Bitcoin y ser parte de la descentralización de la red.

De hecho, que el tamaño de los bloques sea tan pequeño permite incluso que se pueda usar Bitcoin usando ondas de radio (como las de tu emisora de radio favorita) para enviar información. Esto es posible ahora, con Bitcoin usando tamaños de bloques y transacciones tan pequeñas, pero sería impracticable si aumentamos dichos parámetros.

De hecho, aumentar el tamaño de bloque a 2 GB (como lo hizo Bitcoin SV) ya dejaría por fuera a muchos países de ejecutar nodos de forma correcta. Y esto sencillamente porque la mayoría de las conexiones a Internet no podría hacer frente a la transmisión de bloques de ese tamaño cada 10 minutos. Lo que al final lleva a la centralización de la red, ubicando esos nodos en un pequeño puñado de países privilegiados y que en cualquier caso podrían ser hostiles contra los proyectos de criptomonedas, como lo han demostrado ya tantas veces.

Otra razón de peso para evitar elegir tamaños de bloques tan grandes, es que transmitir bloques tan grandes por toda la red puede llevar a desincronizaciones de los nodos. Por ejemplo, podemos tener un nodo A con una gran ancho de banda teniendo los bloques de la blockchain justo a tiempo. Pero los nodos B y C están desincronizados, porque su ancho de banda es menor y no pueden descargar los bloques rápidamente. Esto da origen a tres problemas:

  1. Existen nodos que no tienen el historial completo y actual de la red, por lo que el consenso de red no es unánime sobre los bloques.
  2. Abre las puertas a los ataques de Denegación de Servicios, puesto que la llegada de más y más bloques paraliza a dichos nodos más lentos.
  3. Permite que determinados ataques (como el Ataque Eclipse) puedan ser ejecutados sobre la red de forma más sencilla.

Ante esta situación está muy claro que aumentar el tamaño de bloque sin control no es una solución al problema de escalabilidad en Bitcoin. Los desarrolladores lo saben, y por ello trabajan activamente en otro tipo de soluciones al problema.

Relacionado: BitMex Research: Las mejoras en la escalabilidad mantuvieron a Bitcoin descentralizado

3.

Arreglando la escalabilidad de Bitcoin

En la actualidad el desarrollo de Bitcoin ha estado fuertemente centrado en mejorar sus especificaciones técnicas y la capacidad de ofrecer mecanismos para escalar de forma real, sin afectar negativamente el protocolo y la descentralización alcanzada por la red. Una tarea nada sencilla, que ha llevado a la comunidad a varios eventos controversiales.

Los primeros intentos para solucionar el problema de escalabilidad de Bitcoin los podemos ver en los BIP-100 y BIP-101. Ambas propuestas se presentaron en 2015 por los desarrolladores Jeff Garzik y Gavin Andresen, respectivamente.

El BIP-100 de Garzik proponía que el tamaño de los bloques fuera ajustable por los mineros, quienes podrían decidir por consenso, cuál sería el tamaño de bloque apropiado para mantener la buena salud de la red Bitcoin. Una propuesta que abría las puertas a una escalabilidad continuada y controlada en el tiempo. Por otro lado, el BIP-101 de Andresen proponía un aumento directo del tamaño de bloque desde 1 MB a los 8 MB.

Ambas propuestas presentan el mismo problema. Estas dependían de un hard fork que hacía incompatible la red con los nodos que ejecutan una versión anterior del protocolo. A muchos en la comunidad no les gustó la idea, ni las formas en cómo se pretendían llevar a cabo dichos cambios. De hecho, la controversia del BIP-101 llevó a que Andresen abandonara su puesto como Líder de Desarrollo de Bitcoin.

Pero la situación no terminó allí, y de hecho se presentaron otras propuestas que detallaremos a continuación.

Bitcoin Unlimited y Bitcoin XT

Bitcoin Unlimited (BU) es una implementación de nodo completo para las redes Bitcoin que buscaba permitir que los dueños de los nodos indiquen el límite de tamaño de bloque de la red. Para ello usaban el mismo mecanismo propuesto en el BIP-100 de Jeff Garzik. De esa forma, podían por consenso encontrar el límite del tamaño del bloque y conducir con ello una mejora palpable y continuada de la escalabilidad del Bitcoin.

Por su parte, Bitcoin XT fue una propuesta de desarrollo de nodo de Bitcoin que buscaba aplicar el límite establecido por Gavin Andresen en su BIP-101.

Sin embargo, ambas propuestas no fueron bien recibida por los desarrolladores de Bitcoin, pero un grupo hizo oídos a la misma. De esta comunidad nacería luego Bitcoin Cash, una bifurcación de Bitcoin que es compatible con los protocolos establecidos en Bitcoin Unlimited y Bitcoin XT.

SegWit

SegWit es la contracción de Segregated Witness o Testigo Segregado, es una mejora a Bitcoin presentada en conjunto por la empresa Blockstream y el equipo de desarrollo del cliente Bitcoin Core. Este soft fork, fue propuesto en uno de los BIP, concretamente bajo el BIP-141, con el nombre de “Segregated Witness (Capa de Consenso)”.

El objetivo de SegWit era ayudar a mejorar la capacidad de escalabilidad de Bitcoin y resolver un problema grave con la maleabilidad de las transacciones en Bitcoin. Al ser un soft fork, dichos cambios no rompían con el protocolo actual de la red y podrían aplicarse prácticamente sin riesgos.

Sin embargo, SegWit no ha cumplido del todo con su promesa de mejorar la escalabilidad de Bitcoin, y esto ha servido para que la comunidad ataque la propuesta.

SegWit2x

SegWit2x fue otra propuesta de escalabilidad en Bitcoin que nació del conocido Acuerdo de New York. Esta que tenía como objetivo aplicar la propuesta de SegWit y al mismo tiempo aumentar el tamaño de bloque en Bitcoin a 2 MB. La presentación de SegWit2x fue fuertemente controversial.

Por un lado, se denunciaba que era un intento de las empresas y propietarios de grandes negocios de Bitcoin de manipular el desarrollo de Bitcoin. Pero por el otro, más del 80% de los mineros de Bitcoin se mostraron de acuerdo con aplicar dicho hard fork. Pese a ello, los desarrolladores de Bitcoin Core se mantuvieron inamovibles y no aplicaron los cambios necesarios para llevar a cabo dicho hard fork.

El proyecto terminaría de caer en desgracia cuando quienes apoyaban SegWit2x incluyeron cambios en el código de su nodo que afectan negativamente el funcionamiento de la red Bitcoin. Algo que llevó a que la comunidad terminara dándole la espalda.

Lightning Network

Lightning Network o LN como se le conoce, nace de una propuesta realizada por Joseph Poon y Thaddeus Dryja. Esta busca resolver de forma única el problema de escalabilidad de Bitcoin. Sin embargo, Lightning es considerada por sus desarrolladores como una red en fase alpha de desarrollo. Y aunque es usable al día de hoy, se recomienda participar en ella con cuidado. Especialmente a la hora de manejar grandes sumas de dinero dentro de la misma.

Otra propuesta de escalabilidad como Lightning Network es Lumino Network, de IOV Labs (anterior RSK Labs). Lumino es una solución de tercera capa, compatible con Lightning Network y que está centrada en ofrecer escalabilidad de pagos dentro del ecosistema integrado de RSK. El ecosistema de RSK incluye la capacidad de desplegar smart contracts y otras funcionalidades avanzadas que se apoyan sobre la tecnología de Bitcoin.

Relacionado: ¿Qué es Lightning Network y cómo funciona?

4.

El futuro de la escalabilidad en Bitcoin

Tal como vemos el futuro de la escalabilidad de Bitcoin pasa por seguir desarrollando tecnologías que nos permitan mejorar sus prestaciones. En la actualidad, los desarrolladores de Bitcoin apuestan fuertemente por el crecimiento de la Lightning Network, para habilitar pagos instantáneos y micropagos con bajas comisiones.

Pero al mismo tiempo, los desarrolladores de Bitcoin siguen mejorando el protocolo interno de Bitcoin para mejorar la escalabilidad en cadena. Desarrollos como MAST, las firmas Schnorr y las Transacciones Confidenciales apuntan a mejorar no solo la privacidad de Bitcoin, sino también a brindar nuevas funcionalidades y capacidad para escalar. Al mismo tiempo, muchos desarrolladores también sopesan el aumentar el tamaño de los bloques en un momento en el que la red y realmente no pueda soportar la carga de trabajo que se le imponga, algo que por el momento no ha llegado. Y es que pese a que en ocasiones la red Bitcoin está en su máximo, dicha situación nunca se ha alargado tanto en el tiempo como para crear que la red ha alcanzada realmente su límite.

En tal sentido, podemos estar seguro que Bitcoin irá escalando a medida de las necesidades de la red, la comunidad es consciente de esto, y al mismo tiempo trabaja para brindar soluciones a este problema desde distintos frentes. Después de todo, la finalidad de Bitcoin es la de convertirse en dinero P2P para todo el mundo.