← Back to list

Multi-Send en Cosmos Hub: un caso de estudio

Qué ocurre realmente con el gas cuando pagas a muchos destinatarios a la vez

Cumulo in Cumulo.pro · 2026-06-09 19:04 · 0 claps · 6.8 min read
#cosmos-hub #validator #cumulo #blockchain #cosmos-sdk
Open on Medium ↗
Wiki topics: CRY · Crypto & Web3 🔭 · Astronomy & Space

Multi-Send en Cosmos Hub: un caso de estudio

Qué ocurre realmente con el gas cuando pagas a muchos destinatarios a la vez

Tabla de contenidos

· Una transacción, muchos destinatarios · Primero, ¿qué es el gas? · El cambio en Gaia v27.0.0: recargo cuadrático · Lo que hicimos: medirlo nosotros mismos · Los datos: la curva esta ahí… y hay algo másTabla de resultadosVisualización: como crece el gas · De que esta hecho ese gas?Los tres componentes explicados · ¿Cuánto cuesta en dinero real? · ¿Es suficiente como medida anti-spam? · ¿Y para el uso legítimo? · Conclusión

Una transacción, muchos destinatarios

Imagina que tienes que pagar a 50 personas a la vez. En el mundo blockchain, eso se puede hacer con una sola transacción: el llamado multi-send. Un único mensaje, múltiples receptores, una sola firma.

Es útil para distribuir recompensas entre delegadores, hacer airdrops a la comunidad, o pagar en batch a participantes de un protocolo. Cosmos Hub lo soporta de forma nativa.

Pero cada operación en una blockchain tiene un coste medido en gas. Y con la llegada de Gaia v27.0.0 en febrero de 2026, el equipo de desarrollo introdujo un cambio importante: el gas del multi-send ya no es lineal. Crece de forma cuadrática segun el número de destinatarios.

Cuantos más destinatarios, el coste no suma: se multiplica.

Primero, ¿qué es el gas?

El gas es la unidad de medida del trabajo computacional que requiere procesar una transaccion en una blockchain. Cuanto más compleja es la operación, más gas consume. Cuanto más gas, mayor es la comisión que paga el usuario.

En Cosmos Hub, el gas se multiplica por un precio (gas-price) para calcular la comisión final en ATOM. Con los valores habituales de la testnet (0,005 uatom/gas), las comisiones son pequenas, pero el mecanismo de cálculo es exactamente el mismo que en mainnet.

El cambio en Gaia v27.0.0: recargo cuadrático

Antes de esta versión, enviar tokens a muchos destinatarios a la vez era relativamente barato en términos de gas. Eso podía ser un problema: alguien con malas intenciones podía usar el multi-send para saturar la red con transacciones masivas a bajo coste.

La solución implementada en el PR #3961 fue sencilla y elegante: anadir un recargo de gas que crece de forma cuadrática con el número de destinatarios.

  Formula oficial del recargo:

  gas_surcharge = 300 x n^2

  Donde n = numero de destinatarios

  Ejemplos:
    10 destinatarios:  300 x 10^2  =     30.000 gas adicional
    50 destinatarios:  300 x 50^2  =    750.000 gas adicional
   100 destinatarios:  300 x 100^2 =  3.000.000 gas adicional

Por que cuadrático y no lineal? Porque duplicar el número de destinatarios cuadruplica el recargo. Eso hace que los ataques masivos sean exponencialmente mas caros, mientras que el uso legítimo a escala razonable sigue siendo asequible.

Lo que hicimos: medirlo nosotros mismos

Durante la Testnet en marzo de 2026, participamos en la tarea propuesta por el equipo de Cosmos para los validadores de testnet: enviar una transacción multi-send con al menos 10 destinatarios.

Pero en lugar de quedarnos con una sola transacción, decidimos ejecutar cinco, con distintos números de destinatarios, y registrar el gas real consumido en cada caso.

El objetivo era simple: ver si la curva cuadrática de la documentación se cumple en la práctica, y si hay algo más que no estuviera documentado.

