¿Es SegWit un aumento de tamaño de bloques o un uso más eficiente del espacio de bloques?

Esta pregunta se hace con frecuencia en reddit, y creo que sería beneficioso tener una respuesta canónica aquí:

¿Es SegWit un aumento de tamaño de bloques o un uso más eficiente del espacio de bloques?

Respuestas (1)

Si y no. Depende de cómo plantees la pregunta.

  1. Es un aumento del tamaño del bloque, porque puede incluir una mayor cantidad de transacciones útiles en un bloque.

    Si desea realizar una transacción de Bitcoin útil, debe estar firmada para que nadie más pueda cambiarla. Si puede encontrar una manera de hacer que el límite de tamaño del bloque no cuente la firma, entonces puede incluir más transacciones en un bloque. Por lo tanto, segwit es un aumento de tamaño de bloque.

  2. No es un aumento del tamaño del bloque, porque aumentar el tamaño del bloque sería una bifurcación dura, lo que no es segwit.

    Hay una constante dentro de Bitcoin:

    static const unsigned int MAX_BLOCK_SIZE = 1000000;
    

    Si aumenta esto, aunque sea un poco, es posible crear un bloque que aceptarán los nuevos clientes, pero no los antiguos. Esto se conoce comúnmente como una bifurcación dura.

    Segwit no es una bifurcación dura. No modifica ni elimina ninguna regla; solo agrega nuevas reglas. Aumentar el tamaño del bloque requiere modificar una regla, y segwit no modifica una regla, por lo tanto, segwit no es un aumento del tamaño del bloque.

  3. Es un aumento de tamaño de bloque, porque un bloque requiere más espacio para almacenar y enviar.

    Tiene un bloque segwit con 800 KB de datos de transacciones y 800 KB de datos de testigos. Esto es 1,6 MB, que es más grande que el límite anterior. Dado que los nodos completos de segwit deben tener estos datos para validar un bloque, segwit es un aumento del tamaño del bloque.

  4. No es un aumento del tamaño del bloque, porque un nodo requiere menos o la misma cantidad de espacio para almacenar y enviar bloques si no entiende segwit.

    Tiene el mismo bloque que el ejemplo anterior, pero se envía a un nodo que no entiende segwit. Solo recibe los 800 KB de datos de transacciones. Esto es todo lo que necesita almacenar. Dado que no es más grande que 1 MB, segwit no es un aumento del tamaño del bloque. Sin embargo, si no almacena los datos testigo, no puede validar el bloque de manera significativa.

Entonces, TL; DR: es un aumento de tamaño de bloque si actualiza a un software que comprende SegWit, pero no lo es si elige no actualizar a un software que comprende SegWit. Es curioso cómo eso refleja las opiniones predominantes entre ciertas comunidades de usuarios de Bitcoin.
Muy buena respuesta.
Si los clientes antiguos no pueden validar el bloque de manera significativa, ¿qué problemas causa eso?
@BT Esos clientes operan efectivamente en un nivel de seguridad SPV.
Hilo épico de SegWit aquí también, debe ignorar la política: bitcointalk.org/index.php?topic=1398994.20