Todas las claves sobre el debate de los bloques de Bitcoin

¿Eres nuevo en Bitcoin y has leído en tu periodico habitual que Bitcoin ha fracasado? ¿O que el desarrollador líder de Bitcoin abandona el experimento Bitcoin? ¿O tienes unos cuantos bitcoins y no entiendes lo que ocurre con el debate del tamaño de los bloques? ¿O eres un bitcoiner apasionado y te pierdes en el enredo técnico del tamaño de los bloques? En OroyFinanzas.com queremos que todos estos perfiles de personas puedan entender qué pasa con el tamaño de los bloques, y qué significa para Bitcoin, así como las consecuencias que puede tener para el futuro de la primera criptomoneda del mundo. ¿Nos acompañas?

Escalabilidad de Bitcoin por su creciente popularidad

Si algo es indudable es que la popularidad de Bitcoin ha crecido exponencialmente durante los últimos siete años. Allá en 2009, cuando Satoshi Nakamoto creó el primer bloque con las primeras transacciones de bitcoins (Bloque Génesis), contadas personas en todo el planeta conocían de su existencia. Hoy, 28 de enero de 2016, la cantidad de personas que han oído hablar de Bitcoin en todo el mundo son incontables. Con mayor o menor conocimiento de Bitcoin, lo cierto es que los usuarios de Bitcoin también han crecido, y lo han hecho al amparo de una industria cada vez más potente. Paralelamente esta popularidad hace que la cantidad de transacciones Bitcoin sean cada vez más numerosas. Y como consecuencia surge la necesidad de plantearse la capacidad de escalabilidad de Bitcoin. Pero, ¿por qué ahora?

Aunque el proceso es más complejo, la idea básica es la siguiente: las transacciones Bitcoin se agrupan en bloques. Cada bloque va añadiéndose a un libro de contabilidad público y descentralizado del que existen miles de copias distribuidas en los ordenadores de miles de usuarios. Todas las copias de este libro de contabilidad se actualizan a la vez, y es lo que conocemos como cadena de bloques (blockchain). Para que un bloque sea añadido a la cadena de bloques, los mineros Bitcoin deben hacer labores de verificación a través de unoscomplicadísimos cálculos matemáticos, tras los que sólo un minero obtendrá el resultado correcto. El minero que consigue resolverlo el primero, envía ese bloque a la red, y automáticamente la red de ordenadores al completo verifica que los cálculos son correctos y comienza a agrupar nuevas transacciones en un nuevo bloques. Cada bloque, de media, se resuelve cada 10 minutos. Y así 24 horas al día, los siete días de la semana.

Por tal y como Satoshi Nakamoto diseñó el software Bitcoin, el tamaño de cada bloque de transacciones tiene que ser igual o inferior a 1MB, para que sea reconocido como válido. Cualquier bloque que supere ese tamaño es automáticamente considerado inválido por la red. Y como las transacciones Bitcoin son como archivos digitales (usaremos este término para entenderlo, aunque es más complejo que esto) cada una de ellas ocupa un espacio. No todas las transacciones ocupan lo mismo, y no depende de la cantidad que se transfiere sino del tipo de transacción que es. Pero podemos decir que de media, una transacción ocupa 170 Bytes. Teniendo en cuenta que un Megabyte (MB) son 1.048.576 Bytes, la cantidad de transacciones que caben como máximo en un bloque serían algo menos de 6.200.

Por qué si todos ven necesaria la escalabilidad de Bitcoin, existe un debate sobre la ampliación del tamaño de los bloques

Cuando Satoshi Nakamoto programó el código, este límite no era un problema. Sin embargo, en sus discusiones con otros desarrolladores, sí dejaba entrever que este límite podría cambiarse en un futuro, cuando el uso se extendiera. Hasta hace muy poco el límite no era un problema tampoco. Pero con el aumento de la popularidad de Bitcoin y su uso, cada vez con más frecuencia los bloques Bitcoin están llegando al límite de su capacidad. Por lo que aumentar el tamaño de los bloques está convirtiéndose en una imperiosa necesidad. Una necesidad de la que, por otra parte, nadie duda. Entonces, ¿por qué supone un problema?

