Eligiendo el tamaño del bloque correcto para Bitcoin
La comunidad Bitcoin ha estado debatiendo el tamaño correcto de un bloque casi toda su existencia. Hace mas de 2 años, estos debates condujeron a la división entre Bitcoin Cash - optando por bloques más grandes- y Bitcoin Core - optando por bloques de 1MB siempre. Sin embargo, aunque muchos miembros de ambas comunidades parecen tener opiniones firmes sobre el tema elegido, casualmente he observado muchos conceptos erróneos sobre este tema. Con Bitcoin siendo un sistema completo, desafortunadamente no es posible que desgloses por separado cada equipo sin manifestar el resto de la imagen de igual manera. Habiendo reflexionado ampliamente sobre el caso, me gustaría ofrecer algunas ideas sobre este tema
Seguidamente, Bitcoin sera conocido como Bitcoin Cash, el verdadero.
Comencemos aclarado las metas de Bitcoin como un sistema, de otra manera, ni siquiera sabremos para que estamos optimizando esto bloques. Desde la perspectiva del usuario final de Bitcoin usado como efectivo, queremos ser capaces de:
· Emitir una transacción de Bitcoin por una tarifa de 0.1 USD centavos o menos (equivalente)
· Asegurar una transacción en menos de 3 segundos, tanto como el pagador como el beneficiario
Luego, como contrapartida de estos objetivos, queremos mantener a Bitcoin como un ecosistema vibrante, abierto a billeteras, intercambios y aplicaciones donde la sobrecarga asociada con la participación activa en la red se mantenga lo más baja posible; pero no inferior al punto en que perderíamos la capacidad de abordar los requisitos del usuario final como se indicó anteriormente
Desde estos objetivos, inmediatamente seguimos que el tamaño del bloque “correcto”, - asumiendo que los más grandes gastos significan más gastos para los operadores. - Depende profundamente del tamaño de su comunidad. Si Bitcoin es usado diariamente por millones de usuarios, sería bueno si el costo de operar a través de la red de Bitcoin es, de digamos, 20.000 USD por mes. Aunque claramente no sería bueno si Bitcoin solo se usa diariamente por 10.000 usuarios.
Revisemos los conceptos erróneos más comunes sobre el tamaño de bloque Bitcoin.
Los bloques nunca deben estar llenos.
No, se requiere de un límite de tamaño predecible para preservar la integridad de la red. El costo del sistema de operación (hardware + software) a través de la red de Bitcoin es en gran medida impulsado por el máximo de transacciones llevada a cabo que este sistema pueda soportar. Sin un límite de rendimiento, un atacante puede inundar económicamente la red con transacciones pagas y crear tiempos de inactividad generalizadas sobre otros operadores. Ejemplo, a 0.1 centavos por transacción, sin ningún límite de tamaño de bloque solo costaría 10.000 USD para crear un bloque de 2.5 GB, considerando el estado del ecosistema de Bitcoin a partir de septiembre de 2019, colapsarían casi todas las aplicaciones incluidas todas las principales implementaciones de modo completo. Así, bajo ciertas condiciones, idealmente raro, las tarifas deberían poder aumentar considerablemente si solo con un mecanismo de defensa contra los ataques de degeneración de servicios.
El tamaño del bloque es un buen proxy de los gastos generales a largo plazo.
Si bien algunos pueden argumentar que aumentar la sobrecarga de la red, en realidad el tamaño del bloque es un indicador bastante incompleto en lo que respecta a la sobrecarga económica. El análisis de costos de la red de Bitcoin indica que, a escala, el tamaño del conjunto de datos UTXO (las salidas de transacciones no gastadas) es el factor dominante que contribuye al TCO (costo total de propiedad) para cualquier aplicación que opera en cadena. Esto explica porque el ajuste de la configuración de la tarifa mínima de una transacción pequeña es un factor mucho menos discutido, es probablemente, es aún más importante que el límite del tamaño del bloque. Si bien, la reducción de la tarifa mínima de transacciones pequeñas brinda a los usuarios finales más libertad para hacer micro transacciones, también expone a la red a un rápido crecimiento del conjunto de datos UTXO, que es mucho más dañino, debido a su naturaleza permanente que, a un aumento transitorio de las transacciones. Sin embargo, a partir de septiembre de 2019, la mayoría de las aplicaciones Bitcoin están en movimiento en la cadena de bloques completas a veces por necesidad, pero con frecuencia por conveniencia ya que aún no existen alternativas.
Los bloques completos frecuentemente están bien.
No, si más de un pequeño porcentaje de los bloques están llenos, es decir, alcanzando el límite del bloque según las reglas de consenso, durante un largo periodo, digamos que 10.000 bloques (aproximadamente una semana). Entonces, Bitcoin entra en serios problemas, las tarifas de transacción se convierten en una subasta de un recurso artificialmente raro: El espacio del bloque. Economics 101 además predice que los costos de los bienes relacionados que enfrenta una demanda inelástica se disparan hasta que se encuentran alternativas.
La situación que se observa con Bitcoin Core donde no solo se observan rutinariamente tarifas tan altas como 10 USD como consecuencia directa del tamaño del bloque de 1MB que actúa como una cuota, sino donde las empresas también se han posicionado a sí mismas como intermediarios quienes se benefician de la aplicación continua de la cuota.
Las billeteras deberían ser más inteligentes con sus tarifas para evitar una mala experiencia con el usuario.
Si bien es cierto que las billeteras deben evitar una mala experiencia del usuario, Bitcoin aún carece de su medio adecuado para evaluar si una transacción se incluirá o no en el siguiente bloque. Es por eso que el consenso previo es tan importante para mejorar aún más Bitcoin. Con el consenso previo, las billeteras ya no requieren habilidades psíquicas: si la billetera obtiene una tarifa incorrecta, se reintenta una tarifa más alta en segundos. El usuario final aún podría sufrir, de vez en cuando, una tarifa de varios centavos y un retraso de 10 segundos, pero los ataques de inundación de transacciones se vuelven dramáticamente más caros. Culpar a las billeteras por el mal manejo de las tarifas es (en su mayoría) “ladrar al árbol equivocado”, este sistema debe abordarse mediante un mejor mecanismo de consenso
Las piscinas mineras deberían producir bloques de X megabytes. (reemplace X por 8, 32 o 128 dependiendo de su afiliación).
A partir de septiembre de 2019, el promedio móvil de 90 días para el tamaño de bloque de los bloques Bitcoin no ha excedido los 400 KB desde agosto de 2017, y el tamaño promedio de bloque ha estado rondando los 200 KB para este periodo de 2 años. Como regla general, mantener un límite de tamaño de bloque de 10 veces el tamaño de bloque promedio observado durante el último año es un límite razonable estimado para mantenerse alejado de cualquier efecto de cuota y sus tarifas vertiginosas. Además, mantener el límite predecible con meses de anticipación es altamente deseable porque las empresas necesitan cronometrar su presupuesto y desplegar cualquier inversión necesaria para respaldar sus operaciones relacionadas con Bitcoin.
Aumentar el tamaño del bloque es fácil. Cambia el código y recopila. Listo.
Esto se aproxima a una receta para el desastre. En el presente, la mayor parte de la infraestructura de software de Bitcoin sigue estando diseñada a lo que concierne al escalado en cadena. Peor aún, el software esta cribado por puntos críticos accidentales que no pueden abordarse simplemente lanzando más hardware al problema. Estos problemas son fiables – No hay ciencia espacial involucrado en esto – pero requiere de realizar inversiones considerables en código de infraestructura de alta calidad.
Los mineros compiten por reservas de mempool.
Si o no pero en su mayoría no. El mempool es un “accidente de diseño” del cliente de Bitcoin diseñado históricamente por Sitoshi. Frente a la perspectiva de ingeniería de software, la RAM es el lugar más costoso de mantener las transacciones de Bitcoin en una computadora (comparado con las opciones alternas de almacenamiento de datos como SSD). Teniendo transacciones constantes cerca del limbo porque no se ajustan a un bloque es malo para todos. Para los usuarios finales, es completamente confuso. Para los operadores, esto es costoso. Las redes sensatas consisten en alcanzar un consenso de baja latencia en si sobre la transacción que llegara al siguiente bloque y abandonar la transacción si no lo hace. De nuevo, el consenso previo es la llave para arreglar profundamente este ángulo.
Las piscinas mineras compiten en tamaños de bloques.
A partir de septiembre de 2019, 32MB es el límite máximo de tamaño del bloque por regla de consenso, mientras que 2MB es el límite máximo “suave” límite definido por Bitcoin ABC. Las piscinas mineras tienen la opción de modificar este límite suave de 2MB a cualquier valor siempre que se mantenga por debajo de 32MB. Este estado de asunto no es muy sensible. Una vez que se extrae y es propagado exitosamente, todo el conjunto de la red Bitcoin incurre en los largos costos asociados con este bloque. La cadena de bloques, o más bien, el UTXO y sus actualizaciones son “comunes” . El modelo de seguridad de Bitcoin depende en estar confiando en los mineros en conjunto, pero no confiar en ninguno de ellos en particular. Así que, la degradación de “los bienes comunes” no se puede dejar como una opción para ningún minero. Si bien, el tamaño del bloque debería ultimadamente ser impulsado por el mercado. Permanece crítico lograr un consenso de baja latencia sobre si una transacción llegara al siguiente bloque, independientemente del minero de bloques que ganara la próxima propagación de juegos de bloques.
En conclusión, desde septiembre de 2019 esta no es ninguna emergencia en lo que se refiere al tamaño del bloque de Bitcoin. El límite de consenso de 32MB excede enormemente a lo que respecta el ecosistema de Bitcoin. Un límite suave de 2MB es un límite estimado razonable para el próximo trimestre. El escalado en cadena permanece crítico pero toma mucho más que aumentar el tamaño del bloque hacia arriba.
Análisis
A lo que concierne al tamaño del bloque aún sigue siendo tópico principal ante la presencia del fenómeno de las criptomonedas en la comunidad. La reducción de los costos se ha conseguido aumentando el tamaño de cada bloque, más sin embargo, el tamaño del bloque es un indicador bastante incompleto en lo que respecta a la sobrecarga económica. Por el momento el tamaño del bloque sigue siendo una disyuntiva más no una prioridad.