Es ampliamente conocido que Bitcoin tiene un límite de 1 MB
por bloque.
Sin embargo, el tamaño de bloque promedio actualmente es de 0.6 MB
:
( 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 B
encabezado del bloque.
Dado eso, es posible encajar 1200
transacciones 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 ~115tps
Visa 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 MB
tamaño de bloque a 586 MB
?
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.
¿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:
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.
32 MiB
como 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?
Henrique Barcelos
Janes