Гибридный накопительный пакет — что Aztec, Miden и Ola приготовили для будущего инфраструктуры следующего поколения?
14 июня 2023 г.Сравнительное исследование ацтеков, миден и ола
В этой статье мы углубимся в концепцию "гибридного объединения" и рассмотрим, как проекты Aztec, Miden и Ola подходят к этой технологии. Мы изучаем их уникальные языки смарт-контрактов, изучаем структуру деревьев состояний и рассматриваем компромиссы в схемах обеспечения конфиденциальности. Наша цель — предоставить всесторонний обзор технологий гибридного объединения, чтобы помочь вам понять их ключевые компоненты и представить себе их будущую траекторию.
Что такое гибридный накопительный пакет?
Мы рады видеть, что наши недавние инициативы привлекают все больше внимания на рынке. «Hybrid Rollup» — наиболее точное описание того, над чем мы в Ola работали:
-
Сводка:
Н а. Он работает на уровне 2, но также может работать и на уровне 3, в зависимости от платформы, используемой для развертывания контракта проверки.
б. Это масштабируемое решение.
в. У него есть программируемость — «Свертывание» специально не указывает на эту функцию; «Программируемый накопительный пакет» более точен.
2. Гибрид:
n a. It supports public, private, and hybrid contract types.
б. Разработчики могут свободно выбирать тип контракта в зависимости от своих потребностей.
в. Пользователи могут свободно выбирать тип транзакции в гибридных контрактах.
На приведенной ниже диаграмме просто показано расположение и функциональные возможности гибридного накопительного пакета. В настоящее время известно, что три проекта, а именно Aztec, Miden и Ola посвящены развитию в этом направлении. Хотя технические детали каждого из них различаются, они имеют общее видение: предоставить больше возможностей, более высокую эффективность безопасности, больше реальных сценариев и больше повседневных пользователей в индустрии блокчейнов.
Программируемый накопитель
В качестве (программируемого) накопительного пакета язык смарт-контрактов (SC) необходим для поддержки разработчиков при создании DApp. Однако, поскольку Privacy не совместим с EVM (виртуальная машина Ethereum), Solidity нельзя использовать напрямую для разработки частных DApp. Следовательно, требуется собственный язык SC, который может поддерживать как публичные, так и частные контракты. Конечно, это также требует адаптации модуля виртуальной машины, так как ему необходимо поддерживать различные типы деревьев состояний.
В настоящее время языки SC для проектов Aztec, Miden и Ola показаны в следующей таблице:
| Проекты | Тип | Название языка | Тип языка | Тьюринг-полный | Статус | |----|----|----|----|----|----| | Ацтек | ЗК-ЗКДСЛ | НУАР | ДСЛ | Нет | В разработке | | Миден | ЗК-ЗКВМ | Miden IR | GPL | Да | В разработке | | Ола | ЗК-ЗКВМ | Ола ланг | GPL | Да | В разработке |
На приведенной ниже диаграмме показана различная логика обработки Aztec и Ola (Miden аналогичен Ola):
Самое существенное отличие заключается в том, что в Aztec (а также в Aleo) каждая функция контракта рассматривается как фиксированное вычисление. На этапе компиляции для этих вычислений генерируются специальные схемы и pk/vk (открытые ключи/ключи проверки), а vk используется для идентификации вызываемой функции. Это приводит к следующим последствиям:
- Вызовы функций требуют специальной обработки. Корректная передача и возврат параметров достигается в Aleo введением регистров только для чтения, при этом количество регистров не фиксируется.
- Логика функции должна быть детерминированной. в противном случае его нельзя представить в виде детерминированной схемы и нельзя сгенерировать pk/vk.
- Динамические типы, такие как переменные для количества циклов и динамические массивы, не поддерживаются. Это связано с тем, что они неизвестны на этапе компиляции и известны только во время выполнения, поэтому невозможно скомпилировать функцию в схему на этапе компиляции.
При разработке Ola мы не рассматриваем каждую функцию как конкретное вычисление, для которого мы генерируем и сохраняем уникальный pk/vk (открытый ключ/ключ проверки) в рамках контракта. Вместо этого мы разработали виртуальную машину на базе ISA, OlaVM. Он универсальный, полный по Тьюрингу и дружественный к zk (нулевому знанию), способный поддерживать вычисления произвольной логики. Параллельно мы определили универсальную систему ограничений для набора инструкций, чтобы регулировать правильное выполнение программ. Основываясь на этих проектах, Ola обладает следующими возможностями:
- Полнота по Тьюрингу: поддерживает вычисления любой логики, включая динамические типы.
- Дружественность к ZK: используется упрощенная система ограничений для регулирования правильного выполнения любой программы.
- Экономия на вычислениях и хранении: нет необходимости в дополнительных вычислениях и хранении pk/vk для каждой функции.
Гибридное глобальное состояние
Дизайн дерева
В гибридном накопительном пакете состояния двух типов будут поддерживаться отдельно. Одно из них — общедоступное дерево состояний, соответствующее типу учетной записи, а другое — частное дерево состояний, соответствующее типу UTXO (вывод неизрасходованных транзакций), который в дальнейшем мы будем называть типом примечания. В таблице ниже указаны типы деревьев, принятые в разных проектах:
| Проекты | Публичное дерево состояний | Частное дерево заметок | Частное дерево нуллификаторов | |----|----|----|----| | Ацтек | SMT | Дерево Меркла только для добавления | Индексированное дерево Меркла | | Миден | СМТ | Дерево Merkle только для добавления | СМТ | | Ола - схема-1 | СМТ | Дерево Меркла только для добавления | Индексированное дерево Меркла | | Ола -схема-2 | СМТ | СМТ | - |
В этой статье мы не будем углубляться в подробные принципы проектирования различных состояний дерева. Принципы проектирования различных деревьев уже были представлены в таблице выше. Выражаем уважение к работе команд Aztec и Miden. Ниже мы представим характеристики различных деревьев состояний:
- Открытое дерево состояний
Листовые узлы общедоступного дерева состояний представляют собой незашифрованную информацию об учетных записях. Он должен поддерживать четыре функции: добавление, удаление, изменение и поиск. Разреженное дерево Меркла (SMT) — лучший выбор для этой цели, как и в SMT:
а. Хэш пустого узла фиксирован, его можно кэшировать, а узлам не нужно хранить полные данные дерева.
б. Если при вычислении корня встречается пустое значение, его можно использовать напрямую, что приводит к сокращению количества хэш-операций.
в. Несмотря на то, что размер дерева фиксирован, верхний предел бесконечно велик, всего 2^256 листовых узлов.
д. Он поддерживает подтверждение отсутствия членства.
- Дерево личных заметок
Листовые узлы частного дерева состояний представляют собой информацию о фиксации примечания и не содержат информации в виде открытого текста. Каждая транзакция конфиденциальности будет потреблять старые заметки и генерировать новые. Если дерево заметок является обновляемым, узлы или прослушиватели могут вывести информацию заметки, связанную с текущей транзакцией, на основе состояния листа дерева состояний, например, какие обязательства заметок были потрачены, какие новые обязательства заметок были сгенерированы, но открытый текст информация о записке по-прежнему не будет раскрыта. Другими словами, информация о пользователе и информация о транзакции этой конфиденциальной транзакции по-прежнему не будут раскрыты.
Поэтому, чтобы реализовать неотслеживаемость транзакций конфиденциальности, частное дерево состояний может быть только добавленным, а конечные узлы не могут быть удалены или обновлены.
- Собственное дерево нуллификаторов
Дерево частных аннуляторов — это дерево, поддерживаемое для обеспечения неотслеживаемости транзакций конфиденциальности. Его основные цели:
а. Предотвратить двойное расходование одной и той же банкноты;
б. Разорвать связь между входами транзакции конфиденциальности и выходами предыдущих транзакций, обеспечив невозможность отслеживания;
в. Как показано на диаграмме ниже:
Поэтому для частного дерева нуллификаторов необходимо поддерживать добавление листьев и доказательство отсутствия членства. Следовательно, разреженное дерево Меркла (SMT) является относительно хорошим выбором. С точки зрения эффективности компания Aztec представила концепцию индексного дерева Меркла, которое представляет собой расширенную версию SMT.
Дизайн конфиденциальности
Ола давно задумывается о конфиденциальности. Какие потребности и желания есть у пользователей в отношении конфиденциальности?
а. Иногда пользователи не хотят, чтобы их транзакции в сети отслеживались. н б. Иногда пользователи не хотят, чтобы их данные в сети использовались незаконно или без компенсации. н с. Стоимость частных действий и публичных действий должна быть одинаковой.
В таблице ниже показаны функции конфиденциальности, которые могут предоставить три проекта — Aztec, Miden и Ola:
| Проекты | Отслеживаемость | Конфиденциальность данных | Конфиденциальность пользователей | Соответствие | |----|----|----|----|----| | Ацтек | нет | да | да | нормальный | | Миден | нет | да | да | нормальный | | Ола - схема -1 | нет | да | да | нормальный | | Ола - схема -2 | да | да | да | лучше |
Все решения в таблице выше могут достичь двух точек a и b, упомянутых ранее. Если мы примем дизайн трех разных деревьев состояний в разделе «Дизайн дерева», это обеспечит высочайший уровень безопасности, а именно неотслеживаемые транзакции конфиденциальности. Однако это достигается за счет более сложной реализации, структуры транзакций, схемы и более высоких транзакционных издержек.
Поэтому, когда Ola разрабатывала конфиденциальность, она столкнулась с компромиссом между неотслеживаемостью транзакций конфиденциальности и стоимостью транзакций конфиденциальности:
а. Учитывая, что пользовательские транзакции в блокчейне уже являются частными, например, реализация конфиденциальности данных и конфиденциальности пользователей, есть ли необходимость в реализации функции неотслеживаемости, даже если это приведет к более сложным проектам и более высоким затратам? н б. Если транзакции конфиденциальности можно будет отследить, разрушит ли это конфиденциальность пользователей полностью?
Мы считаем, что прослеживаемость может быть желательной схемой защиты конфиденциальности:
а. Он по-прежнему может защищать конфиденциальность пользовательских транзакций и обеспечивать право собственности на пользовательские данные. н б. Он имеет более простой дизайн архитектуры конфиденциальности. н с. Для доказательства требуется меньше вычислительных ресурсов, следовательно, стоимость транзакции будет ниже. н д. Он удобен для регулирующих органов, позволяя легко отслеживать поток объектов конфиденциальности (без раскрытия другой информации).
Исходя из приведенных выше соображений, Ola будет поддерживать два уровня решений для обеспечения конфиденциальности, оставляя разработчикам возможность выбора требований к конфиденциальности. В течение следующих нескольких месяцев Ола будет постепенно внедрять и проверять вышеупомянутые решения.
Обзор
Ola – это платформа ZK-ZKVM, основной целью которой является создание инфраструктуры уровня 2, сочетающей дополнительную конфиденциальность с высокой производительностью. Она может легко расширять соответствующие функции на платформы, не обеспечивающие конфиденциальность и высокую производительность. -функции производительности при наследовании их сетевой безопасности, такие как Ethereum, BSC, Aptos, zkSync и т. д. Все, что необходимо, — это развернуть соответствующие контракты проверки и мостовые контракты в их цепочках.
Мы будем продолжать следить и сообщать о последних событиях в этой области. Если у вас есть какие-либо вопросы или предложения, мы будем рады услышать от вас. Свяжитесь с нами по адресу contact@sin7y.org.
:::информация Также опубликовано здесь.
:::
Оригинал