Los datos: la curva esta ahí… y hay algo más

Tabla de resultados

Estos son los datos reales registrados en la testnet, transacción a transacción:

Visualización: como crece el gas

El siguiente gráfico muestra el gas consumido por cada transacción. La diferencia entre n=10 y n=100 es enorme: casi 20 veces más gas.

Cada barra equivale a un bloque de aproximadamente 5% del gas máximo por bloque (75 millones). Con 100 destinatarios ya consumimos el 5,3% de un bloque completo.

Cada barra equivale a un bloque de aproximadamente 5% del gas máximo por bloque (75 millones). Con 100 destinatarios ya consumimos el 5,3% de un bloque completo.

Cuando analizamos los datos con mas detalle, encontramos algo interesante. Si restamos el recargo cuadrático oficial (300 x n²) al gas total consumido, el resultado no es constante: crece de forma muy estable con n.

n= 10: gas_base = 211.587–30.000 = 181.587
n= 20: gas_base = 387.909–120.000 = 267.909 (+8.632 por destinatario)
n= 49: gas_base = 1.238.130–720.300 = 517.830 (+8.618 por destinatario)
n=100: gas_base = 3.958.152–3.000.000 = 958.152 (+8.634 por destinatario)
Pendiente: ~8.628 gas por destinatario adicional (constante, desviacion <0,2%)

Esos 8.628 gas extra por destinatario no son el recargo anti-spam. Son el coste real de procesamiento del Cosmos SDK: leer la cuenta del destinatario, validar el saldo, escribir el nuevo estado. Es el precio de cada parada del autobus.

La formula real completa es: gas_total = 95.302 + 8.628 x n + 300 x n²

Esta fórmula reproduce todos nuestros datos con un error inferior al 0,1%. Es decir, predice el gas de cualquier multi-send con una precisión prácticamente perfecta.

De que esta hecho ese gas?

El gas total de un multi-send tiene tres componentes muy distintos. Vamos a verlos:

Lo más interesante del desglose es como cambian las proporciones según el numero de destinatarios. Con pocos destinatarios, el overhead fijo y el coste lineal del SDK dominan. A medida que n crece, el recargo cuadratico se lo come todo.

Lo más interesante del desglose es como cambian las proporciones según el numero de destinatarios. Con pocos destinatarios, el overhead fijo y el coste lineal del SDK dominan. A medida que n crece, el recargo cuadratico se lo come todo.

Los tres componentes explicados

Overhead fijo (95.302 gas): el coste de preparar y validar cualquier transacción en Cosmos Hub, independientemente de lo que lleve dentro. Firma, codificación, verificación de cuenta. Es igual en un simple send que en un multi-send.

Coste lineal del SDK (8.628 x n): por cada destinatario que añadimos, el SDK tiene que leer su cuenta del estado de la blockchain, verificar que puede recibir el pago, y escribir el nuevo saldo. Eso cuesta gas. Es inevitable: es el trabajo real que hace el nodo.

Recargo cuadrático anti-spam (300 x n²): este es el nuevo componente de v27.0.0. No refleja trabajo computacional real, sino un desincentivo económico. Cuantos más destinatarios, el coste se dispara para hacer irracional el abuso a escala.

El punto de inflexión esta en n=29. Por debajo de ese numero, el coste lineal del SDK supera al recargo anti-spam. A partir de n=29, el recargo cuadrático empieza a dominar y crece de forma acelerada.

¿Cuánto cuesta en dinero real?

Los números de gas son abstractos. Vamos a traducirlos a algo más concreto: cuánto paga el usuario en ATOM, y qué vale eso segun el precio de mercado.

La línea discontinua naranja marca el valor n=29, punto a partir del cual el término cuadrático empieza a predominar. Las dos curvas divergen bruscamente a partir de n=150, lo que muestra cómo el precio se vuelve exponencialmente más desproporcionado a gran escala en relación con el precio del ATOM.

