Tamaño del bloque según el número de transacciones

Es ampliamente conocido que Bitcoin tiene un límite de 1 MBpor bloque.

Sin embargo, el tamaño de bloque promedio actualmente es de 0.6 MB:

Tamaño de bloque promedio de Bitcoin

( datos originales )

Según este hilo , las transacciones de Bitcoin tienen un tamaño promedio de 512 B. En aras de la simplicidad, no estoy considerando el 80 Bencabezado del bloque.

Dado eso, es posible encajar 1200transacciones en un bloque hoy. Teniendo en cuenta que se extraerá un nuevo bloque cada 10 minutos, la capacidad actual de la red es 2 tps:

1200 transactions/block / 10 min/block / 60 sec/min = 2 transactions/s

Esto parece un rendimiento muy bajo, especialmente cuando se compara con la tasa promedio de Paypal y la tasa promedio de ~115tpsVisa de ~2000 tps.

Ahora imagine que quiero construir una cadena lateral que pueda manejar tanto tráfico como la red de Visa. Quiero mantener la mayoría de los parámetros de la cadena de bloques de Bitcoin (10 min/bloque, ~512 B/transacción), pero poder procesar 2000 tps.

En este caso, el tamaño de mi bloque sería el siguiente:

2000 transaction/s * 512 B/transaction * 60 s/min * 10 min/block = 586 MB/block

¿La estimación anterior es correcta o me estoy perdiendo algo?

Si es correcto, ¿cuáles son los impactos de cambiar de un 1 MBtamaño de bloque a 586 MB?

Respuestas (2)

De esto se trata el debate actual sobre el tamaño del bloque y lo ha sido durante más de un año. Trataré de no repetir todo eso aquí.

Sus números parecen más o menos correctos. Si los bloques de 600 MB son posibles en su cadena lateral depende de cómo funcionaría su cadena lateral. Si se deshace de la seguridad de Prueba de trabajo y todo es hardware de grado de centro de datos y ancho de banda entre partes que confían entre sí hasta cierto punto, entonces no hay problema. Probablemente también tendría sentido reducir el tiempo de bloqueo en ese caso, por ejemplo, 60 MB cada 1 minuto. De hecho, los bloques probablemente ya no tendrían ningún sentido, ¿por qué no solo una base de datos de solo anexar de transacciones individuales con algunas sumas de verificación por seguridad?

Las cadenas laterales pueden intercambiar algunas propiedades para obtener otras propiedades, lo que podría tener mucho sentido. En el ejemplo anterior, intercambia descentralizado sin confianza por alta eficiencia pero confiable (los usuarios deben confiar en usted y en otras partes involucradas, y en el (los) gobierno (s) y ...).

Bitcoin en sí tiene como propiedad principal que está descentralizado. Sin censura, baja barrera de entrada para mineros y nodos completos, peer2peer y todas esas cosas buenas están muy relacionadas y entrelazadas con esa propiedad principal. 600 MB por bloque destruirían completamente todo eso.

Eso no quiere decir que no haya muchos trucos geniales que Bitcoin tiene bajo la manga. SegWit se está implementando actualmente y hará que los bloques sean más pequeños para ciertos nodos y mejor recortables, mientras que el tamaño de bloque efectivo es de alrededor de 1,75 MB. Además de abrir caminos para muchas más mejoras de eficiencia interesantes, como hacer que las transacciones multi-sig sean significativamente más pequeñas.

Se dará un paso aún mayor con los canales de pago bidireccionales y las redes creadas a partir de ellos. Lightning Network es el nombre más conocido en este espacio. La idea es almacenar en caché cientos y miles (o pedidos más) de pequeñas transacciones durante semanas o meses sin poner una sola en un bloque. Solo al principio, al abrir dicho canal y al final, al cerrar el canal, una transacción terminará realmente en un bloque. Organizar estos canales en una red peer2peer permite que cualquier persona envíe y reenvíe dinero a través de múltiples saltos, lo que permite que todos paguen a otros sin tener que confiar en un solo nodo e incluso tener pagos instantáneos y sin confianza (sin necesidad de esperar confirmaciones de bloque).

Escalar rara vez es simplemente girar un dial simplemente agrandar algo existente. Las soluciones inteligentes tienen un impacto mucho mayor y ofrecen mejores compensaciones.

