¿Hay que aumentar el tamaño de los bloques?

Ayer, una circunstancia inusual –pero en modo alguno excepcional– reanimó el debate acerca de la necesidad de eliminar la restricción que el protocolo Bitcoin impone al tamaño de cada bloque: por cosas de la varianza, durante algo más de una hora ningún minero logró resolver un bloque nuevo, y en ese interín se acumularon más de 7000 transacciones pendientes, todas flotando en el éter a la espera de ser validadas. En total, esas transacciones ocupaban mucho más espacio que el máximo admitido actualmente en un bloque, de modo que, en esta oportunidad, a la demora imputable al azar se añadió luego la demora por falta de espacio.

blockchainsize
Tamaño promedio del bloque en la segunda mitad de 2014

Para que se entienda, si las transacciones fueran individuos en una parada de autobús, y cada autobús fuera un bloque de transacciones, ocurrió que varios individuos tuvieron que dejar pasar varios autobuses abarrotados antes de poder subirse a uno.

¿Pero acaso no hay buenas razones para mantener un límite arbitrario al tamaño de los bloques? ¿No corremos el riesgo de matar a Bitcoin en nuestro afán de masificarlo? Oleg Andreev explica por qué no y no.


Economía del límite al tamaño del bloque

La cadena de bloques de Bitcoin impone un límite de 1 MB por cada bloque de transacciones. Cualquier bloque más grande es rechazado por otros nodos como inválido.

El límite fue fijado inicialmente como una medida para evitar que la red fuera bombardeada con enormes bloques llenos de transacciones inútiles, cuando unas pocas personas estaban empezando a testear el sistema y aún era posible la minería en ordenadores personales. Bloques muy grandes podían llevar a un uso excesivo de ancho de banda, lo que podía derivar en un mayor porcentaje de bloques huérfanos debido a retrasos en la sincronización. Este límite no estuvo basado en ninguna prueba empírica; fue un mecanismo de seguridad «lo suficientemente bueno» que se decidió intuitivamente y con la mirada puesta en el corto plazo. Satoshi, el desarrollador inicial de Bitcoin, explicó que se trataba de un límite temporal, y que debía ser levantado una vez que la red se volviera más poderosa y pudiera sostener una mayor cantidad de transacciones.

Es importante tener en cuenta que ese límite casi nunca fue alcanzado. Así que incluso en ausencia de un límite rígido, la cadena de bloques no hubiera crecido más rápido. Era sólo una medida precautoria.

blockchainfeatHoy en día, el número de transacciones es cada vez mayor y el límite cada vez está más cerca. Por eso hay gente discutiendo si este límite al tamaño por bloque debe ser elevado, eliminado o si se debe implementar algún esquema para ajustarlo de forma dinámica. Para cambiar el límite se requiere un consenso: más del 50% de los nodos completos tienen que estar de acuerdo con la nueva regla.

¿Cuáles son los factores en juego?

Algunas personas temen que si el tamaño del bloque fuera ilimitado, los mineros incluirían una gran cantidad de transacciones basura, se comerían el ancho de banda de todos, las tarifas por transacción bajarían (socavando así la sostenibilidad de la cadena de bloques en el futuro) y los mineros con conexiones de mala calidad serían obligados a abandonar el mercado, lo que supuestamente sería injusto para ellos y malo para Bitcoin.

En realidad, Bitcoin –como cualquier otro mercado libre– no tiene nada que ver con la equidad, y todo que ver con la satisfacción mutua de necesidades. Los mineros están motivados por el aumento de sus ingresos en el corto plazo y por el aumento del valor del bitcoin en el largo plazo.

¿Hay algún límite natural al tamaño del bloque? Claro que si: el ancho de banda de la red y los costes de almacenamiento y verificación de las transacciones. Cuantas más transacciones tengas que verificar y transmitir, mayores costos de operación tendrás y (lo más importante) mayor riesgo de minar un bloque huérfano. Si el bloque es demasiado grande para ser distribuido y verificado por otros pares, aumenta el riesgo de que alguien más cree un bloque más pequeño en paralelo. Si el bloque más pequeño es validado por la mayoría más rápido que el más grande, éste se convertirá en huérfano. Minar un bloque huérfano supone una pérdida de tiempo y dinero.

einsteinLos mineros siempre pudieron y pueden elegir cualquier tamaño de bloque dentro del límite de 1 MB. Si hubiera sido rentable para algunos de ellos crear bloques más grandes que los habituales, ya lo habrían hecho. Como no lo han hecho, cabe inferir que hay fuerzas del mercado en juego y que el límite impuesto por el protocolo todavía no importa [N. del T: esta entrada fue escrita por Oleg Andreev en febrero de 2014]. Incluso si hubiera sido de 100 MB, los bloques habrían tenido el mismo tamaño.

Como la recompensa por bloque hallado sigue siendo muy grande (25 bitcoins hasta 2017) en comparación con lo que obtienen los mineros en concepto de tarifas, es razonable esperar que ellos sigan prefiriendo bloques tan pequeños como sea posible crear sin perjudicar el funcionamiento de Bitcoin, y por lo tanto el precio del bitcoin. Las tarifas por transacción representan solo una pequeña fracción de sus ingresos, y al tratar de crear bloques más grandes, con más transacciones, aumentan el riesgo de perder la recompensa de 25 bitcoins. Conforme pasa el tiempo, es probable que más transacciones compitan con esos 25 bitcoins, aumentando la tarifa promedio que se paga por incluir una transacción en un bloque. El aumento de las tarifas motivará a los mineros a habilitar la creación de bloques un poco más grandes (hasta que el riesgo de perder la recompensa sea equilibrado por el monto correspondiente a las tarifas por transacción). Cada reducción a la mitad (halving) de la recompensa para los mineros los motivará a incluir más transacciones. Y a medida que los bloques se hagan más grandes y la suma de las tarifas aumente, los mineros se encargarán de garantizar una mejor conectividad para mantener bajo el riesgo de perder bloques.

Si los mineros alcanzan el límite del bloque, eso significa que hay un deseo de procesar más transacciones, frustrado por una restricción previamente acordada. Entonces, los mineros y otros nodos completos aumentarán el límite (cuanto más pequeño sea el incremento más apoyo tendrá), o bien las tarifas por transacción subirán debido a la competencia por el espacio en los bloques. El aumento de las tarifas por transacción extenderá el deseo de elevar el límite no sólo entre los mineros, sino también entre los usuarios regulares y las empresas de servicios que utilizan la cadena de bloques. Por lo tanto, no será difícil llegar a un consenso.

Mi predicción es que el límite al tamaño por bloque será empujado hacia arriba cada vez que las transacciones amenacen con alcanzarlo. Tal vez después de un par de modificaciones, los interesados decidan que es seguro abolirlo por completo.

Leer texto original, completo, en inglés