
Автор: Kernel Ventures Turbo Guo
Рецензенты: Kernel Ventures Мэнди, Kernel Ventures Джошуа
TLDR:
Сопроцессор ZK — это решение, которое позволяет dApps использовать вычислительные ресурсы вне сети. В этой статье в основном обсуждаются реализация сопроцессора, различные приложения и направления дальнейшего развития.
ZkVM RISC Zero — это сопроцессорное решение ZK, которое позволяет контрактам внутри цепочки вызывать zkVM вне цепочки для запуска определенного кода Rust и возвращать результаты в цепочку, одновременно предоставляя zkp для контракта, чтобы проверить правильность расчета.
Сопроцессоры ZK имеют разные методы реализации. Помимо zkVM, пользователи также могут писать индивидуальные схемы ZK для своих собственных программ или использовать готовые платформы для написания схем, что позволяет контрактам использовать вычислительные ресурсы вне цепочки.
Сопроцессор ZK может играть роль в DeFi, например, размещать вычисления AMM вне цепочки, позволяя протоколу фиксировать значение, подобное MEV, или позволяя AMM реализовывать сложную и трудоемкую операционную логику. Сопроцессор ZK также может позволить протоколам кредитования рассчитывать процентные ставки в режиме реального времени, делая расчет маржи прозрачным и т. д. Существует две реализации zkAMM: одна использует zkVM, а другая — zkOracle.
Существуют и другие потенциальные возможности использования сопроцессора ZK. Например, кошельки могут использовать сопроцессор ZK для проверки личности вне сети. Сопроцессор также может позволить онлайн-играм выполнять более сложные вычисления и уменьшать объем газа, необходимый для управления DAO. ждать.
Схема сопроцессора ZK не определена, но по сравнению с пользователями, пишущими свои собственные схемы, более удобно использовать проект в качестве интерфейса для вызова ресурсов вне цепочки, но какие поставщики вычислительных услуг (традиционные поставщики облачных услуг, традиционные поставщики облачных услуг, и т. д.) связаны с проектом «интерфейса»? Децентрализованное совместное использование ресурсов) — это еще один вопрос, который стоит обсудить.
1. Значение и применение сопроцессора ZK.

Источник изображения: Kernel Ventures
Суть сопроцессора ZK заключается в перемещении вычислений внутри цепочки за пределы цепочки и использовании ZK для доказательства надежности процесса вычислений вне цепочки, что позволяет смарт-контрактам легко обрабатывать большие объемы вычислений, а также позволяет контрактам проверять надежность. расчетов. Это похоже на идею zkRollup, но Rollup — это уровень протокола цепочки, который использует вычислительные ресурсы вне цепочки, а сопроцессор ZK — это dApp, который использует ресурсы вне цепочки.
RISC Zero используется здесь для объяснения реализации сопроцессора ZK, но существует множество реализаций сопроцессоров ZK, которые будут представлены позже. RISC Zero разработал архитектуру сопроцессора Bonsai ZK, ядром которой является zkVM RISC Zero. Разработчики могут генерировать zkp на zkVM в случае, если «определенный фрагмент кода Rust выполняется правильно». При использовании zkVM конкретный процесс реализации сопроцессора ZK заключается в следующем:
Разработчик инициирует запрос к контракту ретрансляции Bonsai, то есть запрошенная разработчиком программа запускается в zkVM.
Контракт ретрансляции отправляет запрос в пул запросов вне сети.
Bonsai выполняет запрос в zkVM вне цепочки, выполняет крупномасштабные операции вне цепочки, а затем генерирует для него квитанцию.
Эти доказательства, также называемые «квитанциями», отправляются Bonsai обратно в сеть посредством ретрансляционного контракта.