Bitcoin no es una empresa, no es un organización, y tampoco tiene un líder que tome las decisiones finales… Bitcoin es un proyecto de código abierto en el que las decisiones referentes al código se han tomado tradicionalmente de forma consensuada por la comunidad de desarrolladores que participan en su desarrollo, así como de otros miembros del ecosistema, como ya explicamos en un artículo. Y durante este tiempo la gobernabilidad de Bitcoin se ha puesto en entredicho.

Ampliar el tamaño de los bloques, en sí no resultaría técnicamente complicado, ya que se podría hacer cambiando una simple línea de código. El debate, sin embargo, es consecuencia de que este cambio, así como la forma de implementarlo, podría tener implicaciones en otros aspectos de la red, por ello existen argumentos a favor y en contra de su aumento. Todo ello ha provocado que en la comunidad de desarrolladores haya opiniones contrapuestas. Además, la industria que ha nacido y que sigue creciendo alrededor de Bitcoin, con una capitalización de mercado que actualmente ronda los 6.000 millones de dólares para todos los bitcoins emitidos (cabe recordar que la cantidad de bitcoins que existirá está limitada a poco menos de 21 millones y todos los bitcoins estarán emitidos en 2140. A día de hoy se han emitido exactamente 15.136.875 bitcoins) y con una inversión de capital de riesgo que se estima que en 2015 ha alcanzado los 1.000 millones de dólares, tiene también intereses contrapuestos en la forma de ejecutar este aumento.

A pesar de ello, si por algo se caracteriza el ecosistema Bitcoin, es por el incansable trabajo que muchos de los miembros del ecosistema hacen para buscar soluciones técnicas a los problemas que van surgiendo. Y en el tema del tamaño de los bloques ha habido también una enorme cantidad depropuestas concretas para ampliar el tamaño de los bloques de diferentes maneras, así comopropuestas para ampliar la escalabilidad de Bitcoin a largo plazo sin alterar el tamaño de los bloques.

Sin embargo, la cuestión del tamaño de los bloques ha sido la primera vez en la historia de Bitcoin que ha habido una división de opinión tangible en el grupo de desarrolladores principales del Bitcoin Core, que ha desencadenado en que algunos de ellos, entre los que está Gavin Andresen, el que fuera Lead Developer tras el abandono de Satoshi Nakamoto hasta 2014, haya colaborado en el desarrollo y la promoción de otras alternativas al código fuente de Bitcoin (Bitcoin Core), concretamente enBitcoin XT y Bitcoin Classic que proponen una ampliación del tamaño de los bloques a través de hard forks. Sin embargo, en el lado contrapuesto, están la mayoría de desarrolladores principales de Bitcoin Core, que proponen la introducción de cambios a través de soft forks.

Precisamente esta división de opiniones es lo que provocó la tormenta de titulares a nivel mundial sobre la muerte o fracaso de Bitcoin puesta en boca de un desarrollador y pensador (Mike Hearn) que con mucho ruido mediático decidía abandonar Bitcoin. Y poner perspectiva a esto es necesario. Hearn no ha sido nunca el desarrollador líder de Bitcoin. Ha participado en el desarrollo de Bitcoin, pero está lejos de ser uno de los desarrolladores que más actualizaciones ha implementado. Lo que Hearn sí ha conseguido, en comparación con otros de sus colegas, es que ha mantenido un perfil muy mediático. Y su participación en el desarrollo de Bitcoin XT, así como, su incuestionable apoyo a un inminente aumento del tamaño de los bloques, sólo incrementó esta enorme visibilidad mediática. Lo que es innegable es que Hearn señalaba en su texto de despedida importantes aspectos que afectan a Bitcoin y que deben servir de reflexión. Que Bitcoin Core esté trabajando activamente para mejorar la comunicación con la comunidad, es una pequeña prueba de que su análisis no ha caído en saco roto. Pero lo que también resulta incuestionable, es que, a pesar del intenso debate y la división de opiniones en torno al tamaño de los bloques que existe en la comunidad, parece que lo que la comunidad Bitcoin comparte al unísono es que Bitcoin está lejos de morir.

