Calldata
Definição
Calldata é um tipo de dado somente de leitura enviado junto com uma transação ao interagir com um contrato inteligente no Ethereum. Ele contém as instruções e os valores de entrada que um contrato inteligente precisa para executar uma função, mas não pode ser modificado ou armazenado permanentemente pelo contrato.
Em termos simples, calldata é a mensagem que você envia a um contrato inteligente dizendo-lhe o que fazer e com que informação.
Para que serve o Calldata?
Calldata é usado principalmente para passar informações para contratos inteligentes. Isso inclui:
- Qual função chamar
- Os parâmetros necessários para executar essa função
- Dados de transação codificados de usuários ou aplicativos
Como o calldata não é salvo no armazenamento do contrato, ele é mais barato do que o armazenamento permanente, tornando-o uma maneira eficiente de fornecer dados temporários durante a execução.
Como o Calldata funciona
Quando um usuário envia uma transação para um contrato inteligente, a transação inclui calldata que especifica a ação a ser executada. A Máquina Virtual Ethereum (EVM) lê esses dados, executa a função solicitada e, em seguida, descarta o calldata assim que a execução é concluída.
Por exemplo, quando um usuário troca tokens em uma exchange descentralizada, o calldata da transação inclui detalhes como o endereço do token, o valor que está sendo trocado e o endereço do destinatário. O contrato inteligente lê essas informações, conclui a troca e não retém o calldata depois.
Calldata na Escalabilidade do Ethereum
Calldata desempenha um papel importante na escalabilidade do Ethereum, especialmente para rollups. Os rollups publicam dados de transação compactados no Ethereum usando calldata para que qualquer pessoa possa verificar transações off-chain, se necessário.
No entanto, o calldata pode se tornar caro quando grandes quantidades de dados são publicadas. É por isso que novas soluções como data blobs e camadas de disponibilidade de dados externas estão sendo desenvolvidas para reduzir custos.
Calldata vs Armazenamento e Memória
Calldata difere de outros locais de dados no Ethereum:
Calldata : Somente de leitura, temporário e usado para entradas de função.
Memória : Temporário e modificável durante a execução.
Armazenamento : Dados persistentes salvos na blockchain e mais caros de usar.
Por que isso importa
Compreender o calldata ajuda usuários e desenvolvedores a entender como os contratos inteligentes recebem instruções e por que os custos de transação variam. Também explica por que os rollups dependem do calldata para transparência e por que otimizar o uso de dados é fundamental para a escalabilidade do Ethereum.
O calldata pode ser invisível para a maioria dos usuários, mas é um bloco de construção central de como os contratos inteligentes e as soluções de escalabilidade funcionam no Ethereum.