Fuente: r/bitcoin
El propósito del límite de 1 MB era prevenir ataques DoS por congestionamiento de la cadena de bloques por parte de mineros maliciosos, cuando dicho ataque tenía un costo despreciable y todos los usuarios de Bitcoin estaban obligados a descargar toda la cadena de bloques (pues no existían aún monederos «light») . Mike Hearn habla de esto aquí:
Hace muchos años, Satoshi Nakamoto añadió una solución rápida al código fuente de Bitcoin. Limitó artificialmente la capacidad de los bloques para evitar que un minero con malas intenciones causara problemas en una época en que usar Bitcoin implicaba descargar toda la cadena de bloques, con un cliente lento y poco optimizado.
La idea era imponer un límite transitorio que luego debía ser eliminado. De hecho, Satoshi pretendía que fuese retirado tan pronto como se desarrollaran billeteras SPV (Verificación Simplificada de Pagos).
Lo sé porque a fines de 2010 le envié un correo electrónico para preguntarle por eso. Él respondió:
Se puede implementar un límite mayor una vez que tengamos el uso real más cerca del límite actual y nos aseguremos de que está funcionando bien.
Con el tiempo, cuando tengamos implementaciones exclusivas del cliente, el tamaño de los bloques no importará mucho. Hasta entonces, mientras todos los usuarios todavía tengan que descargar toda la cadena de bloques para empezar a usar Bitcoin, sería bueno que mantengamos un tamaño razonable.
[Nota: en este comentario publicado en Bitcointalk en agosto de 2010, Satoshi reitera la idea y añade: «Eventualmente la solución será que nos deje de importar el tamaño«].
No encontrarás otros desarrolladores que en aquel momento hayan disputado esto.
Todas las discusiones sobre el límite de 1 MB en el momento en que se instauró asumían que sería aumentado a fin de proporcionar suficiente capacidad para datos de transacción legítimos, a medida que el tamaño medio de los bloques se aproximara al mismo. Esto comentaba Satoshi en 2010:
Puede ser implementado así:
si (numerodebloque > 115000)tamañomáximodelbloque = límitemayorSe puede empezar con mucha anticipación, de modo tal que para cuando se llegue a ese número de bloque, y entre en vigor, las versiones más antiguas que aún no lo tengan queden obsoletas.
Cuando estemos cerca del número de bloque de corte, puedo poner una alerta en las versiones antiguas para asegurarnos de que sepan que tienen que actualizarse.
Otros comentarios de los desarrolladores principales, antes y poco después de establecerse el límite de 1 MB, muestran claramente que estaba destinado a ser un control anti-spam temporal, y no una herramienta para poner en práctica una política económica de estrangulamiento de datos correspondientes a transacciones legítimas. Explicaba Satoshi:
El sistema actual donde cada usuario es un nodo de la red no es la configuración prevista para el funcionamiento a gran escala. Eso sería como pretender que todos los usuarios de Usenet ejecuten su propio servidor NNTP. El diseño admite que los usuarios sean sólo usuarios. Cuanto más engorroso sea ejecutar un nodo, menor será el número de nodos. Los pocos nodos generadores (mineros) serán grandes granjas de servidores. El resto serán nodos cliente, que sólo transmitirán transacciones.
Cambiar el propósito del límite, de control del spam a la aplicación de una política económica de estrangulamiento de datos de transacción legítimos, representa un cambio del contrato social, y como tal requiere un consenso.