Испытайте мощь OlaVM Proof of Concept: полнофункциональная zkVM следующего поколения

Испытайте мощь OlaVM Proof of Concept: полнофункциональная zkVM следующего поколения

16 февраля 2023 г.

В августе 2022 г. компания Sin7y выпустила Белая книга OlaVM, формально закладывающая семена масштабируемости и конфиденциальности в плодородную почву Ethereum. После завершения OlaVM PoC семена прорвались сквозь землю, что указывает на то, что семена успешно проросли. В этой статье в основном будет представлен прогресс и некоторые стратегические корректировки OlaVM на данном этапе.

* Мы рады сделать следующие объявления:

* Мы предварительно завершили PoC OlaVM, и вы можете проверить соответствующую инженерную реализацию и соответствующий дизайн документации через Sin7Y/olavm.


  • Мы завершили первоначальный дизайн и реализацию пользовательского языка смарт-контрактов Ola-lang, и вы можете проверить соответствующий технический проект и соответствующий дизайн документации через Sin7Y/ola-lang.

    * Первоначально мы завершили интеграцию Olang в удобную для разработчиков среду IDE: Visual Studio Code, что позволяет разработчикам писать программы Olang в VSCode, а затем выполнять процессы создания и проверки доказательств. Вы можете просмотреть руководство по эксплуатации через Sin7Y/vscode-ola.

    * И некоторые корректировки:

* Название проекта было официально изменено с OlaVM на Ola. OlaVM будет ключевым модулем в Ola, а другие модули включают язык смарт-контрактов Ola-lang, Ola-compiler, Ola-sequencer и т. д.


  • Цель проекта расширена от программируемой масштабируемости до программируемой масштабируемости и конфиденциальности. Мы считаем, что программируемая масштабируемость и конфиденциальность станут следующими важными функциями Ethereum и даже индустрии блокчейнов.

Рассвет OlaVM

OlaVM — один из самых важных модулей в системе Ola. Будь то в публичной или частной сцене, основная функция OlaVM — выполнять программы и генерировать трассировки выполнения и действительные доказательства. Таким образом, для обеспечения высокой пропускной способности всей системы Ola очень важна эффективность модуля OlaVM, требующего быстрого выполнения программы, быстрого создания трассировки выполнения и, что наиболее важно, быстрого создания доказательств. .

n Чтобы быстро генерировать доказательства, OlaVM должен быть спроектирован как можно более удобным для zk и включать:

  1. Архитектура набора инструкций (ISA)
  2. Конечный выбор поля
  3. Встроенные, относящиеся к предопределенным вычислениям, эффективность которых нельзя было доказать путем разделения на инструкции ЦП.
  4. Пророки, относящиеся к недетерминированным вычислениям, которые неэффективно доказывать, но которые можно эффективно проверить.

Дизайн ISA

OlaVM использует архитектуру RISC (компьютер с сокращенным набором инструкций), которая содержит небольшое количество инструкций, в отличие от архитектуры CISC (компьютер со сложным набором инструкций). Подробное сравнение архитектур RISC и CISC см. на странице < strong>RISC VS CISC. Вот две основные причины для выбора архитектуры RISC.

* Во-первых, размер набора инструкций напрямую связан со сложностью системы ограничений. Основное проявление состоит в том, что увеличение количества инструкций приведет к увеличению количества селекторных полиномов и ограничений инструкций. Это может даже увеличить полиномиальный порядок всей системы ограничений и увеличить рабочую нагрузку, чтобы доказать это.

* Во-вторых, используется частота обучения. Если она основана на дизайне CISC, большее количество инструкций может привести к частичному сбою в большинстве вычислительных сценариев. Инструкции простаивают или используются в небольшом количестве, но ограничения, связанные с этими инструкциями, все еще существуют во всей системе ограничений, что увеличивает нагрузку на доказательство. без причины, что возвращает к проблеме, упомянутой в первом пункте.

Конечный выбор поля

Подобно Cairo, OlaVM также использует архитектуру алгебраического RISC. . Значение RISC аналогично тому, что описано выше, и Algebraic означает, что все операции, выполняемые OlaVM, являются полевыми операциями, что является одной из причин, по которой OlaVM может реализовать RISC. Все операции OlaVM являются операциями с полями, а это означает, что операнды слова и инструкции в OlaVM также являются элементами поля. Отличается от поле используется в Каире (P = 2^251 + 17 * 2^192 + 1), поле используемое OlaVM, - это поле Златовласки (P = 2 ^ 64 - 2 ^ 32 + 1). Таким образом, вычисление в поле Златовласка может выполняться быстрее из-за огромной разницы в размерах полей.

Встроенные

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

Поэтому для недружественных к zk вычислений, задействованных в логике выполнения транзакции, ее нужно выносить в отдельную таблицу для проверки правильности. Это идея встроенного дизайна. Поскольку нам нужно определить, какие данные в трассировке согласуются с соответствующими встроенными функциями, нам нужно добавить дополнительный селектор, чтобы включить его. В настоящее время OlaVM поддерживает встроенные функции побитовой, проверки диапазона и сравнения. Другие встроенные типы, такие как hash, ecdsa и т. д., будут поддерживаться в ближайшем будущем.

Пророки

Большое преимущество настроенной zkVM заключается в том, что zk-friendly можно применять в любом компоненте системы. Вышеупомянутые моменты дизайна связаны с дизайном самой OlaVM, а пророки будут интегрированы в Ola-complier. Например, необходимо установить в OlaVM специальный сегмент памяти с однократной записью и судить, является ли он сегментом кода пророка при выделении памяти компилятору.

