Cuando el 14 de julio de 2010 Satoshi Nakamoto introdujo el cambio en el código de Bitcoin que limitaba el tamaño de los bloques a 1 MB no dio explicaciones. Sin embargo, a partir de ese momento se desencadenó un debate sobre la escalabilidad del sistema que persiste hasta hoy.
Uno de los episodios más importantes sobre el futuro de Bitcoin ocurrió el 1 de agosto de 2017, cuando la actualización SegWit (Segregated Witness o testigo segregado) finalmente fue aprobada por la mayoría de los nodos de la red, a través de la primera Bifurcación Suave Activada por el Usuario (UASF por sus siglas en inglés). Esto significó que el cambio propuesto para el protocolo solo podía hacerse realidad si la mayoría de los nodos de la red llegaban a un consenso.
Este día conmemora la soberanía del consenso de la comunidad de Bitcoin y por esta razón se denomina Bitcoin Independence Day o Día de la Independencia de Bitcoin.
Representó el punto final de un enfrentamiento entre desarrolladores, mineros, organizaciones y empresas que debatían sobre la posibilidad de que cambiara la estructura de Bitcoin, a través de un incremento en el tamaño de los bloques. Este periodo de enfrentamiento se conoce como la guerra de los bloques.
El primer paso para escalar Bitcoin
SegWit es una actualización de Bitcoin propuesta por primera vez en 2015 por el Dr. Pieter Wuille, un prolífico y determinante desarrollador de Bitcoin Core quien trabajó durante un año en la mejora del código, junto a Erik Lombrozo y el Dr. Johnson Lau. Permite separar las firmas (que prueban quién posee o puede gastar determinados bitcoins) de las transacciones en cada bloque.
En otras palabras, las firmas se mueven a un nuevo campo del bloque denominado testigo. Esto aumentó el tamaño del bloque de manera virtual hasta 4 MB (3 mil transacciones en promedio) sin aumentar el límite original de bloque de 1 MB.
Además, SegWit corrigió un error y evita la maleabilidad de las transacciones, que era un vector para ataques de denegación de servicio. SegWit es la base de adelantos técnicos como la red Lightning, que permite intercambiar BTC de manera rápida y económica. La eficiencia de la actualización optimizó el sistema de intercambio y abarató el costo de las comisiones que los usuarios pagan.
Y no todo se trata del tamaño de los bloques, la seguridad, o lo increíble que es SegWit, pues también es la piedra angular de Taproot, que hoy en día protagoniza algunos de los experimentos más interesantes (e incluso polémicos) de todo el ecosistema: Ordinals, un protocolo que permite inscribir imágenes, video, audio, texto y contenido en otros formatos en el archivo inmutable de Bitcoin; tokens BRC-20, BRC-21 o BRC-69. Y esto es solo un vistazo de lo que en el futuro se podría hacer con los contratos inteligentes que son posibles gracias a Taproot.
La guerra de los bloques
Mucho antes de que estallara la guerra, ya existía una cierta preocupación sobre si la red y la estructura de los bloques serían capaces de responder ante un potencial crecimiento del número de usuarios y transacciones. Jeff Garzik, quien colaboró en el desarrollo en los primeros años, intentó introducir un parche para aumentar el límite del tamaño de bloque en octubre de 2010.
En la discusión de Bitcoin Talk donde varias personas debatían la propuesta, Satoshi Nakamoto le sugirió a Garzik que no lo hiciera, porque haría que su nodo fuese incompatible con la red.
“Podemos introducir un cambio si nos acercamos a necesitarlo”, sentenció. La principal preocupación del creador de Bitcoin era que un cambio de ese tipo podría crear un riesgo de compatibilidad entre distintos clientes o softwares para ejecutar Bitcoin.
Puede comenzar a estar en versiones muy avanzadas, por lo que cuando alcanza ese número de bloque y entra en vigencia, las versiones anteriores que no lo tienen ya están obsoletas.
Cuando estamos cerca del número de bloque de corte, puedo poner una alerta a las versiones anteriores para asegurarme de que sepan que tienen que actualizar.
Satoshi Nakamoto, creador de Bitcoin.
Lo cierto es que Bitcoin nació sin un límite en el tamaño de los bloques; su creador Nakamoto introdujo el parámetro en julio de 2010 sin dar mayores explicaciones. Mucho tiempo después, Adresen respondía a la intriga, con el argumento de que posiblemente el límite elegido servía para evitar ataques de denegación de servicio demasiado económicos o ataques de amplificación, donde el atacante congestiona la red. También, es probable que Nakamoto estuviese anticipando un crecimiento desproporcionado del archivo de Bitcoin o blockchain, que sería restrictivo para usuarios de pocos recursos.
Viajemos en el tiempo, desde aquel momento. En 2015 Gavin Adresen, uno de los primeros colaboradores de Nakamoto, y Mike Hearn propusieron Bitcoin XT, un protocolo que tendría un límite de tamaño de bloque de 8 MB y que solo podría ejecutarse con una bifurcación dura, un cambio de protocolo que no sería compatible con versiones anteriores y que tendría que llevarse a cabo por la mayoría de los mineros de la red. Quizá aquí comenzó la guerra.
El último boss de la guerra
Aquí la historia se vuelve intrincada. Introducido por primera vez en el código de Bitcoin en 2016, SegWit seguía un cronograma programado que dependía de ciertas condiciones para su activación o rechazo: durante un plazo de aproximadamente un año, el 95% de los mineros de la red tenían que llegar a un consenso. Sin embargo, aquí es donde los personajes principales comienzan a mostrar sus verdaderos rostros.
Por un lado, un grupo de personas, conformado principalmente por desarrolladores (y, en menor medida, minero) defendían las ventajas técnicas de la actualización: una red más segura, rápida, eficiente y con comisiones más baratas. Frente a ellos, un grupo dominado por la presencia de mineros, que sin duda no estarían entusiasmados de ver un descenso en los ingresos que generaban las comisiones de red.
Quedaba poco tiempo para que el plazo sobre la activación de SegWit culminara, cuando el desarrollador, y por aquel entonces CTO de Blockstream, Gregory Maxwell alertó a la comunidad sobre una vulnerabilidad de Bitcoin. Luego de hacer ingeniería inversa en un chip ASIC de Bitmain, el principal fabricantes de equipos ASIC, descubrió que a través de un mecanismo bautizado como ASICBoost, los chips de Bitmain podían incrementar el potencial de sus máquinas hasta 20% si aprovechaban el error en el algoritmo de minería.
El equipo de Bitmain negó que haber aprovechado la vulnerabilidad a su favor, pero se especuló que el fabricante incluía el ASICBoost en sus chips. Nunca se demostró que hubiesen usado la técnica en sus operaciones. Sin embargo, Bitmain
De pronto, que los mineros no aprobaran SegWit comenzaba a tener sentido. Si se activaba la actualización, se anularía la capacidad de ASICBoost para incrementar el rendimiento de las máquinas, como comprobaron Maxwell y Lombrozo con distintos análisis.
Como si se tratara del as bajo la manga, en mayo de 2017 apareció un nuevo problema en el tablero, con la conformación del Acuerdo de Nueva York, una coalisión presidida por Digital Counrrency Group, fundada por el empresario Barry Silver. En una reunión, que puede catalogarse como clandestina, puesto que los participantes solo accedieron por invitación, un grupo de las principales compañías de mineros liderados por Bitmain (prácticamente el 80% del poder de hash de Bitcoin) acordaron trabajar en una agenda específica: ejecutar una bifurcación dura para activar SegWit e incrementar el tamaño de los bloques a 4 MB.
Lo que se conoció como SegWit2X era un plan que bajo la mesa buscaba el control del desarrollo de Bitcoin, debido a que con una bifurcación dura las versiones anteriores del software serían incompatibles con la nueva versión. Esto significaba que los desarrolladores de Bitcoin Core y sus numerosos proyectos de investigación hubiesen podido ser borrados de un plumazo, otorgándole a un reducido grupo de programadores, adheridos a los intereses de una élite de compañías, el privilegio de ejecutar cambios en el protocolo de Bitcoin. Lo cierto es que el proyecto podría renacer, pero estos movimientos buscaban, a través de los métodos de consenso, legitimación.
Bitcoin Core vs Bitmain
En cierto punto, cada día que pasaba antes del 1 de agosto la guerra parecía menos una disputa por el tamaño de los bloques y más una guerra por el control de Bitcoin.
Pese a todos los intentos de la élite de compañías que intentaron adueñarse de Bitcoin, la guerra estaba ganada muchos meses antes de la activación de SegWit. La razón es que, cual pieza de ajedrez, los desarrolladores de Bitcoin Core habían hecho una jugada maestra en febrero de 2017, no exenta de riesgo: con la introducción de la Bifurcación Suave Activada por los Usuarios, los nodos y wallets ejercieron su poder al presionar a los mineros con un argumento simple: rechazaremos sus bloques si no envían una señal de aprobación para SegWit.
Recordemos que la activación de SegWit tenía un cronograma programado: primero los nodos señalaban su apoyo o rechazo de la actualización y luego, en distintas etapas, el protocolo activó el cambio en el código. La señalización de SegWit fue absoluta.
De muy poco sirvió el plan de Bitmain de forzar una Bifurcación Fuerte Activada por los Usuarios (UAHF por sus siglas en inglés). Cierto grupo de mineros se encontró entre la espada y la pared, porque la decisión contraria los hubiese puesto en riesgo de perder ganancias, puesto que las personas pueden elegir no usarlos.
Como suele ocurrir, todo final siempre implica un comienzo (o varios). Con la elección de SegWit, y el lanzamiento de la versión 0.15.0 de Bitcoin Core, la red se bifurcó solo para aquellos nodos que implementaron un aumento de tamaño de bloque. Así surgió Bitcoin Cash, un proyecto que tiene una moneda con un cierto mercado, pero que no proporcionó las soluciones técnicas que prometía, quizá porque en aquel momento no era la respuesta a un problema técnico real.
A partir de Bitcoin Cash, surgieron otras redes de criptomonedas, en parte porque en las relaciones de sus desarrolladores e inversionistas nunca hubo consenso sobre cómo manejar el poder o quién lo ejercería.
El ejemplo de Bitcoin es una muestra sobre cómo el consenso es un equilibrio entre las fuerzas que ejercen cada uno de los participantes de la red, cada pilar de poder, que de alguna manera excluye la posibilidad de que una sola persona o grupo decida por el resto.