Источник изображения: RISC Zero
Программа, сертифицированная в Bonsai, называется гостевой программой, и квитанция используется для подтверждения правильности выполнения гостевой программы. Полномочия включают журнал и печать. В частности, журнал содержит общедоступные выходные данные приложения zkVM, а печать используется для подтверждения действительности сертификата, то есть для подтверждения правильности выполнения гостевой программы. Сама печать также является zkSTARK, созданным сертификатором. . Проверка учетных данных гарантирует, что журнал был создан с использованием правильной схемы и т. д.
Bonsai упрощает для разработчиков процесс компиляции кода Rust в байт-код zkVM, загрузки программы, выполнения в виртуальной машине и проверки обратной связи, позволяя разработчикам больше сосредоточиться на логическом проектировании программы. И не только часть логики контракта, но и вся логика контракта может выполняться вне цепочки. RISC Zero также использует продолжения, которые разбивают большое поколение доказательств на множество частей, а затем доказывают каждую часть независимо. Это позволяет генерировать доказательства для больших программ, не занимая слишком много памяти. Помимо RISC Zero, несколько проектов, таких как IronMill, =nil Foundation и Marlin, также предоставляют аналогичные общие решения.
2. Применение сопроцессора ZK в DeFi
2.1 АММ — Бонсай в качестве сопроцессора
zkUniswap — это AMM, который использует вычислительные ресурсы вне цепочки. Его суть заключается в том, чтобы перенести часть вычислений свопа вне цепочки, и он использует Bonsai. Пользователь инициирует запрос на обмен в цепочке. Ретрансляционный контракт Bonsai получает запрос и инициирует расчет вне цепочки. После того, как Bonsai завершает расчет, он возвращает результат расчета и подтверждение функции обратного вызова в EVM. Если доказательство подтверждено успешно, будет выполнен обмен.
Однако обмен не завершается сразу. Процессы запроса и выполнения находятся в разных транзакциях. Это несет определенные риски, то есть состояние пула может измениться после подачи запроса и до завершения обмена. Потому что проверка основана на состоянии пула на момент отправки запроса. Если статус пула изменится, пока запрос все еще ожидает, проверка завершится неудачей.
Чтобы решить эту проблему, разработчики спроектировали блокировку бассейна. Когда пользователь инициирует запрос, все операции, кроме расчетного свопа, блокируются до тех пор, пока оффчейн не запустит своп внутри цепочки или пока не истечет время свопа (это время будет задано заранее). Если есть ограничение по времени, даже если есть проблемы с реле или зкп, пул не будет заблокирован навсегда. Конкретный лимит времени может составлять несколько минут.
zkUniswap имеет специальную конструкцию для MEV, то есть разработчики хотят, чтобы протокол фиксировал значение MEV. Теоретически у zkAMM также есть MEV, поскольку первый человек, отправивший транзакцию, может заблокировать ее, поэтому все по-прежнему будут конкурировать за газ, а строители также могут сортировать запрошенные транзакции. Но zkUniswap сам поглотит доход MEV, используя голландский аукцион с переменным градиентом процентной ставки (VRGDA).
zkUniswap выставляет блокировку на аукцион по сниженной цене. Если блокировка продается быстро, протокол узнает, что спрос в настоящее время высок, и автоматически увеличивает цену, если скорость продажи блокировки замедляется. протокол снизит цену. Это станет новым источником дохода. Аналогичным образом, соглашение предусматривает новую вещь для определения порядка транзакций, и деньги от конкурентной цены напрямую передаются стороне проекта через новую вещь. Это очень изобретательно.
2.2 AMM — zkOracle в качестве сопроцессора
Помимо использования zkVM, некоторые люди предложили использовать zkOracle для реализации использования вычислительных ресурсов вне цепочки, а zkOracle — это оракул, который учитывает как ввод, так и вывод. Обычно существует два типа оракулов: один — входной, а другой — выходной. Входной оракул сортирует (вычисляет) данные вне цепочки и помещает их в цепочку, а выходной оракул сортирует (вычисляет) данные. внутрисетевые данные), а затем передаются в офчейн. Оракул ввода-вывода (ввод и вывод) (zkOracle) сначала выполняет вывод, а затем ввод, позволяя цепочке использовать вычислительные ресурсы вне цепочки.
С одной стороны, zkOracle использует данные в цепочке в качестве источника данных. С другой стороны, он использует ZK, чтобы гарантировать, что вычисления узла оракула не являются мошенническими и могут реализовать функцию сопроцессора. Таким образом, основные вычисления AMM можно разместить в zkOracle. При реализации традиционных функций AMM zkOracle также можно использовать для реализации более сложных и ресурсоемких операций.

