Proposta do Plutus de Cardano mira menor sobrecarga de execução de scripts

CIP-0194 propõe uma nova operação Match para Untyped Plutus Core que pode reduzir a sobrecarga de leitura de dados de script complexos. Uma segunda proposta, CIP-0195, define o modelo de codificação de Data para a futura API de ledger do Plutus V4.

By SongMarketCap

Cardano News - Proposta do Plutus de Cardano mira menor sobrecarga de execução de scripts

O pipeline de desenvolvimento do Plutus de Cardano adicionou duas propostas focadas em como os smart contracts processam dados do ledger. CIP-0194 introduz correspondência de padrões integrada para UPLC, enquanto CIP-0195 especifica como tipos do Plutus V4 como ScriptContext e TxInfo devem ser codificados como Data. Ambas permanecem em revisão.

CIP-0194 já tem um protótipo de implementação funcional, com benchmarks locais iniciais mostrando um tempo de execução CEK substancialmente menor para vários padrões de acesso a dados. As medições não estão calibradas em unidades de execução on chain, e os parâmetros de custo de produção ainda não foram finalizados.

CIP-0194 adiciona correspondência de padrões ao Plutus Core

Os smart contracts de Cardano inspecionam com frequência Data estruturado, incluindo informações de transação dentro de ScriptContext. Programas UPLC existentes podem desconstruir essas estruturas por meio de funções como unConstrData, chooseData e operações de listas, com cada etapa adicionando trabalho dentro do avaliador CEK.

CIP-0194 propõe uma nova operação Match que pode inspecionar valores aninhados diretamente e capturar apenas os campos exigidos por um script. Ela abrange inteiros, cadeias de bytes, listas, pares e Data estruturado, enquanto o mecanismo existente Case permanece disponível para operações mais simples.

A mudança é direcionada principalmente a validadores que inspecionam repetidamente o contexto da transação, incluindo lógicas mais complexas de DeFi, trading e lending.

Já existe um protótipo funcional na base de código do Plutus. O uso em produção ainda exigiria testes de conformidade, parâmetros de custo calibrados, suporte no ledger e uma nova versão do nó Cardano.

Benchmarks iniciais mostram menor tempo de execução CEK

A CIP inclui benchmarks locais comparando Match com métodos existentes para desconstruir Data.

Ao recuperar um único valor profundamente aninhado, a execução CEK medida foi entre 6.38 e 13.74 vezes mais rápida nos cenários testados. Um teste envolvendo 64 camadas de Data aninhadas registrou 2.297 microssegundos com Match, em comparação com 31.068 microssegundos usando a abordagem existente.

A diferença de desempenho diminui quando os scripts capturam múltiplos valores, com melhorias testadas variando de aproximadamente 1.67 a 6.10 vezes, dependendo da estrutura e do método de base.

Esses números medem o desempenho local de wall clock do CEK em vez das unidades finais de execução de Cardano. O modelo de custos permanece não calibrado. Os orçamentos preliminares de CPU e memória na proposta melhoraram de 10% a 90% em diferentes cargas de trabalho, com cenários típicos de contexto de script mostrando cerca de 40% a 60% de melhoria sob os parâmetros iniciais.

A proposta associa Match à versão 1.2.0 da linguagem Plutus Core, o que exigiria suporte no ledger e ativação por meio do processo de hard fork de Cardano antes que os scripts pudessem fazer uso dele na mainnet.

CIP-0195 define o modelo de Data do Plutus V4

CIP-0195 aborda o outro lado da pilha do Plutus ao especificar como os tipos da API de ledger do Plutus V4 devem ser representados como Data.

A proposta abrange o ScriptContext da V4 e estruturas relacionadas, incluindo um TxInfo expandido. Ela substitui a abordagem mais informal usada em versões anteriores do Plutus, em que desenvolvedores e ferramentas alternativas muitas vezes precisavam derivar o comportamento de codificação a partir do código de implementação em vez de uma especificação dedicada.

O design proposto para a V4 continua usando listas para a codificação de tipos de dados. CIP-0195 argumenta que operações mais novas do UPLC tornam o acesso a listas eficiente ao mesmo tempo em que evitam os construtores adicionais e a integração com o ledger exigidos por um modelo mais amplo baseado em arrays.

CIP-0194 e CIP-0195 podem progredir de forma independente, mas juntas abordam como a próxima geração do Plutus estrutura e acessa dados do ledger. Se adotada, CIP-0195 padronizaria como o Plutus V4 expõe esses dados, enquanto CIP-0194 daria aos validadores uma forma de menor sobrecarga para inspecionar esses dados. Ambas ainda exigem aprovação das especificações, modelos de custos calibrados e integração ao ledger antes de chegarem à mainnet de Cardano.