Bitcoin, debido a su esencia abierta y colaborativa, se caracteriza por sus debates públicos. Uno de los más famosos y constante es el del tamaño que deberían tener los bloques Bitcoin debido al crecimiento del ritmo de las transacciones que está desarrollándose en la red. ¿Has oído hablar de Bitcoin Core? ¿y de Bitcoin Classic? ¿quizá de Bitcoin Unlimited? Descubre cuáles son las propuestas con más recorrido y soporte para la escalabilidad de Bitcoin.
Core, Classic, Unlimited o la ya abandonada XT, son algunas de las propuestas más famosas que la comunidad está apoyando para llevar a Bitcoin a un nuevo nivel acorde al éxito y uso que está teniendo. Este tipo de propuestas conllevan actualizaciones grandes del software, lo cual es conocido técnicamente como «hard fork«. Implica que, una vez aceptada una de ellas de forma consensuada, todos los nodos la aplicarán para operar sobre la misma versión de Bitcoin y blockchain.
Son muchas las opciones y debates que se han derivado de este asunto… algunas de ellas incluso terminando en “peleas” apasionadas que en cierto modo serían más correspondientes a niños de 5 años, pero al fin y al cabo era predecible… es un tema delicado que puede marcar el futuro de Bitcoin, por lo que cada uno tiende a defender que su propuesta es la mejor idea para una mayor eficiencia.
Una de las cosas geniales que Bitcoin tiene es justamente esto, los debates. Aunque a veces puedan generar conflictos puntuales, aportan valor y comunidad constantemente. Esto es algo que otros sistemas cerrados y tradicionales no solo no entienden sino que, a veces, critican, lo ven como un defecto o simplemente no soportan debido a la cruda realidad que ello significa: una comunidad global trabajando de forma gratuita y apasionada en algo que les elimina del juego. Seguro que alguna nota de prensa has visto indicando el fin del Bitcoin por un debate abierto… ¿Cuantas veces ha muerto Bitcoin?
Como siempre, no entraremos en qué opción es mejor que otra o qué proyecto es mejor de cara al futuro, de lo que te vamos a hablar en este artículo es de una comparativa de bitcoin Core, Classic y Unlimited para que entiendas todas estas opciones de primera mano, qué son y por qué no, te decidas a crear un nodo de alguna de ellas.
Propuestas para el tamaño de los bloques Bitcoin
Bitcoin Core y la escalabilidad
Segregated Witness
Las transacciones Bitcoin incluyen uno o más «inputs» (entradas) que indican de dónde provienen los fondos y una o más «outputs» (salidas) que indican hacia dónde se dirigen y una firma que valida que el propietario tenía la capacidad de ejecutar la transacción.
El propósito de Segregated Witness propuesto por Pieter Wuille y que ya está en pruebas en la red testnet es el de añadir todas las firmas de transacción en el Merkle Tree del componente coinbase de la transacción.
El merkle tree se construye emparejando cada TXID con otros TXID y luego hasheándolos conjuntamente. Si el número de TXID es impar, la TXID que no tenga pareja se ordenaría con una copia de si misma.
¿Cómo ayuda Segwit con el límite de 1MB en los bloques?
Segregated Witness elimina la firma de las transacciones y las guarda en una estructura de datos separada. Gracias a este procedimiento el tamaño de la transacción se reduciría y podrían añadirse más transacciones en cada bloque. Justo el día 9 de abril, uno de los bloques de la testnet tenía un tamaño de 1.5MB.
Para Gavin Andresen, Segregated Witness no ayudará a superar el problema de escalabilidad en el que se vería inmersa la red dentro de un corto período de tiempo.
Puedes ver la propuesta completa y original aquí: BIP0141
Y tú, ¿qué opinas, ayudará esta propuesta a Bitcoin? Si estás buscando más información sobre Bitcoin Core, a continuación te dejamos su roadmap de implementaciones.
Bitcoin Classic y el aumento del tamaño de los bloques
Después de propuestas que iban desde los 8 a los 20MB, algunos de los desarrolladores que participaron en la puesta en marcha de Bitcoin XT empezaron a trabajar en esta nueva propuesta y cliente en el que el tamaño de los bloques se vería aumentado a 2MB tras los continuos no que les hicieron llegar varios de los actuales desarrolladores del Core Bitcoin.
Propuesta de aumento a 2MB
Bitcoin Classic es también una implementación de Bitcoin que presenta un conjunto de propuestas afirmando que Bitcoin debe seguir su camino para lo que fue diseñado, ser una red de pagos descentralizada de persona a persona y no tan solo una forma de almacenamiento de valor.
A su modo de ver, el límite de tamaño de los bloques no está ayudando a la escalabilidad de la red y por eso que lanzan también una propuesta por la que los bloques aumentarían de 1 a 2MB. En caso de que un 75% de la potencia total de minado fuera partidaria de esta opción se produciría el hard fork en la red y la cadena válida donde los mineros estarían aportando su potencia sería la que sigue para bloques con un blocksize de 2MB.
Roadmap de Bitcoin Classic
Este proyecto divide sus propuestas y roadmap en 3 fases que os resumimos a continuación.
FASE 1
Implementar BIP 109 y aumentar el tamaño de los bloques de 1MB a 2MB como comentábamos anteriormente. Dicho BIP propone que el incremento se produciría siempre que el 75% de los últimos 1000 bloques sean partidarios de ese cambio. En este caso 750 de 1000 bloques deberían ser de mineros que apoyen Bitcoin Classic.
FASE 2
Reducir el efecto de los tiempos de propagación de los bloques huérfanos.
Optimización y mejoras para el funcionamiento de los nodos con un ancho de banda limitado.
Validación paralela de los bloques y mayor rapidez. Al no revalidar las transacciones cuando se incluyen en un bloque si ya se han validado al entrar en la mempool de un nodo.
FASE 3
Esta fase solo tendría lugar siempre que los mineros y las compañías confirmen de forma satisfactoria la fase 2. Si todo sucediera de forma satisfactoria empezarían a trabajar en un tamaño de bloques dinámico basándose en la propuesta de Stephen Pair de BitPay de la que ya hablamos en nuestro artículo sobre bloques dinámicos.
También se añadiría una versión simplificada del Segregated Witness de Core.
¿Qué es Bitcoin Unlimited?
Tras el intenso debate de Bitcoin Core vs Bitcoin Classic ¡todavía hay más!
En este caso estamos hablando de la primera implementación que propuso un aumento del tamaño de los bloques para facilitar la escalabilidad de Bitcoin. Como su propio nombre indica no habría un límite establecido forzosamente por código y permitiría a los usuarios definir de forma manual el límite de sus propios nodos. Derivando en un límite que emerja de forma natural.
¿Sin límites y a lo loco?
No ? Bitcoin Unlimited incluye hasta 2 ajustes por defecto para limitar el tamaño de los bloques. La creación de los bloques está definida en 1MB y los mineros no crearían bloques superiores hasta que ellos no lo decidieran.
También es muy importante destacar que algunos de estos nombres más o menos exóticos, representando actualizaciones fuertes de Bitcoin, no solo llevan implícitas cambios entorno al tamaño del bloque. Normalmente llevan implícitas más cambios que, a veces, es su totalidad la que puede llevar al desagrado popular. Algunas de sus propuestas son muy interesantes y prometedoras para un futuro pack de propuestas, bajo un nuevo nombre y, por que no, desarrolladores.
Otras propuestas de escalabilidad bitcoin
Hace unas semanas publicamos un artículo dónde os hablábamos de la opción de los bloques dinámicos en Bitcoin, qué desarrolladores habían trabajado en ellas y cómo entender las propuestas que habían publicado todos ellos en los foros o en Github modo de BIP (Bitcoin Improvement Proposal).
Desde Meni Rosenfeld a upalc o Bitpay. Si todavía no lo has leído, a qué esperas?
Imagen destacada en portada | Bitcoinmagazine