La línea discontinua naranja marca el valor n=29, punto a partir del cual el término cuadrático empieza a predominar. Las dos curvas divergen bruscamente a partir de n=150, lo que muestra cómo el precio se vuelve exponencialmente más desproporcionado a gran escala en relación con el precio del ATOM.

¿Es suficiente como medida anti-spam?

Esta fue precisamente la discusión que surgió entre validadores durante la testnet. La curva cuadrática es real y medible, pero a precios actuales de ATOM el coste absoluto sigue siendo bajo.

Con 400 destinatarios, la comisión ronda los 0,26–0,32 ATOM. Dependiendo del precio de ATOM, eso son entre $1,50 y $2,50 por transacción. Barato para un usuario legítimo, pero también asequible para alguien con intenciones de spam.

El contraargumento es que el mecanismo no esta diseñado para hacer imposible el multi-send, sino para que el coste escale de forma desfavorable para quien abusa. Con ATOM a $100 (escenario históricamente posible ) esa misma transacción de 400 destinatarios costaría ~$25. Repetirla miles de veces se vuelve económicamente irracional.

También hay un techo duro: cerca de los 490 destinatarios, el gas supera el límite del bloque (75 millones) y la transacción es rechazada directamente, sin importar cuanto se este dispuesto a pagar.

Conclusión: el recargo cuadrático es un mecanismo de precio dinámico, no un firewall. Es más efectivo a medida que sube el precio de ATOM o aumenta la escala del ataque.

¿Y para el uso legítimo?

Una preocupación válida que surge en la comunidad es si este recargo penaliza a empresas o protocolos con casos de uso legítimos: pagar a muchos empleados a la vez, distribuir recompensas entre delegadores, hacer airdrops a la comunidad.

Los números dan una respuesta tranquilizadora para los rangos de uso habitual:

• 50 destinatarios: ~0,004 ATOM (~$0,02–0,40 segun precio)
• 100 destinatarios: ~0,020 ATOM (~$0,10–2,00 segun precio)
• 200 destinatarios: ~0,069 ATOM (~$0,35–6,90 segun precio)

Para distribuciones corporativas legítimas de escala razonable, el coste sigue siendo perfectamente asumible. El recargo cuadrático empieza a ser realmente punitivo por encima de los 300 - 400 destinatarios, que es exactamente el territorio donde empieza a tener sentido el abuso.

Conclusión

Gaia v27.0.0 introdujo un mecanismo bien pensado para proteger la red del spam masivo via multi-send. El recargo cuadrático hace que el coste de abusar de la funcionalidad escale de forma desfavorable para el atacante, sin penalizar los usos legítimos a escala razonable.

Lo que estas pruebas nos permitieron descubrir es que el coste total tiene una estructura más rica de lo que documenta oficialmente el changelog: además del recargo cuadrático anti-spam hay un componente lineal de ~8.628 gas por destinatario que refleja el trabajo real del SDK, y cuya existencia permite predecir el gas de cualquier multi-send con una precisión prácticamente perfecta.

La fórmula empírica completa es gas_total = 95.302 + 8.628 x n + 300 x n², y funciona.

Operamos con datos reales. Eso es lo que hacemos en Cumulo.

El estudio completo con todos los hashes de transacción verificables está disponible en nuestro repositorio de GitHub.

[embed]cumulo-cosmoshub-infra/studies/gas-surcharge-multisend-2026-03/README.md at main ·… Production-grade infrastructure, configuration, and operational runbooks for running a Cosmos Hub (cosmoshub-4) node…github.com

Twitter | Medium | LinkedIn | Discord | Telegram | cumulo.pro


메타데이터
post_id
97c8c820b1e2
slug
multi-send-en-cosmos-hub-un-caso-de-estudio-97c8c820b1e2
url
https://medium.com/cumulo-pro/multi-send-en-cosmos-hub-un-caso-de-estudio-97c8c820b1e2
canonical_url
https://medium.com/cumulo-pro/multi-send-en-cosmos-hub-un-caso-de-estudio-97c8c820b1e2
author_url
https://medium.com/@cumulo.pro
status
ok
fetched_at
2026-06-17 08:20:12