Disculpe por no responder a su pregunta exacta de enumerar todos los impactos de cambiar a un tamaño de bloque grande. Son numerosos y cada uno puede conducir a su propio debate interminable sobre el desprendimiento de bicicletas y el saludo con la mano. Lo más importante es que una vez que se ha extraído un bloque, debe propagarse lo antes posible por todo el mundo o existe el riesgo de que otro minero encuentre otro bloque donde uno de esos bloques quedará "huérfano" (desperdiciado). Más bloques huérfanos conducen a una minería más centralizada, ya que los mineros más grandes tienen más posibilidades de ganar esa carrera huérfana. "ASAP" en el caso de un intervalo de 10 minutos es por lo tanto del orden de segundos. Eso no significa que los 600 MB completos deban transferirse a todos los nodos del mundo en unos pocos segundos, pero sigue siendo todo un desafío.

Actualmente, 2 MB se considera el tamaño máximo de bloque seguro, que SegWit cubre prácticamente. Después de más mejoras y mejoras en la eficiencia, es posible que se duplique nuevamente en uno o dos años.

gracias por su completa respuesta. Me he estado poniendo al día con las noticias de bitcoin, que he estado distante durante más de 1 año. Esta es más una pregunta conceptual: "¿dejar caer el mecanismo criptográfico de prueba de trabajo no hace que la solución no sea una cadena de bloques ?"
@HenriqueBarcelos sí, lo hace. El concepto de una cadena de bloques está destinado a amplificar la efectividad de PoW: al vincular los bloques, cambiar un bloque antiguo requiere un nuevo PoW no solo para un bloque, sino para TODOS los bloques desde entonces. Sin PoW, es posible que aún desee encadenar transacciones de modo que cambiar las transacciones requiera reescribir todas las sumas de verificación para transacciones más nuevas (integridad de datos), pero ya no es necesario colocar transacciones en bloques. Ya no es realmente una cadena de bloques, sino más bien una lista enlazada con punteros hash en lugar de punteros de memoria.

¿La estimación anterior es correcta o me estoy perdiendo algo?

Sus estimaciones parecen (más o menos) bien.

Si es correcto, ¿cuáles son los impactos de cambiar de un tamaño de bloque de 1 MiB a 586 MiB?

Los dos principales que veo son:

  • los bloques grandes hacen que los nodos completos sean más difíciles/costosos de operar (es decir, requieren mejores especificaciones y mejores velocidades de carga/descarga); por lo tanto, es malo para la descentralización, ya que no muchas personas podrán ejecutar un nodo completo
  • los bloques tardarán más en propagarse a través de la red, por lo que aumenta las posibilidades de bloques huérfanos y gastos dobles.

Para obtener una lista más detallada, consulte aquí .

Tenga en cuenta que estas preocupaciones/inconvenientes para un mayor tamaño de bloque se plantearon para un aumento de 4, 8 o 32 MB... un aumento de 586 MB sería demasiado excesivo. Y si mantiene los parámetros similares a bitcoin, tendría los mismos problemas en la cadena lateral.

Entonces, básicamente, ¿sería mejor cambiar los otros parámetros también para mejorar el rendimiento de esta cadena? Teniendo en cuenta 32 MiBcomo límite de tamaño de bloque, la disminución del tiempo promedio de extracción de bloques a 30 s, podría procesar ~2200 tps. Pero esto podría afectar la seguridad de mi cadena, ¿verdad?
Si reduce el tiempo de bloque a 30 s, los bloques de 32 MiB nunca lograrán propagarse correctamente a través de la red antes de que venza el próximo bloque. Este es un problema difícil y no conozco ninguna investigación sobre el tema para darle consejos. Sin embargo, le aconsejo que estudie (experimente con) algunas de las altcoins y sus capacidades. Por ejemplo, Zetacoin tiene un tiempo de bloqueo de 30 segundos. Puede encontrar una lista de altcoins SHA256, incluidos sus tiempos de bloqueo, aquí .
@HenriqueBarcelos La razón por la que a Satoshi se le ocurrieron 10 minutos es por este retraso en la propagación: si el 10 % de los 10 minutos se dedica a propagar el bloque, eso significa que ~10 % de la capacidad de extracción se desperdicia y le da una ventaja injusta significativa a mineros que reciben el bloque primero en comparación con el último. Entonces, en todo caso, le gustaría aumentar el tiempo de bloqueo. Aunque incluso eso no ayuda mucho y hará que los asentamientos tarden horas o días rápidamente.