Comprar Cripto
Mercados
Spot
Futuros
Earn
Promoción
Más
reward-centerZona para nuevos usuarios
AcademyGlosariosDetalles
Ethereum
Smart Contracts

Calldata

Definición

Calldata es un tipo de datos de solo lectura que se envían junto con una transacción al interactuar con un contrato inteligente en Ethereum. Contiene las instrucciones y los valores de entrada que un contrato inteligente necesita para ejecutar una función, pero no puede ser modificado ni almacenado permanentemente por el contrato.

En términos sencillos, calldata es el mensaje que se envía a un contrato inteligente indicándole qué hacer y con qué información.

¿Para qué se utiliza Calldata?

Calldata se utiliza principalmente para pasar información a los contratos inteligentes. Esto incluye:

  • Qué función llamar
  • Los parámetros necesarios para ejecutar esa función
  • Datos de transacción codificados de usuarios o aplicaciones

Debido a que calldata no se guarda en el Storage del contrato, es más barato que el Storage permanente, lo que lo convierte en una forma eficiente de suministrar datos temporales durante la ejecución.

Cómo funciona Calldata

Cuando un usuario envía una transacción a un contrato inteligente, la transacción incluye calldata que especifica la acción a realizar. La Máquina Virtual de Ethereum (EVM) lee estos datos, ejecuta la función solicitada y luego descarta el calldata una vez que se completa la ejecución.

Por ejemplo, cuando un usuario intercambia tokens en un exchange descentralizado, el calldata de la transacción incluye detalles como la dirección del token, la cantidad que se intercambia y la dirección del destinatario. El contrato inteligente lee esta información, completa el intercambio y no retiene el calldata después.

Calldata en la escalabilidad de Ethereum

Calldata juega un papel importante en la escalabilidad de Ethereum, especialmente para los rollups. Los rollups publican datos de transacciones comprimidos en Ethereum utilizando calldata para que cualquiera pueda verificar las transacciones fuera de la cadena si es necesario.

Sin embargo, calldata puede volverse costoso cuando se publican grandes cantidades de datos. Es por eso que se están desarrollando nuevas soluciones como los blobs de datos y las capas de disponibilidad de datos externas para reducir los costos.

Calldata vs. Storage y Memory

Calldata difiere de otras ubicaciones de datos en Ethereum:

Calldata : Solo lectura, temporal y utilizado para entradas de funciones.

Memory : Temporal y modificable durante la ejecución.

Storage : Datos persistentes guardados en la blockchain y los más caros de utilizar.

Por qué es importante

Comprender calldata ayuda a los usuarios y desarrolladores a comprender cómo los contratos inteligentes reciben instrucciones y por qué varían los costos de las transacciones. También explica por qué los rollups dependen de calldata para la transparencia y por qué optimizar el uso de datos es fundamental para la escalabilidad de Ethereum.

Calldata puede ser invisible para la mayoría de los usuarios, pero es un componente fundamental de cómo funcionan los contratos inteligentes y las soluciones de escalabilidad en Ethereum.