Источник изображения: github несколькоwwww/zkAMM
2.3 Расчет процентной ставки по кредиту, расчет маржи и другие приложения
Независимо от реализации, многие функции могут быть реализованы с помощью сопроцессора ZK. Например, кредитный договор больше не может устанавливать параметры, а может корректировать процентную ставку в зависимости от условий кредитования в реальном времени. Например, повышение процентных ставок для привлечения предложения, когда спрос на заемные деньги высок, а затем снижение процентных ставок, когда спрос низкий. Это требует, чтобы протокол кредитования получал данные внутри цепочки в режиме реального времени и выполнял большое количество вычислений для получения соответствующих параметров, что требует вычислений вне цепочки (если только стоимость цепочки не является чрезвычайно низкой).
Сложные операции, такие как расчет остатков маржи, нереализованных прибылей и убытков, сумм ликвидации и т. д., также могут быть переданы на выполнение сопроцессору. Преимущество использования сопроцессора состоит в том, что он делает эти приложения более прозрачными и проверяемыми, а логика механизма маржи больше не является секретным черным ящиком. Хотя вычисления выполняются вне сети, пользователи могут быть полностью уверены в правильности их выполнения. Кроме того, этот подход также применим и к расчетам опционов.
3. Другие применения сопроцессора ZK
3.1 Использование кошелька Bonsai в качестве сопроцессора
Bonfire Wallet использует zkVM для переноса вычислений проверки личности за пределы цепочки. Цель этого кошелька — позволить пользователям создавать одноразовые кошельки с биометрической информацией (отпечатками пальцев) или криптографическим аппаратным юбикеем.
В частности, Bonfire Wallet использует WebAuthn, общий стандарт аутентификации веб-страниц, позволяющий пользователям напрямую использовать свои устройства для аутентификации на веб-страницах без паролей. Таким образом, в кошельке Bonfire пользователь генерирует открытый ключ через WebAuthn (не в цепочке, для WebAuthn), а затем использует его для создания кошелька.
Каждый кошелек Burner имеет в цепочке контракт, который содержит открытый ключ WebAuthn. Контракт должен проверять подпись пользователя WebAuthn. Но объем вычислений очень велик, поэтому Bonsai используется для вынесения вычислений вне цепочки, проверки подписи вне цепочки с помощью гостевой программы zkVM и создания zkp для проверки в цепочке.

Источник изображения: Кошелек Bonfire
3.2 Получение данных внутри цепочки — пользователи сами пишут схемы ZK
Axiom — это приложение, которое не использует zkVM, а использует другое решение сопроцессора. Давайте сначала представим, что хочет сделать Axiom. Она надеется использовать сопроцессор ZK, чтобы предоставить контрактам доступ к исторической информации о цепочке. На самом деле контрактам сложно читать исторические данные, поскольку смарт-контракты обычно получают данные в реальном времени, а получение ценных данных в цепочке, таких как прошлые балансы счетов или данные, обходится очень дорого. записи транзакций.

