Philip DiSarro сообщает о двух критических изъянах в реализации CIP-113 на Aiken

Обновлённые бенчмарки, опубликованные основателем Anastasia Labs, показывают более низкие издержки исполнения у Plutarch во всех сценариях, выделенных в сравнении. Публичные технические детали о двух сообщённых уязвимостях пока не раскрыты.

By SongMarketCap

Cardano News - Philip DiSarro сообщает о двух критических изъянах в реализации CIP-113 на Aiken

Philip DiSarro, основатель и CEO Anastasia Labs и автор CIP-143, сообщил 24 июля, что выявил две критические уязвимости при рассмотрении реализации Aiken фреймворка программируемых токенов CIP-113 для Cardano. В той же ветке он опубликовал обновлённые бенчмарки, сравнивающие кодовую базу Aiken с оригинальной реализацией Plutarch, разработанной DiSarro и командой Input Output. Раскрытие произошло, пока CIP-113 остаётся на этапе Last Check и его реализация проходит проверку безопасности.

Plutarch фиксирует более низкие издержки по бенчмаркам CIP-113

Опубликованный файл бенчмарков сравнивает две реализации в условиях максимального бюджета транзакции Cardano, составляющего 10 миллиардов единиц CPU и 14 миллионов единиц памяти. И Aiken, и Plutarch в итоге компилируются в Untyped Plutus Core, код, исполняемый узлами Cardano.

Plutarch показал более низкое суммарное потребление CPU и памяти в каждом из пяти выделенных сценариев.

cip-113-benchmark-comparison.jpg

В стандартном тесте перевода Aiken использовал в 1,19 раза больше CPU и в 1,17 раза больше памяти, чем Plutarch. Наибольшая разница среди показанных сценариев проявилась в тесте, совмещающем действие по изъятию, внешний скрипт и 50 входов по открытым ключам, где Aiken потребил в 3,23 раза больше CPU и в 2,36 раза больше памяти.

Обе реализации уложились в лимиты транзакции Cardano в тесте 16-swap $NIGHT DEX. Plutarch использовал 6,66% доступного бюджета CPU и 11,68% бюджета памяти, по сравнению с 7,59% и 15,25% у Aiken.

Публикация DiSarro также включала линейные оценки того, сколько элементов может поместиться в одну транзакцию. Оценки показали для Plutarch 658 входов против 162 у Aiken, 472 выхода против 334, 36 489 токенов против 1 661 и 527 политик против 160. Эти значения представляют прогноз по вместимости скрипта, выведенный из протестированных издержек исполнения, а не измеренную пропускную способность основной сети.

Сравнение скомпилированных скриптов дало меньшие по размеру скрипты Plutarch в шести из семи категорий. Скрипт directoryNodeSpending составил 331 байт в Plutarch и 1 698 байт в Aiken. Исключением был programmableLogicGlobal, где Aiken получил скрипт на 3 157 байт против 3 437 байт у Plutarch.

CIP-113 добавляет программируемые правила к нативным активам Cardano

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

Правила могут включать allowlists, denylists, ограничения на переводы, временные блокировки и необязательные функции заморозки или изъятия. Фреймворк предназначен для стейблкоинов, токенизированных ценных бумаг и реальных активов, которым требуются механизмы контроля владения и перемещения.

В предлагаемой архитектуре программируемые токены хранятся на общем адресе смарт-контракта, а владение представлено через stake credentials. Реестр на цепочке связывает каждую политику токена с её правилами перевода, логикой выпуска и любыми авторизованными административными контролями третьих сторон.

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

Aiken и Plutarch предлагают разные подходы к разработке, при этом компилируясь в один и тот же формат ончейн-кода. Документация для разработчиков Cardano представляет Aiken как доступную отправную точку с интегрированным тестированием и специально созданным синтаксисом. Plutarch является встраиваемым языком на базе Haskell, который даёт разработчикам более детальный контроль над генерируемым кодом и издержками исполнения.

DiSarro является автором CIP-143, Interoperable Programmable Tokens и работал с командой Input Output над его оригинальной эталонной реализацией на Plutarch. В репозитории Cardano Foundation указано, что текущие валидаторы Aiken были перенесены из той реализации и адаптированы под более широкий фреймворк CIP-113.

Его прямое участие в исходной архитектуре и кодовой базе помещает новое сравнение бенчмарков в контекст истории разработки проекта. CIP-143 сейчас помечен как неактивный после включения в кандидат CIP-113, который остаётся на стадии обзора Last Check у редакторов CIP.

Две сообщённые уязвимости ожидают технического раскрытия

DiSarro сообщил, что его обзор реализации Aiken выявил две критические уязвимости, которые были упущены в ходе аудита. В его треде не указаны затронутый код, возможные пути атаки, потенциальное воздействие или статус исправления.

Репозиторий уже содержит публичные выводы из начального аудита, включая две закрытые задачи с пометкой critical. Issue 56 описывала путь, через который заново чеканенные токены могли выйти из программируемого хранения при действии третьей стороны. Issue 64 рассматривала возможное загрязнение несвязанных UTxO через ту же административную функцию.

Эти выводы были зафиксированы в ходе начального аудита и не могут быть отождествлены с двумя уязвимостями, о которых DiSarro сообщил позднее, без дополнительного технического раскрытия.

Опасения по безопасности также были подняты в рамках обсуждения обзора CIP-113. Один из участников 20 июля заявил, что было упущено несколько уязвимостей высокой серьёзности и что некоторые предлагаемые изменения удобства использования привнесли дополнительные проблемы безопасности. Во время последующего обзора CIP участники согласились, что следующим шагом должен стать более всесторонний аудит, пока предложение остаётся на стадии Last Check.

В репозитории Cardano Foundation указано, что выводы из начального аудита и последующего повторного аудита были устранены в основной ветке. Однако итоговый отчёт аудита остаётся неопубликованным, и в репозитории реализация помечена как непригодная для промышленного использования с реальными активами до завершения публикации отчёта, более широкого тестирования и дальнейшего экспертного обзора.

Прежде чем реализация CIP-113 сможет продвигаться к развёртыванию на реальных активах, остаются три конкретных ожидаемых результата: публикация итогового отчёта аудита, раскрытие и устранение двух уязвимостей, о которых сообщил DiSarro, и завершение более широкого обзора безопасности, запрошенного в ходе процесса CIP. Эти результаты определят, какие изменения коду и спецификации будут включены до слияния предложения и рассмотрения реализации для промышленного использования.