Pickles SNARK: смарт-контракты в сети Mina

From Mina Wiki
Jump to navigation Jump to search

Айзек Меклер, CTO и соучредитель O(1) Labs. Разработчик Mina Protocol.

Pickles.jpeg

Pickles - это новая система криптографических доказательств и набор программных средств, которые впервые используют SNARK c функцией рекурсивной композиции без системы доверительной настройки (trusted setup).

В предстоящем релизе тестовой сети Mina (3.3) мы представим Pickles - новую систему криптографических доказательств и набор программных средств, которые впервые используют SNARK c функцией рекурсивной композиции без системы доверительной настройки (trusted setup). Pickles станет основой для разработки конфиденциальных масштабируемых смарт-контрактов в сети Mina.

Система доверительной настройки уже давно сбивает с толку пользователей SNARKs: самые скептично настроенные пользователи считают, что система доверительной настройки делает использование SNARKs неприемлемым, поскольку приходится доверять тому, что некая сторона в прошлом вела себя честно.

Для более склонных к доверию пользователей система доверительной настройки становится препятствием для разработки новых приложений, так как до появления универсально настраиваемых SNARKs требовалась новая настройка перед каждым использованием SNARKs.

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

К счастью, в предстоящем релизе тестовой сети (3.3) Mina будет использовать Pickles SNARK, который не требует использования системы доверительной настройки и специально разработан для использования Snapps на основе смарт-контрактов в сети Mina.

В чем соль Pickles

Для разработчиков, работающих над конфиденциальными верифицируемыми приложениями (мы называем их Snapps), система криптографических доказательств и инструментарий разработчика требуют трех вещей:

  1. Простота в использовании с учетом необходимости системы доверительной настройки либо возможности обойтись без нее.
  2. Мощный инструментарий разработчика и набор функциональных возможностей высокого уровня.
  3. Эффективный прувер и верификатор и возможность масштабирования.

Pickles состоит из двух компонентов: основная часть – zk-SNARK и инструментарий разработчика (он содержит большой набор библиотечных функций, а также Pickles Inductive Proof System). Инструментарий разработчика делает процесс масштабирования с использованием рекурсии достаточно простым (в оригинале статьи присутствует непреднамеренный каламбур – “snap”). Оба компонента включают пункты 1–3.

Что внутри: ядро Pickles – zk-SNARK

Zk-SNARK, используемый в Pickles, значительно превосходит рекурсивный SNARK на основе Groth16, который использовался в Mina ранее.

Во-первых, он позволяет повысить производительность сети Mina за счет перехода с больших 753-битовых полей на маленькие 255-битовые поля. В результате этого:

  • Скорость VRF вычислений увеличилась в 16 раз
  • Скорость хеширования увеличилась примерно в 8 раз.
  • Требования к объему памяти сократились в 3 раза

Как упоминалось ранее, при использовании zk-SNARK отпадает необходимость в системе доверительной настройки . Это достигается путем надстройки на основе аргумента скалярного произведения, используемого в Halo. В дополнение используется технология пакетной обработки, настраиваемые ограничения и множество других усовершенствований.

И, в заключение, zk-SNARK поддерживает настраиваемые ограничения, предназначенные для обеспечения эффективной рекурсии, в частности, обеспечивая оптимальное:

  • Poseidon хеширование
  • Масштабирование, сложение и удвоение эллиптических кривых

Помимо этого, Pickles Inductive Proof System значительно превосходит все существующие решения для рекурсии, устраняя лишние детали базовой криптографии и делая разработку рекурсивных систем криптографических доказательств доступной для разработчиков приложений.

Отличительные особенности Pickles

Pickles – это единственный zk-SNARK, не требующий настройки, который поддерживает произвольную рекурсию ветвления (это необходимый элемент масштабирования). К тому же, он включает в себя быстрый прувер и, в отличие от STARKs на основе AIR, обладает небольшим размером и универсальностью. В таблице ниже приведены отличительные особенности Pickles по сравнению с другими системами.

System comparison.png

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

Pickled snapps

Для большинства верифицируемых приложений недостаточно обособленной работы, и в дополнение к пунктам 1–3, приведенным выше (например, имплементация, инструментальные средства разработки, масштабируемость) также необходимы: 4. Возможность составного взаимодействия с другими приложениями в полностью контролируемой экосистеме.

Pickles является фундаментальной технологией, на основе которой в сети Mina Protocol будут работать Snapps, основные вычислительные процессы, полностью верифицируемые смарт-контракты с технологией нулевого разглашения. Мы выпустим несколько новых статей по данной теме в ближайшее время; некоторые из приложений, которые нам особенно нравятся – децентрализованное конфиденциальное голосование, не требующие доверия игровые программы, конфиденциальные подтверждение кредитоспособности и универсальные оракулы. Больше информации об оракулах доступно по ссылке.

Мы выражаем благодарность командам Electric Coin Co., Aztec и авторам Zexe. Разработка Pickles была бы невозможной без их участия и ранних публикаций.

Если вы хотите обсудить вопросы криптографии с членами команды и сообществом или участвовать в наших тестнетах, вступайте в сообщество Discord.

Источник: Meet Pickles SNARK: Enabling Smart Contracts on Mina Protocol

Перевод: Natalia