Tamaño (Size)

Las tres formas de medir el tamaño de una transacción

Puedes medir el tamaño de una transacción de bitcoin de 3 formas:

  1. Bytes (b) – El tamaño de la transacción en disco.
  2. Unidades de Peso (wu) – Para encajar transacciones en un bloque.
  3. Bytes Virtuales (vB) – Para comparar tarifas por byte entre transacciones.

Bytes es la unidad más directa: es la manera de medir cualquier cantidad de datos en una computadora. Unidades de Peso y Bytes Virtuales son medidas exclusivas de bitcoin: ambas también miden el tamaño en términos de bytes, pero dan un descuento a algunas partes de los datos de la transacción.

Ícono de herramienta Separador de Transacciones

Separador de Transacciones

Pegue una transacción bruta (hexadecimal) para dividirla en sus campos individuales.

1. Bytes (b)

Es la forma natural de medir el tamaño de una transacción: el tamaño real en términos de cuántos bytes de espacio ocupa. Los bytes se usan al medir el tamaño de una transacción enviada por la red o almacenada en disco.

Puedes comprobar el tamaño en bytes tú mismo, porque cada 2 caracteres hexadecimales representan 1 byte.

Tamaños típicos de transacción

El tamaño en bytes depende principalmente de cuántas entradas y salidas hay en la transacción (con scripts P2PKH estándar):

  • 1 entrada, 1 salida = 191 o 192 bytes
  • 1 entrada, 2 salidas = 225 o 226 bytes (más común)
  • 2 entradas, 1 salida = 338 o 339 bytes
  • 2 entradas, 2 salidas = 373 o 374 bytes (muy común)

2. Unidades de Peso (wu)

BIP 141

Toda transacción tiene una medida de peso, introducida en la actualización SegWit. El peso se calcula multiplicando el tamaño (en bytes) de diferentes partes de la transacción por 4 o 1:

Eso da un descuento a los datos de testigo. Por ejemplo, una transacción de 226 bytes con 116 bytes no-witness y 110 bytes witness tiene un peso de 116 × 4 + 110 × 1 = 574 unidades de peso.

Un bloque puede contener como máximo 4.000.000 unidades de peso.

¿Por qué los datos de testigo pesan menos?

Porque eso ayuda a equilibrar el costo de crear una salida con el costo de gastarla (en términos de tarifa). La cantidad de datos necesaria para desbloquear una salida (los datos de firma) es injustamente mayor que la cantidad necesaria para bloquearla en primer lugar. Así que la medida de peso acerca más el "tamaño" de entradas y salidas en una transacción.

3. Bytes Virtuales (vB)

Un byte virtual es simplemente el peso dividido por 4. Como el peso máximo de un bloque es 4.000.000, eso equivale a 1.000.000 de bytes virtuales, lo que facilita la comparación con el límite antiguo de 1 MB.

Los bytes virtuales se usan al calcular la tarifa por byte (sats/vbyte), que es la forma más común de comparar tarifas entre transacciones. Por ejemplo, una transacción de 574 unidades de peso tiene 143,5 bytes virtuales (574 ÷ 4).

¿Por qué usamos bytes virtuales?

Si el peso y los bytes virtuales miden esencialmente lo mismo, ¿por qué tener ambos? Porque trabajar con números fraccionarios en computadoras suele provocar errores de redondeo. En Bitcoin preferimos trabajar con números enteros en cálculos críticos: la aritmética de enteros siempre devuelve resultados consistentes y fiables, mientras que la de punto flotante no. Por eso, el peso (que usa multiplicación por 4 y 1, siempre entero) se usa internamente para el límite del bloque, mientras que los bytes virtuales (peso ÷ 4) sirven como unidad conveniente para comparar feerates.

Recursos