Предложение Cardano по Plutus нацелено на снижение накладных расходов на выполнение скриптов
CIP-0194 предлагает новую операцию Match для Untyped Plutus Core, которая может снизить накладные расходы на чтение сложных данных скриптов. Второе предложение, CIP-0195, определяет модель кодирования Data для предстоящего Plutus V4 ledger API.
By SongMarketCap
В конвейер разработки 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.