Con transacciones 100% segwit, ¿cuál sería el número máximo de confirmación de transacción posible en un bloque?
Y, ¿cuántos utxo pueden ser actualizados por un bloque lleno de transacciones segwit?
Pregunta muy interesante, veamos cuál es la transacción más pequeña que podemos construir. Para que sea mínimo tiene que ser una sola entrada y una sola salida. La parte sin segwit se vería así:
0x00
)0x0014{20-byte keyhash}
)Esto suma un total de 82 bytes para la parte no testigo. Entonces, con un tamaño de bloque total no testigo de 1 millón de bytes, obtenemos un máximo de 12195 transacciones. Suponiendo que todas las salidas gastadas fueran P2WPKH, la parte testigo de cada transacción consta de dos pulsaciones: una para la firma y otra para la clave pública. Estos tienen alrededor de 72 bytes y 33 bytes de largo, y cada uno necesita un prefijo de longitud de 1 byte. Además, hay una versión testigo de 1 byte. Entonces, el tamaño total del testigo es de 108 bytes. Con 3 MB de espacio en el bloque de testigos, esto nos lleva a unos 27777 testigos por bloque. Entonces, el factor limitante es el espacio en la parte del bloque que no es testigo, así que ese es el número final que debemos considerar.
Tenga en cuenta que utilicé la serialización sin segwit para la parte sin segwit, ya que eso es lo que sucederá con los nodos no actualizados. Observe también que este es un ejemplo extremo, ya que la mayoría de las transacciones no son de una sola entrada y una sola salida. Una transacción no segwit correspondiente tendría un tamaño de 192 bytes, lo que, junto con el límite de tamaño de 1 MB, nos lleva a 5208 transacciones por bloque, en comparación con 12195 transacciones segwit máximas por bloque.
La segunda parte de su pregunta sobre el máximo de UTXO en un bloque es bastante fácil. Nos gustaría amortizar los gastos generales de la estructura de transacciones y maximizar las entradas + salidas. Dado que las entradas son más grandes que las salidas, simplemente usaremos una sola entrada y calcularemos la cantidad máxima de salidas que caben en un bloque que es 32256. Dado que las salidas son datos que no son de segwit, también cambia mínimamente desde antes de la activación de segwit (solo el la firma de la entrada se mueve a la parte segwit). Por lo tanto, la rotación máxima de UTXO es que se elimina 1 UTXO y se agregan 32256. A modo de comparación, sin segwit, el número máximo agregado fue 32252. Tenga en cuenta que puede haber otros límites que no he considerado, pero estos definitivamente son los límites superiores, y es poco probable que estos límites hayan cambiado durante la activación de segwit.
SIGHASH_ALL
de , que es el uso más común. Dado que solo tenemos una sola entrada y una sola salida, esto también coincide con SIGHASH_SINGLE
.
rny
vi.su.
rny