Las tres propuestas que focalizan actualmente el debate del aumento del tamaño de los bloques Bitcoin

En cualquier caso, el debate sobre el aumento del tamaño de los bloques lleva varios meses en primera línea, y la evolución del mismo ha sido constante, como hemos ido analizando en OroyFinanzas.com durante todo este tiempo. Pero a día de hoy, podríamos decir que el debate se ha focalizado en tres propuestas (las explicaremos por orden cronológico de aparición):

1. Testigos Segregados (Segregated Witness) – más capacidad sin ampliar los bloques

Testigos Segregados (Segregated Witness) es una propuesta presentada por Peter Wuille a principios de diciembre 2015, en la que plantea la posibilidad de variar los datos que incluyen las transacciones Bitcoin actualmente, de tal manera que el espacio que éstas ocupan en la cadena de bloques (blockchain) sea bastante más reducido (aproximadamente un 75% inferior) lo que, a su vez, incidiría en una mayor cantidad de transacciones incluidas en cada uno de los bloques, que actualmente tienen un tamaño de 1MB, y que pasarían a ser equivalentes a 4MB sin que hubiera que cambiar el tamaño de los bloques.

Esta propuesta, que ha recibido una gran acogida en la comunidad al completo, se implementaría a través de un soft fork y está actualmente totalmente priorizada en el desarrollo oficial del Bitcoin Core, el código fuente de Bitcoin, tal y como explicábamos en el artículo titulado hoja de ruta del desarrollo de Bitcoin 2016: escalabilidad sin ampliar el tamaño de los bloques.

Sin embargo, si bien es una mejora que aportará enormes beneficios en la red, no sólo por el aumento de los bloques, sino por otras características adicionales, y en los que todos los desarrolladores coinciden, el tiempo que se tarde en implementarse (entre que se desarrolla, se incluye en una nueva versión del software y se activa en la red Bitcoin tras la actualización de todos los nodos) hace que algunos no vean esta implementación como la solución que la red necesita para resolver en breve el problema del tamaño de los bloques.

El código de Segregated Witness está actualmente en pruebas y se estima que esté listo para incorporarse al código del Bitcoin Core en abril 2016.

2. Bitcoin Unlimited – los usuarios configuran manualmente el tamaño de bloques

Bitcoin Unlimited es un fork del Bitcoin Core, es decir, una implementación más del código fuente de la criptomoneda (como Bitcoin XT y Bitcoin Classic), programado para que no exista un límite del tamaño de los bloques preestablecido, sino para que sean los propios usuarios los que manualmente configuren, cuando quieran, ese límite en sus nodos.

Bitcoin Unlimited nació a finales de diciembre 2015 y su desarrollador principal es Andrew Stone “theZerg”. Además, el proyecto cuenta con la activa participación de Peter R. Rizun.

Concretamente, la propuesta que presenta el código de Bitcoin Unlimited, es que no se introduzca un límite del tamaño de los bloques para que sea implementado a través de un hard fork (bifurcación dura). En lugar de eso, propone que sea el libre mercado, a través de los usuarios, los que manualmente configuran ese límite en sus nodos. La idea se basa en que los creadores de Bitcoin Unlimited confían en que de forma natural se encuentra un consenso sobre el límite determinado y esto sería posible a través de lo que en teoría de juegos se conoce como punto focal o punto Schelling.

Cabe destacar que de las tres propuestas que actualmente se discuten, Bitcoin Unlimited es la que menos atención está recibiendo, por lo que parece que, al menos de momento, su aceptación es minoritaria. De hecho, el número de nodos de la red que tienen instalado este software es de poco más de 100 de los más de 5.000 que tienen instalado el Bitcoin Core.

3. Bitcoin Classic – Bitcoin Core con bloques de 2MB

Bitcoin Classic es un fork de Bitcoin (como Bitcoin XT y Bitcoin Unlimited) que mantiene todas las características del Bitcoin Core, variando únicamente el límite del tamaño de los bloques de 1 MB a 2MB.

