Por qué es urgente aumentar el tamaño de los bloques

Antes de presentar los argumentos del hombre de confianza de Satoshi Nakamoto, cabe recordar algo que no se menciona lo suficiente en este debate: cuando estableció un límite arbitrario al tamaño de los bloques, allí por octubre de 2010, Satoshi explicó sin ambigüedad que se trataba de una medida antispam transitoria, y que más adelante el límite debía ser levantado. Dicho esto, veamos ahora por qué Gavin Andresen considera no solo que hay que aumentar el tamaño máximo de los bloques (tal como lo había proyectado el creador de Bitcoin), sino que esto debe hacerse lo antes posible.

Tear-Down-That-WallNota: esta es la primera de una serie de respuestas de Gavin Andresen a las objeciones más comunes al aumento del tamaño máximo de los bloques.


Por Gavin Andresen, Director Científico de la Fundación Bitcoin

Tal vez la objeción más común al aumento del tamaño máximo por bloque es que «los bloques no están llenos todavía, por lo que no tiene que hacerse nada (todavía)».

Es cierto que todavía no hemos llegado al límite fijado por el software de tamaño (de un megabyte) por bloque; en promedio, los bloques están cargando un 30-40% de su capacidad actual.

Hay una muy buena entrada en el blog de David Hudson en hashingit.com, en donde analiza lo que sucederá en la red a medida que nos acerquemos al 100% de la capacidad actual de los bloques. Por favor visita el enlace para más detalles, pero básicamente lo que señala es que hay un desfase entre el momento en que las transacciones son creadas y el momento en que los bloques son encontrados –y que ese desfase implica serios problemas que empezarán a notarse al acercarnos al límite de 1 megabyte–.

first-conf-0-100
Probabilidad de obtener una primera confirmación: Con los bloques constantemente llenos al 100%, el 10% de todas las transacciones recibirán una primera confirmación recién 6,3 horas después de haber sido transmitidas.

Las transacciones se crean más o menos regularmente mientras la gente gasta sus bitcoins. Hay ciclos diarios y semanales en el volumen de transacciones, pero en un determinado período de diez minutos el número de transacciones será más o menos igual al número de transacciones en el período anterior de 10 minutos o en el siguiente.

Los bloques, sin embargo, se crean aleatoriamente siguiendo una distribución de Poisson. A veces, un montón de bloques son encontrados en una hora; otras veces, todos los mineros tienen mala suerte y muy pocos bloques son encontrados en una hora (¡o ninguno!).

lucky-minerDebido al desfase entre el envío constante de transacciones a la red y la distribución aleatoria de Poisson de los bloques encontrados, nunca tendremos bloques 100% llenos todo el tiempo. A veces, los mineros encuentran una gran cantidad de bloques en un breve lapso de tiempo, y estos bloques son capaces de incluir todas aquellas transacciones que estaban a la espera de confirmación.

Por otro lado, las cosas puedes salir muy mal si resulta que los mineros tienen mala suerte. La fila de transacciones que esperan su turno para ser confirmadas crecerá, usando más y más memoria dentro de cada nodo completo. Los nodos completos podrían (y probablemente lo harán en una futura versión de Bitcoin Core) comenzar a ignorar transacciones, lo que hará que las confirmaciones sean menos fiables.

Si los monederos retransmitieran las transacciones no confirmadas después de algunos bloques (algo que el monedero de Bitcoin Core hace), tendríamos picos de uso de ancho de banda, porque serían cada vez más los monederos retransmitiendo sus transacciones sin confirmar.

Si el número de transacciones en espera sigue creciendo, el resultado final será una red sobre-saturada y ocupada en tareas improductivas. No creo que eso sea probable –es más probable que la gente simplemente deje de usar Bitcoin porque las confirmaciones resultan cada vez menos fiables–.

Leer texto original, en inglés