Предложение Cardano по Plutus нацелено на снижение накладных расходов на выполнение скриптов

CIP-0194 предлагает новую операцию Match для Untyped Plutus Core, которая может снизить накладные расходы на чтение сложных данных скриптов. Второе предложение, CIP-0195, определяет модель кодирования Data для предстоящего Plutus V4 ledger API.

By SongMarketCap

Cardano News - Предложение Cardano по Plutus нацелено на снижение накладных расходов на выполнение скриптов

В конвейер разработки Plutus в экосистеме Cardano добавлены два предложения, сосредоточенных на том, как смарт контракты обрабатывают данные реестра. CIP-0194 вводит встроенное сопоставление по образцу для UPLC, а CIP-0195 определяет, как типы Plutus V4, такие как ScriptContext и TxInfo, должны кодироваться как Data. Оба предложения остаются на рассмотрении.

У CIP-0194 уже есть рабочий прототип реализации, ранние локальные бенчмарки показывают существенно меньшее время выполнения CEK для нескольких шаблонов доступа к данным. Эти измерения не откалиброваны в ончейн единицах выполнения, а производственные параметры стоимости еще не финализированы.

CIP-0194 добавляет сопоставление по образцу в Plutus Core

Смарт контракты Cardano часто анализируют структурированные Data, включая информацию о транзакциях внутри ScriptContext. Существующие программы UPLC могут деконструировать эти структуры через функции, такие как unConstrData, chooseData и операции со списками, при этом каждый шаг добавляет работу внутри вычислителя CEK.

CIP-0194 предлагает новую операцию Match, которая может напрямую исследовать вложенные значения и извлекать только те поля, которые требуются скрипту. Она охватывает целые числа, байтовые строки, списки, пары и структурированные Data, при этом существующий механизм Case остается доступным для более простых операций.

Изменение нацелено прежде всего на валидаторы, которые многократно анализируют контекст транзакции, включая более сложную логику DeFi, трейдинга и кредитования.

Рабочий прототип уже существует в кодовой базе Plutus. Для промышленного использования все еще потребуются тестирование на соответствие, откалиброванные параметры стоимости, поддержка реестра и релиз узла Cardano.

Ранние бенчмарки показывают меньшее время выполнения CEK

CIP включает локальные бенчмарки, сравнивающие Match с существующими методами деконструкции Data.

При извлечении одного глубоко вложенного значения измеренное выполнение CEK было между 6.38 и 13.74 раза быстрее в протестированных сценариях. Тест с 64 слоями вложенной Data показал 2.297 микросекунды с Match по сравнению с 31.068 микросекунды при использовании существующего подхода.

Разрыв в производительности сокращается, когда скрипты извлекают несколько значений, улучшения в тестах варьировались примерно от 1.67 до 6.10 раза в зависимости от структуры и базового метода.

Эти показатели отражают локальную производительность CEK по реальному времени, а не итоговые единицы выполнения Cardano. Модель стоимости остается не откалиброванной. Предварительные бюджеты по CPU и памяти в предложении улучшились на 10% до 90% в разных типах нагрузок, при типичных сценариях с контекстом скрипта улучшение составило примерно от 40% до 60% при начальных параметрах.

Предложение относит Match к версии языка Plutus Core 1.2.0, что потребует поддержки на уровне реестра и активации через процесс хард форка Cardano, прежде чем скрипты смогут использовать это в мейннете.

CIP-0195 определяет модель Data для Plutus V4

CIP-0195 рассматривает другую сторону стека Plutus, определяя, как типы Plutus V4 ledger API должны представляться как Data.

Предложение охватывает V4 ScriptContext и связанные структуры, включая расширенный TxInfo. Оно заменяет более неформальный подход, использовавшийся в ранних версиях Plutus, когда разработчикам и альтернативным инструментам часто приходилось выводить поведение кодирования из кода реализации, а не из отдельной спецификации.

Предлагаемый дизайн V4 продолжает использовать списки для кодирования типов данных. CIP-0195 утверждает, что новые операции UPLC делают доступ к спискам эффективным и при этом позволяют избежать дополнительных конструкторов и интеграции с реестром, которые потребовались бы более широкой модели на массивах.

CIP-0194 и CIP-0195 могут продвигаться независимо, но вместе они решают вопрос о том, как следующее поколение Plutus структурирует и получает доступ к данным реестра. В случае принятия CIP-0195 стандартизирует то, как Plutus V4 предоставляет эти данные, а CIP-0194 даст валидаторам способ с меньшими накладными расходами для их анализа. Обоим все еще требуются утверждение спецификаций, откалиброванные модели стоимости и интеграция в реестр перед выходом в мейннет Cardano.