Источник изображения: демо-версия Axiom
Узлы Axiom получают доступ к необходимым данным в цепочке и выполняют указанные вычисления вне цепочки, а затем генерируют доказательство с нулевым разглашением для расчета, доказывающее, что результат был правильно рассчитан на основе действительных данных в цепочке. Это доказательство проверяется в сети, гарантируя, что контракт может доверять результату.
Чтобы сгенерировать zkp для вычислений вне цепочки, вам необходимо скомпилировать программу в схему ZK. Я также упоминал об использовании zkVM для этого, и Axiom официально указала, что существует множество решений для этого вопроса, в которых необходимо взвесить производительность и гибкость. и опыт разработки:
Настраиваемые схемы: разработчики настраивают схемы для программы, которые определенно будут иметь лучшую производительность, но на разработку потребуется время;
eDSL/DSL: разработчики по-прежнему пишут свои собственные схемы, но существуют некоторые дополнительные платформы, которые помогают разработчикам решать проблемы, связанные с ZK, что позволяет сбалансировать производительность и опыт разработки.
zkVM: Разработчики напрямую используют готовые виртуальные машины для запуска ZK, что очень удобно, но официально в Axiom считают, что эффективность очень низкая.
Поэтому Axiom выбрала второй вариант, а команда проекта также предоставила пользователям набор оптимизированных модулей ZK, чтобы они могли проектировать свои собственные схемы.
Проектом, похожим на Axiom, является Herodotus, но он хочет создать промежуточное программное обеспечение для межсетевой передачи информации. Поскольку обработка информации осуществляется вне цепочки, разумно позволить разным цепочкам получать обработанные данные. Другой проект, «Пространство и время», использует аналогичную архитектуру для реализации индексации данных.
3.3 Ончейн-игры, управление DAO и другие приложения
Кроме того, сопроцессоры ZK можно использовать для сетевых игр и управления DAO. RISC Zero считает, что любые вычисления, требующие более 250 тыс. газа, будут дешевле с использованием сопроцессора ZK, но как это будет определяться, еще неизвестно. Управление DAO также может использовать сопроцессор ZK, поскольку в нем участвуют несколько человек и несколько контрактов, что потребляет вычислительные ресурсы. RISC Zero утверждает, что плата за газ может быть снижена на 50% после использования бонсай. ZKML — это, по сути, идея сопроцессора ZK, поэтому Modulus Labs и Giza также являются проектами в этой области, но концепция сопроцессора ZK шире.
Кроме того, существуют некоторые вспомогательные проекты в области сопроцессоров ZK, такие как ezkl, который предоставляет компиляторы для создания схем ZK, наборы инструментов для развертывания ZK, инструменты для перемещения внутрицепных вычислений за пределы цепочки и т. д.
4. Перспективы на будущее
Сопроцессор позволяет ончейн-приложениям иметь внешние вычислительные ресурсы типа «облака», что обеспечивает относительно дешевые большие объемы вычислений, при этом в цепочке обрабатываются только необходимые вычисления. В реальных ситуациях zkVM также может работать в облаке. Сопроцессор ZK — это, по сути, архитектура, способ размещения вычислений внутри цепочки вне цепочки, и нет ограничений на то, кто предоставляет вычислительные ресурсы вне цепочки.
По сути, автономные вычислительные ресурсы совместно используются традиционными крупными производителями, даже децентрализованными вычислительными ресурсами и локальными устройствами. Каждое из этих трех направлений отличается. Традиционные крупные производители могут предоставлять относительно зрелые решения для автономных вычислений. В будущем «надежность» децентрализованных вычислительных ресурсов может стать более высокой, а локальные вычисления пользователей также будут обладать большим воображением. Однако многие проекты сопроцессоров ZK в настоящее время предпочитают предоставлять услуги на стадии закрытого исходного кода, поскольку восходящий и нисходящий поток этого трека еще не сформированы, а услуги не могут быть усовершенствованы и переданы различным проектам. В будущем есть две возможности. :
Существует большое количество проектов, конкурирующих за каждый аспект сопроцессора ZK.
Проект с хорошим опытом обслуживания занимает большую часть рынка
С точки зрения разработчика, при использовании сопроцессора ZK они могут использовать только один «интерфейсный» проект. Именно поэтому Amazon Cloud занимает большую часть рынка, и разработчики привыкли к одному методу развертывания. Но как проект «интерфейса» для оффчейн вычислительных ресурсов, то, какие поставщики вычислительных услуг (традиционные поставщики облачных вычислений, децентрализованное совместное использование ресурсов) связаны за ним, — это еще один вопрос, достойный обсуждения.
Kernel Ventures — это криптовалютный венчурный фонд, управляемый сообществом исследований и разработок, с более чем 70 инвестициями на ранних стадиях, ориентированными на инфраструктуру, промежуточное программное обеспечение, децентрализованные приложения, особенно ZK, Rollup, DEX, модульные блокчейны и вертикальные области для миллиардов пользователей криптовалюты в будущее, например абстракция учетных записей, доступность данных, масштабируемость и т. д. В течение последних семи лет мы стремимся поддерживать рост основных сообществ разработчиков и университетских ассоциаций блокчейнов по всему миру.
Ссылки:
Руководство по сопроцессорам ZK для масштабируемости: https://www.risczero.com/news/a-guide-to-zk-coprocessors-for-scalability
Определение zkOracle для Ethereum: https://ethresear.ch/t/defining-zkoracle-for-ethereum/15131
zkUniswap: первый в своем роде zkAMM: https://ethresear.ch/t/zkuniswap-a-first-of-its-kind-zkamm/16839
Что такое сопроцессор ZK?:https://blog.axiom.xyz/what-is-a-zk-coprocessor/
Краткое введение в сопроцессоры: https://crypto.mirror.xyz/BFqUfBNVZrqYau3Vz9WJ-BACw5FT3W30iUX3mPlKxtA
Новейшие приложения, созданные на базе Hyper Oracle (бонус: то, что вы можете создать прямо сейчас): https://mirror.xyz/hyperoracleblog.eth/Tik3nBI9mw05Ql_aHKZqm4hNxfxaEQdDAKn7JKcx0xQ
Кошелек Bonfire: https://ethglobal.com/showcase/bonfire-wallet-n1dzp