El software propone, por tanto, introducir el cambio del tamaño de los bloques a través de un hard fork.

Bitcoin Classic fue presentado en enero 2016 y cuenta con la participación entre sus desarrolladores de dos de los desarrolladores principales de Bitcoin Core (Gavin Andresen y Jeff Garzik), además de otros como Jonathan Toomim y Ahmed Bodiwala.

Por el momento, no existe la posibilidad de descargarlo, aunque la fecha para su lanzamiento se estima para finales de enero.

Desde que se hiciese pública su presentación, Bitcoin Classic ha atraído el interés de grandes empresas del ecosistema, y ha puesto de relevancia las divisiones en el ecosistema Bitcoin sobre la manera de implementar el aumento del tamaño de los bloques.

Resulta importante resaltar que tanto Bitcoin Unlimited como Bitcoin Classic parece que actualizarán su código paralelamente a las actualizaciones que se vaya incorporando en el Bitcoin Core, es decir, que una vez implementado Segregated Witness, también será implementado en los respectivos códigos de ambos forks, logrando con ello una mayor capacidad para la red Bitcoin, a través de esta disminución de información en las transacciones y a través de la ampliación del tamaño de los bloques.

Lightning Networks y Sidechains, en el horizonte de la escalabilidad de Bitcoin

Además de las tres propuestas que actualmente se debaten para ampliar la capacidad de la red Bitcoin, en el horizonte del desarrollo del Bitcoin Core están muy presentes otros dos proyectos (Lightning Networks y Sidechains o Cadenas Laterales) que permitirán ampliar la escalabilidad de la red. Sin embargo, para poder ser implementados, necesitan incorporarse cambios (todos ellos a través de soft forks) en el código del Bitcoin Core. Estos cambios, por otro lado, necesitan ser desarrollados, por lo que se trata de proyectos a futuro, y no inminentes.

En la hoja de ruta del desarrollo del Bitcoin Core, ya está planificado para su implementación en marzo 2016, el CheckSequenceVerify (CSV) a través de varios BIPs. CVS permitirá además una mejor implementación de Lightning Network y posibilitará las Sidechains.

1. Lightning Networks: canales de micropagos sin confiar en un tercero

Lightning Networks permitirá desarrollar una red de canales de micropagos (micropayment channels, en inglés) distribuidos en los que la mayoría de las transacciones Bitcoin se lleven a cabo off-chain, o fuera de la cadena de bloques, sin sacrificar la seguridad de la red ni a costa de confiar en un tercero.

Los canales de micropagos permiten realizar múltiples transacciones de forma segura sin que todas éstas queden registradas en la cadena de bloques, a excepción de la transacción inicial que da comienzo a dicho canal. Los canales de micropagos, no son ninguna novedad en Bitcoin y están en uso desde hace tiempo, pero siempre llevan implícita la participación de un tercero de confianza, que es la que se encarga de asegurar que, a pesar de que las transacciones no se registran simultáneamente en la cadena de bloques, se da por hecho que ello sucederá. Y la novedad que desarrolla Lightning Networks es que elimina los riesgos asociados a la necesidad de confiar en una contraparte.

Este sistema podría permitir que se llevasen a cabo “miles de millones de transacciones diarias” sin tener que estar incluidas en la cadena de bloques oficial de Bitcoin.

2. Sidechains o Cadenas Laterales: conjunto de cadenas paralelas dependientes de la cadena de bloques de Bitcoin

Actualmente en desarrollo, han sido creadas por la empresa Blockstream y fueron presentadas a finales de 2014. Las Cadenas Laterales o Sidechains proyectan la creación de un conjunto de cadenas de bloques paralelas a la cadena de bloques principal de Bitcoin, pero dependientes de la misma y que pueden operar con ella, así como, entre sí. Cada una de estas cadenas de bloques laterales podría tener funcionalidad diferentes a la de Bitcoin y por lo tanto añadirán multitud de funcionalidades, además de permitir también aumentar la escalabilidad de la red Bitcoin.

Fuente: OroyFinanzas.com