Вот пример того, как пророк играет свою роль. Если доказывающий хочет доказать, что «я знаю, что квадратный корень из числа y равен x», для большинства виртуальных машин, поскольку нет инструкций или встроенных функций, соответствующих квадратной функции, это можно реализовать только с помощью инструкций виртуальной машины, а затем для создания доказательства, так как логика этого вычисления сложна, это увеличит нагрузку на доказывающего.

К счастью, проверка этого расчета проста, например, нужно ввести только две логики: x * x = y. проверка диапазона (х). Здесь в игру вступают пророки. Это как "пророк", который помогает вам рассчитать результаты текущего расчета. Затем вам нужно только внедрить в программу логику проверки, описанную выше. На рис. 1 показана теоретическая производительность различных методов обработки недетерминированных вычислений.

Figure 1. Processing Options for nondeterministic calculations

* Стоит отметить, что существуют существенные различия между пророками и встроенными модулями.

* Логика проверки пророков находится в программе, а логика проверки встроенных модулей представляет собой схему. * Пророки добавят только несколько сложностей для прувера, в то время как увеличение сложности прувера встроенными модулями будет намного больше. * Наконец, типы вычислений, решаемые ими, также различны. Пророки решают недетерминированные вычисления, а встроенные модули решают недружественные к zk вычисления.


Дополнительные сведения о дизайне см. в документе по дизайну Olavm и проект OlaVM.

Ola-lang

Ola-lang – это язык высокого уровня для реализации смарт-контрактов. С самого начала он разрабатывался как дружественный к zk язык программирования. На него повлияли Solidity и Rust. Разработчикам, знакомым с этими языками, очень легко начать работу, поскольку они имеют статическую типизацию и помимо других функций поддерживают сложные пользовательские типы. С помощью Ola-lang вы можете создавать контракты для различных целей.

Цели дизайна

* Эффективность: скорость выполнения и проверка программы хорошо сбалансированы, чтобы быть эффективными.

* Универсальный: простой в использовании и читаемый код, удобный для разработчиков с минимальным порогом обучения для разработчиков, знакомых с основными языками программирования, такими как C++/Rust, чтобы быстро приступить к написанию арифметических программ.

* Turing Complete: Ola-lang можно использовать для сложных программ, таких как циклы, рекурсия и т. д.

Основные особенности

* Он поддерживает компиляцию смарт-контрактов в LLVM IR, а также в пользовательский IR, что позволяет отделить компилятор от внешнего и внутреннего интерфейса для упрощения оптимизации.

* он поддерживает пророков, что упрощает проверку некоторых вычислений, подобных NP.

* он поддерживает встроенные функции, что упрощает работу с недружественными к zk вычислениями.

* он основан на синтаксисе Solidity и способе написания контрактов (внешний интерфейс Solidity может поддерживаться на более позднем этапе).

Обзор архитектуры

Компилятор Ola представляет LLVM-IR в качестве промежуточного конца компиляции, что позволяет разделить переднюю и заднюю части компиляции и максимально оптимизировать их. Архитектура компилятора Ola показана на следующей диаграмме.

Figure 2. The Architecture Overview of Ola Compiler

Путь к полнофункциональной OlaVM

| Функции | Статус | |----|----| | Простая логика вычислений | Завершено | | Вызовы функций | Завершено | | U32, U64, U256 libs | Текущий | | For Loop, глобальная переменная... | Текущий | | Хранение | Текущий | | Полнофункциональный ассемблер | Текущий | | Полнофункциональный LLVM | Не запущен | | Встроенные | Не запущен | | Пророки | Не запущено |

Таблица 1. Путь к полнофункциональной OlaVM

Помимо описанного выше вехового дизайна, есть и другие детали, которые необходимо уточнить. См. открыть проблемы для списка предлагаемых функций (и известных проблем). Дополнительные сведения о языке Ola и о том, как использовать компилятор Ola, см. в репозитории

.

Присоединяйтесь к нам

Sin7y Labs ищет талантливых и целеустремленных людей, которые присоединятся к нашей команде в качестве разработчиков и местных представителей/менеджеров сообщества. Мы предлагаем динамичную и ориентированную на технологии рабочую среду, конкурентоспособную заработную плату и льготы, а также возможности для карьерного роста и развития. Если вы заинтересованы в том, чтобы стать частью ведущей технологической компании и увлечены технологиями с нулевым разглашением, мы будем рады услышать от вас.

Чтобы подать заявку, напишите по адресу contact@sin7y.org и отправьте свое резюме и сопроводительное письмо с описанием вашей квалификации и заинтересованности в этой должности. Присоединяйтесь к серверу Sin7y - Ola Discord, если у вас есть дополнительные вопросы


О нас

Компания Sin7y, основанная в 2021 году и поддерживаемая первоклассными разработчиками блокчейнов, представляет собой инкубатор проектов и группу исследователей технологий блокчейн, которая исследует наиболее важные и передовые технологии, включая EVM, Layer2, кросс-чейн, конфиденциальные вычисления, автономные платежи. решения и т. д. В настоящее время мы создаем Ola, универсальную платформу, поддерживающую экосистему Ethereum с программируемой конфиденциальностью, программируемой масштабируемостью и совместимостью для разработчиков. Если вы хотите поговорить с нами, присоединяйтесь к нашему серверу Discord или напишите нам по адресу contact@sin7y.org.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE