Por Haipo Yang (fundador y CEO de ViaBTC, uno de los pools de minería Bitcoin más grandes del mundo).
El 10 de Octubre de 2016, justo después de finalizado “Scaling Bitcoin Milán” (la tercera en una serie de conferencias en torno al tópico de escalar la red Bitcoin), tomé la decisión de cambiar el cliente Bitcoin que usa ViaBTC de Bitcoin Core a Bitcoin Unlimited. Esta decisión no fue tomada a la ligera; no creo tener el derecho de imponer mis visiones personales a los usuarios de mi pool. Pero luego de consultarlo con todos los usuarios más grandes, finalmente tomé esta decisión con su abrumador apoyo.
La decisión de si incrementar o no el tamaño de los bloques de transacciones más allá de 1 MB es en última instancia tomada por los mineros, pero en el caso específico de este asunto, son de hecho los dueños de los pools, no los operadores de hardware, quienes tienen la experiencia necesaria para tomar esa decisión. Como estamos viendo ahora, y como hemos visto en el pasado, resulta que a los mineros (que son aquellos que poseen el hardware) de hecho no les importa lo suficiente el asunto como para dar un voto que influya en posibles cambios al protocolo Bitcoin. Yo entiendo que la decisión de cuál software usar es en gran medida responsabilidad de los pools de minería, y que es incorrecto esperar que los mineros o los desarrolladores de Bitcoin decidan un curso de acción.
Actualmente, en ViaBTC estamos anunciando un voto a favor de bloques de 2 MB en el coinbase de los bloques que minamos, a pesar de que continuaremos produciendo bloques con un tamaño máximo de 1 MB –siguiendo las reglas de la red bitcoin actualmente aceptadas por el consenso Nakamoto–. Basados en las pruebas que hemos realizado, sabemos que la red es totalmente capaz de manejar bloques de 2 MB sin bajas apreciables en el rendimiento, lo que indica que los miedos respecto a un incremento de los bloques de 2 MB deben ser superados. El cambio inicial a la aceptación de bloques más grandes requerirá un fork «duro». Sin embargo, el cambio a Bitcoin Unlimited es bueno para la salud de la red a largo plazo, ya que finalmente aporta una solución definitiva y elimina cualquier necesidad futura de usar forks «suaves» o «duros» para alterar el tamaño de los bloques.
También hemos desactivado intencionalmente el anuncio por defecto en Bitcoin Unlimited de BIP109, porque no creemos que BIP109 sea la solución correcta para cambiar el tamaño de los bloques. Espero que los desarrolladores de Bitcoin Unlimited puedan eliminar BIP 109 como configuración predeterminada de su software y así evitar futuros malentendidos.
Desde el momento en el que ViaBTC minó su primer bloque de Bitcoin Unlimited, ha habido una reacción abrumadora dentro de la comunidad Bitcoin: la mayoría se ha expresado a favor; pero también ha habido controversia y un montón de conjeturas. Por tanto, siento la necesidad de escribir acerca de mi decisión con el fin de aclarar algunos de los varios conceptos errados que he leído, así como de explicar a fondo mi punto de vista.
Por qué Bitcoin necesita bloques más grandes
En pocas palabras: si el tamaño de los bloques no se incrementa, el crecimiento de Bitcoin se detendrá al nivel de adopción que hay hoy en día y Bitcoin pasará a ser considerado un experimento fallido. Esto no significa que las criptomonedas en sí mismas serán consideradas un experimento fallido. Ciertamente, existirán otras criptomonedas capaces de capitalizar la creciente demanda que Bitcoin actualmente es incapaz de satisfacer. Bitcoin está aún en sus primeras etapas de desarrollo. A pesar de que hemos visto un crecimiento y una adopción increíble a lo largo de los ocho años transcurridos desde su creación, aún hay un largo camino que recorrer. Sin embargo, Bitcoin se ha topado con una barrera que impide su crecimiento y la incorporación de nuevos usuarios. Esta barrera está impuesta explícitamente por el tamaño artificial de 1 MB para los bloques. Desde mi perspectiva, esta negativa a evolucionar es equivalente a un suicidio de la red.
El incremento innecesario de las tarifas requeridas para enviar bitcoins es inaceptable, y llevará a los usuarios a otras criptomonedas que les permitan realizar transacciones más baratas. Este éxodo de usuarios del ecosistema de Bitcoin es un golpe fatal a nuestro desarrollo como comunidad. Y no estoy conjeturando –este es el estado actual de Bitcoin–. Otro aspecto que es continuamente pasado por alto por aquellos que se oponen al incremento en el tamaño de los bloques es que sin una capacidad creciente on-chain (dentro de la cadena de bloques), el modelo de negocio de los mineros, quienes aseguran la red bitcoin contra posibles ataques, será destruido. Si minar deja de ser una actividad rentable, y si no damos pie a condiciones que permitan crear más transacciones dentro de la cadena de bloques, la red perderá el enorme poder de cómputo que la mantiene segura. Esto garantiza el fracaso de Bitcoin como protocolo y también como moneda.
Por qué “Segregated Witness” es una mala idea
Un tópico repetido a menudo es que la introducción de Segregated Witness (Testigo Segregado) proveerá mayor seguridad y un incremento efectivo del tamaño de los bloques a 1,7 MB, y que por ende debe ser apoyado. Esto no es más que una forma de “confundir el bosque con los árboles”. Un “incremento efectivo” a 1,7 MB fracasa a la hora de resolver el problema fundamental y todo lo que hace es retrasar la muerte de Bitcoin. La activación de SegWit en la red no significa que todos los usuarios de Bitcoin inmediatamente podrán aprovechar sus beneficios, pues será necesario al menos un año para que el “tamaño efectivo de los bloques” se expanda a 1,7 MB. Esto hace muy poco para aliviar la congestión que sufre actualmente la cadena de bloques. Además, la introducción de Segregated Witness implica una cantidad enorme de deuda técnica que requerirá alterar fundamentalmente la estructura de las transacciones, así como que todos los nodos, pools de minería, exploradores de bloques, billeteras, cajeros automáticos de bitcoins, casas de cambio y otras aplicaciones realicen una reestructuración completa de su software.
Los enormes costos externalizados de implementar Segregated Witness superan con mucho el costo de implementar un fork duro, y todo eso solo por un incremento “efectivo” de 0,7 MB en el tamaño de los bloques. No olvidemos que Bitcoin Core ha insistido en implementar SegWit con la intención de aplicar una medida que evitase usar un fork duro para incrementar la capacidad de la red Bitcoin. La activación de SegWit le permitirá a Bitcoin Core mantener su postura de rechazar un verdadero incremento del tamaño de los bloques, y la procesión fúnebre de Bitcoin continuará.
Por qué “Lightning Network” no es una solución suficiente al problema de la escalabilidad
Primero que todo, los casos en los que Lightning Network sería realmente útil son bastante limitados. Pregúntate a ti mismo por qué la gente usa Bitcoin: ¿es porque quieren tiempos de confirmación rápidos, o porque quieren usar una moneda descentralizada que no está controlada por ninguna organización? Bitcoin sacrifica velocidad y eficiencia en el uso de recursos por flexibilidad y seguridad, y para quienes comprenden esto los tiempos “lentos” de confirmación no son de ninguna manera problemáticos. En segundo lugar, caracterizar las transacciones en Lightning Network como “transacciones Bitcoin” es falaz: son solo transacciones Bitcoin en el sentido de que un sitio de intercambio que altera balances en su base de datos interna está realizando “transacciones Bitcoin”.
El despliegue de la Lightning Network, de hecho, hace que el uso de Bitcoin sea aún más problemático, pues llevará a la creación de focos de actividad centralizados donde los usuarios tendrán que estacionar sus monedas para poder tenerlas disponibles al momento de realizar una transacción. Esto apenas difiere del sistema bancario actual del cual se supone que Bitcoin es un escape. Finalmente, la noción de que Bitcoin debe ser una “capa de liquidaciones” es ridícula. Primero y principal, Bitcoin es una moneda digital; su potencial como red de liquidaciones es secundaria a sus propiedades monetarias. Cuando Bitcoin pierde sus atributos monetarios, pierde también toda utilidad como red de liquidaciones. Para dejarlo claro, la Lightning Network es una interesante innovación, pero decir que se convertirá en el principal método para enviar pequeñas fracciones de bitcoin es, honestamente, absurdo.
Por qué apoyo a “Bitcoin Unlimited”
Como comunidad, hemos desperdiciado años debatiendo la trivial cuestión técnica del tamaño de los bloques. Es hora de implementar una solución definitiva para solucionar la cuestión del límite al tamaño de los bloques. Codificar a nivel de protocolo si los bloques deberían ser pequeños o grandes no es una manera inteligente de encarar el problema y derivará en aún más conflictos en el futuro. Debemos dejar que el libre mercado decida la cuestión del tamaño de los bloques. Este se ajustará para seguir el ritmo de los avances tecnológicos y se adaptará a los recursos disponibles para hacer funcionar la red. La decisión de Bitcoin Unlimited de facilitar a los mineros la configuración del límite al tamaño de los bloques garantiza que este se adaptará a lo que la red Bitcoin sea capaz de manejar de manera segura.
Bitcoin Unlimited le permite a los mineros fijar el tamaño máximo de bloque a producir y el tamaño máximo que están dispuestos a aceptar, con ambas señales incluidas en el campo del coinbase (transacción correspondiente a la recompensa por bloque hallado de cada bloque). Si un nodo descubre que una cadena con bloques más grandes ya está cuatro bloques (la configuración por defecto) por delante de lo que está la cadena en la que él se encuentra en ese momento, automáticamente cambiará y reconocerá esta cadena más larga como la válida en concordancia con las reglas del consenso Nakamoto. Esto hace mucho más fáciles los futuros ajustes en el tamaño de los bloques y evita que se vuelva un motivo de disputa como lo ha sido en los últimos dos años.
Por qué un fork duro no representa una amenaza
Se dice que el peligro más grande de un fork duro es que dará lugar a un escenario en el que habrá dos cadenas de bloques y por ende dos versiones diferentes de Bitcoin. Pero hasta donde yo sé, en el debate de la escalabilidad una enorme mayoría está de acuerdo en que el tamaño de los bloques deberá incrementarse tarde o temprano, mientras que la mayor discordancia en las opiniones gira en torno a cuál método se debe usar para lograr esto.
La razón por la que el reciente fork duro de Ethereum produjo dos versiones diferentes de Ethereum fue que una cualidad fundamental del registro de transacciones, concretamente su inmutabilidad, había sido cambiada de forma permanente. Además, debido a que el periodo de ajuste de la dificultad en Bitcoin es de dos semanas, con diez minutos por bloque, la rama de la cadena que tenga la mayor parte del poder de cómputo tiene prácticamente garantizada una victoria decisiva; las probabilidades que tiene un fork de producir dos tipos de Bitcoin diferentes son muy bajas. La cadena minoritaria tendrá tiempos de producción de bloques mucho más lentos, y los mineros inteligentes se cambiarán a la cadena mayoritaria para evitar pérdidas en su labor de minería. La única opción racional para un minero será unirse a la cadena apoyada por la mayoría economica.
Como debe ser implementado el fork duro
Por cómo está escrito Bitcoin Unlimited, no existe un umbral que establezca cuándo se inicia un fork duro. En teoría, un fork duro puede ser iniciado en cualquier momento en que la mayor parte del poder de cómputo esté de acuerdo. Con Bitcoin Unlimited, se requiere una mayoría de mineros para decidir que un fork duro ocurrirá, y en qué momento.
Primero, ¿bajo qué circunstancias debe ser iniciado un fork duro? Recomiendo el límite de 75% de Bitcoin Classic. En otra palabras, un fork duro será iniciado una vez que el 75% del poder de cómputo de la red esté apoyando Bitcoin Unlimited. Si el umbral del consenso es demasiado alto, llegar a tal consenso será imposible, pues un solo pool de minería podría alcanzar para vetar el cambio a toda la red. Un límite de 75% es perfectamente adecuado para realizar un fork duro de manera segura.
Segundo, ¿cómo decidimos el momento para iniciar el fork duro? Mi recomendación es que el fork sea gatillado al menos un mes después de que el límite de activación del 75% haya sido alcanzado. Esto le dará a la comunidad una ventana de tiempo para actualizar el software de los nodos antes del cambio. El fork debe ser programado para que ocurra inmediatamente después del ajuste de dificultad de la red. Esto hace económicamente inviable que la comunidad siga con la cadena minoritaria, y elimina el riesgo de que surjan “dos Bitcoins”. Lo descrito no es ni más ni menos que el consenso Nakamoto trabajando tal y como fue concebido.
En conclusión
Mi valoración de las diferentes propuestas para escalar el sistema presentadas por Bitcoin Core y Blockstream en “Scaling Bitcoin Milan” es que se trata de reacciones autodestructivas a un problema que tiene solución. Pareciera que, por razones que desconozco, quieren destruir las propiedades monetarias únicas de Bitcoin y el modelo de negocio de los mineros que proveen seguridad a la red Bitcoin. Los intereses de los mineros de Bitcoin y los usuarios de a pie están fuertemente alineados. Trabajando juntos e identificando intereses en común podemos dar lugar a un renacimiento de Bitcoin y beneficiar a todas las partes involucradas. Trabajando juntos como una comunidad unida de desarrolladores, mineros, usuarios y comerciantes podemos demostrarle al mundo que la red Bitcoin puede ser adaptable, antifrágil y resistente a la centralización.