En la era Shelley, la cantidad de transacciones por segundo (TPS) procesadas son menores al máximo posible de Cardano, conforme a la configuración del protocolo, en su versión actual Ouroboros Praos.
Actividad en Shelley
Hoy en día, la demanda de la red es inferior a la cantidad de transacciones (tx) que Cardano puede soportar.
El pico de demanda de la blockchain en la era Shelley, fue en la epoch 266, con un total de 21.404 bloques, validando 317.020 transacciones, así promediando 15 tx por bloque.
Siendo que un bloque se forja cada 20 segundos, da una media de 0,74 TPS, es decir menos de 1 transacción por segundo.
En las últimas 10 epochs, se registró este detalle en el libro mayor:
Ahora bien, si profundizamos en el análisis, veremos que existen bloques con mayor cantidad de transacciones verificadas, que superan el promedio por epoch de la actividad exhibida en el cuadro.
Por ejemplo, cito estos 3 bloques, de la epoch 272, que superan las 30 tx, cada uno:
- Block 5872353, Epoch 272, slot 417236 con 32 tx,
- Block 5872047, Epoch 272, slot 411226 con 37 tx, y
- Block 5872338, Epoch 272, slot 416903 con 38 tx.
Entonces, en estos casos, el procesamiento es entre 1,6 y 1,9 TPS.
El peso de las transacciones
Las transacciones simples, con baja cantidad de UTxO, suelen tener un peso entre 0,03 y 0,10KB. Se incrementa el peso con el aumento de UTxO, o también con metadatos agregados, o con NFT.
En el modelo UTxO una transacción tiene entradas y salidas, donde las entradas en una billetera son salidas no gastadas de transacciones anteriores. En cuanto una salida de una billetera es utilizada como entrada de otra, en una transacción, se gasta y nunca puede ser utilizada de nuevo.
Por ejemplo, un poema que he registrado en los metadatos de Cardano, titulado “Proof of Liberty” tiene un peso de 0.22KB.
Daré ejemplos al azar, de registros en el libro mayor, de distintos tipos de operaciones con su peso, y se apreciará como aumenta el mismo:
- 0.03KB, tx simple
- 0,07KB, tx simple
- 0,04KB, tx simple
- 0,14KB, con cantidad de UTxO
- 0,15KB, con cantidad de UTxO
- 0,64KB, con NFT
- 1,32KB, con NFT
Parámetros
El protocolo tiene parámetros máximos por bloque, admite hasta 65.536 bytes por bloque, o 64 KB (1024 bytes = KB), es decir que no pueden validarse más tx que ese peso total en cada uno. Cada tx no puede pesar más que 16.384 (16 KB). El encabezado de cada bloque tiene un máximo de 1.100 bytes (1,07 KB).
Información de los parámetros de los bloques:
Palabras finales
Si tomamos solo las operaciones simples, la menos pesadas, con un tamaño de 0,03 KB, se validarían un máximo posible de 2.133 tx en un bloque, (2.133 tx x 0.03 KB = 64KB) por la limitación máxima de 64 KB por bloque, de acuerdo al parámetro en el protocolo.
Así, de forma empírica, por los datos recabados en la red, se puede calcular que en la era Shelley, dividiendo las 2.133 tx en un bloque por sus 20 segundos, resulta un máximo de validación de 106 transacciones por segundo.
Para confirmar mi análisis, buscando información, de la que no hay mucha disponible con cálculos explícitos, encontré un video oficial de IOHK de septiembre de 2020, del Jefe Técnico de Arquitectura Duncan Coutts, y Neil Davies, en el que explican la velocidad de procesamiento (desde los 13 minutos en el video), muestran el siguiente cuadro, donde el límite máximo es de 43,7 TPS (depuradas):
Luego, coincidente con mi análisis, una respuesta de Pal Dorogi (usuario @_ilap), en el Foro de Cardano, del 17 de marzo de este año, que transcribo traducida:
La velocidad de procesamiento de cualquier blockchain tiene un condicionante, el tamaño de bloques, y en Cardano es de 64 KB Cada 20 segundos, cuando un nuevo líder de slot es elegido para forjar un nuevo bloque. Si lo comparamos con Bitcoin, que valida 1Mb (tamaño de bloque), cada 10 minutos promedio, Cardano tiene el doble de capacidad de procesamiento, con casi 2 Mb (1.920 KB), cada 10 minutos, (64 KB cada 20 segundos x 3 x 10).
Con el hard fork Alonzo, Goguen estará operativo para programar contratos inteligentes, lo que implicará mayor demanda de tx, y mayor peso medio para cada operación, por eso será necesario incrementar la capacidad de validación, o sea, aumentar las transacciones por segundo, para que Cardano sea competitivo en el ecosistema DeFi.
Hydra será la solución esperada.
Cardano, por Li₿εʁLiøη. Para que sea breve. Para que sea simple.