В этом посте мы рассмотрим недавно популярные концепции zkCoprocessor и zkOracle и сравним их различия.
Когда создается термин, его истинное значение не определяется самим собой. Мы видели это очень часто в случае блокчейна.
Мы видим аналогичное явление в термине zkCoprocessor. Все используют этот термин, но они не обязательно относятся к одним и тем же вещам.
Поэтому мы хотели выразить, что сам проект думает о zkCoprocessor, что сообщество понимает о zkCoprocessor, и что zkCoprocessor действительно означает и делает с нашей точки зрения.
Определение 1 от Axiom: zkCoprocessor доказывает исторические данные onchain.
Концепция zkCoprocessor была популяризирована Axiom, которая изначально задумала ее как zkAttestor. Из идеи Axiom zkCoprocessor представляет собой компонент, который "доказывает исторические данные on-chain и доверительно использует эти данные в смарт-контракте".
Обратите внимание, что команда Brevis сказала, что эти типы zkCoprocessors по сути являются слоем API/DSL поверх базовой zk схемы. Поэтому это нельзя программировать.
Определение 2 из RISC Zero: zkCoprocessor переносит вычисления с цепи на цепь.
RISC Zero также часто называет себя zkCoprocessor. С их точки зрения, они видят zkCoprocessor как более широкое понятие, «инструмент для использования ZKPs для выгрузки вычислений с цепи на внецепочную».
Определение от Петериса (то же, что и 1): zkCoprocessor может получить доступ к историческому состоянию onchain.
Петерис из Aera Finance веритчто zkCoprocessor действует очень похоже на стейт оракул, основная функция которого - доступ к историческим данным. В то же время, он и Rishabh из BananaHQсчитает, что описание определения 2 больше похоже на zkVM, чем на подкласс zkCoprocessor.
Определение от Messari, Modular Media и Kobi (то же самое, что и 2): zkCoprocessor выгружает вычисления с цепи на цепь.
Messari также дал свое собственное определение zkCoprocessor. Сами, исследователь в Messari, веритчто zkCoprocessor позволяет разработчикам смарт-контрактов легко выносить сложную логику за пределы цепи без новых доверительных предположений. Модульный медиа такжедает ту же концепцию. Kobi из Geometryсравнивает rollup с сопроцессором, Бревис добавил, что zkCoprocessor торги за счет затрат на поддержание постоянного хранилища состояния против сверхускоренной производительности, Taiko придумал дизайн Ускорительный Rollupкоторые дополнительно исследовали идею Rollup Coprocessor. Это та же самая определение, что и RISC Zero.
Подводя итог, мы приходим к выводу, что на практике существует два типа zkCoprocessor, и они следующие:
Hyper Oracle предоставляет нам объяснение Oracle в Определение zkOracle для Ethereum.
Oracle практически подводит итог «инфраструктуре» в любом пространстве блокчейна, как лучшее определение, чем сопроцессор.
Если входными данными для инфраструктуры/оракула являются данные вне сети, а выходными данными являются ончейн, то это входной оракул (например, Chainlink Price Feed). И наоборот, это выходной оракул (например, The Graph). Если сначала выходной оракул, затем входной оракул, то это оракул ввода-вывода (например, Gelato Network).
Короче говоря, оракул очень похож на концепцию копроцессора, но в то же время обладает характеристиками доступа к данным и вычислений.
Возьмем гипероракул в качестве примера, какова связь между zkOracleи zkCoprocessor?
Обсуждаемый в статье Defining zkOracle for Ethereum zkOracle на самом деле обладает возможностями как zkCoprocessors.
Например, zkOracle, такой как Гипер Oracle:
Когда мы напрямую сравниваем два типа zkCoprocessor с zkOracle, мы видим, что zkOracle имеет все функции zkCoprocessor одновременно:
При прямом сравнении zkOracle - это более полное решение, которое может предоставить разработчикам более полный технологический стек.
Два zkCoprocessors расширяют свои соответствующие вертикали, например, Data Access zkCoprocessor разблокирует сценарии межцепочечных взаимодействий, а zkVM Compute zkCoprocessor представляет собой zkVM-основанный zk rollup.
Какой выбрать при построении?
Пошагово мы можем принимать решения о создании приложения.
Во-первых, чистая реализация контрактов Solidity по-прежнему очень хороший выбор. Хотя чистые смарт-контракты не предоставляют некоторые из лучших новейших функций, они все еще достаточны.в определенных сценарияхТакже текущая доступность Arbitrum Stylus разблокировала множество новых приложений с чистым смарт-контрактом.
Во многих случаях разработчики могут захотеть использовать Data Access zkCoprocessor или zkOracle для смарт-контрактов, чтобы получить доступ к более богатым источникам данных.
В этом сценарии, если использовать Data Access zkCoprocessor отдельно, вычисление все равно обрабатывается в смарт-контракте. Роль zkCoprocessor заключается в упрощении сложности получения данных традиционным способом, а не в увеличении вычислительной мощности смарт-контракта.
В данном сценарии мы видим множество небольших проектов, связанных с данными, а не полноценных DApps в традиционном смысле:
Часто некоторые сложные алгоритмы не могут быть вычислены напрямую на цепи, для игр вычислительная логика очень сложна, например, etherquake и GameOfLife, которые стоят $2k для запуска одного шага. Или сложные алгоритмы, связанные с машинным обучением, которые невозможно выполнить на цепи. Поэтому нам нужен zkVM zkCoprocessor или zkOracle для выполнения вычислений за пределами цепи, а затем представить их на цепи в качестве ZKP.
В этом примере мы можем увидеть некоторый из их неограниченного вычислительного потенциала:
Наконец, мы говорили о приложениях, которые можно создать только с помощью zkOracle. Возьмем в качестве примера приложение DeFi, полноценный DeFi очень сложен. Следующее поколение приложений DeFi, или DeFi 3.0 DApps, потребуется:
Мы уже обсудили, как zkOracle объединяет возможности как zkCoprocessors, одновременно выполняя первые два функциональных требования. Как zkOracle выполняет автономную функцию и как zkCoprocessor этого не делает?
Итак, что означает отсутствие автономного режима в zkCoprocessor:
Таким образом, zkOracle является идеальным и достаточным выбором для полноценного приложения, такого как DeFi.
Следует отметить, что Хуки также могут обрабатывать некоторые отсутствующие функции zkCoprocessor, но ТОЛЬКО в сценариях, например, DeFi, и не универсально.
Пригласить больше голосов
В этом посте мы рассмотрим недавно популярные концепции zkCoprocessor и zkOracle и сравним их различия.
Когда создается термин, его истинное значение не определяется самим собой. Мы видели это очень часто в случае блокчейна.
Мы видим аналогичное явление в термине zkCoprocessor. Все используют этот термин, но они не обязательно относятся к одним и тем же вещам.
Поэтому мы хотели выразить, что сам проект думает о zkCoprocessor, что сообщество понимает о zkCoprocessor, и что zkCoprocessor действительно означает и делает с нашей точки зрения.
Определение 1 от Axiom: zkCoprocessor доказывает исторические данные onchain.
Концепция zkCoprocessor была популяризирована Axiom, которая изначально задумала ее как zkAttestor. Из идеи Axiom zkCoprocessor представляет собой компонент, который "доказывает исторические данные on-chain и доверительно использует эти данные в смарт-контракте".
Обратите внимание, что команда Brevis сказала, что эти типы zkCoprocessors по сути являются слоем API/DSL поверх базовой zk схемы. Поэтому это нельзя программировать.
Определение 2 из RISC Zero: zkCoprocessor переносит вычисления с цепи на цепь.
RISC Zero также часто называет себя zkCoprocessor. С их точки зрения, они видят zkCoprocessor как более широкое понятие, «инструмент для использования ZKPs для выгрузки вычислений с цепи на внецепочную».
Определение от Петериса (то же, что и 1): zkCoprocessor может получить доступ к историческому состоянию onchain.
Петерис из Aera Finance веритчто zkCoprocessor действует очень похоже на стейт оракул, основная функция которого - доступ к историческим данным. В то же время, он и Rishabh из BananaHQсчитает, что описание определения 2 больше похоже на zkVM, чем на подкласс zkCoprocessor.
Определение от Messari, Modular Media и Kobi (то же самое, что и 2): zkCoprocessor выгружает вычисления с цепи на цепь.
Messari также дал свое собственное определение zkCoprocessor. Сами, исследователь в Messari, веритчто zkCoprocessor позволяет разработчикам смарт-контрактов легко выносить сложную логику за пределы цепи без новых доверительных предположений. Модульный медиа такжедает ту же концепцию. Kobi из Geometryсравнивает rollup с сопроцессором, Бревис добавил, что zkCoprocessor торги за счет затрат на поддержание постоянного хранилища состояния против сверхускоренной производительности, Taiko придумал дизайн Ускорительный Rollupкоторые дополнительно исследовали идею Rollup Coprocessor. Это та же самая определение, что и RISC Zero.
Подводя итог, мы приходим к выводу, что на практике существует два типа zkCoprocessor, и они следующие:
Hyper Oracle предоставляет нам объяснение Oracle в Определение zkOracle для Ethereum.
Oracle практически подводит итог «инфраструктуре» в любом пространстве блокчейна, как лучшее определение, чем сопроцессор.
Если входными данными для инфраструктуры/оракула являются данные вне сети, а выходными данными являются ончейн, то это входной оракул (например, Chainlink Price Feed). И наоборот, это выходной оракул (например, The Graph). Если сначала выходной оракул, затем входной оракул, то это оракул ввода-вывода (например, Gelato Network).
Короче говоря, оракул очень похож на концепцию копроцессора, но в то же время обладает характеристиками доступа к данным и вычислений.
Возьмем гипероракул в качестве примера, какова связь между zkOracleи zkCoprocessor?
Обсуждаемый в статье Defining zkOracle for Ethereum zkOracle на самом деле обладает возможностями как zkCoprocessors.
Например, zkOracle, такой как Гипер Oracle:
Когда мы напрямую сравниваем два типа zkCoprocessor с zkOracle, мы видим, что zkOracle имеет все функции zkCoprocessor одновременно:
При прямом сравнении zkOracle - это более полное решение, которое может предоставить разработчикам более полный технологический стек.
Два zkCoprocessors расширяют свои соответствующие вертикали, например, Data Access zkCoprocessor разблокирует сценарии межцепочечных взаимодействий, а zkVM Compute zkCoprocessor представляет собой zkVM-основанный zk rollup.
Какой выбрать при построении?
Пошагово мы можем принимать решения о создании приложения.
Во-первых, чистая реализация контрактов Solidity по-прежнему очень хороший выбор. Хотя чистые смарт-контракты не предоставляют некоторые из лучших новейших функций, они все еще достаточны.в определенных сценарияхТакже текущая доступность Arbitrum Stylus разблокировала множество новых приложений с чистым смарт-контрактом.
Во многих случаях разработчики могут захотеть использовать Data Access zkCoprocessor или zkOracle для смарт-контрактов, чтобы получить доступ к более богатым источникам данных.
В этом сценарии, если использовать Data Access zkCoprocessor отдельно, вычисление все равно обрабатывается в смарт-контракте. Роль zkCoprocessor заключается в упрощении сложности получения данных традиционным способом, а не в увеличении вычислительной мощности смарт-контракта.
В данном сценарии мы видим множество небольших проектов, связанных с данными, а не полноценных DApps в традиционном смысле:
Часто некоторые сложные алгоритмы не могут быть вычислены напрямую на цепи, для игр вычислительная логика очень сложна, например, etherquake и GameOfLife, которые стоят $2k для запуска одного шага. Или сложные алгоритмы, связанные с машинным обучением, которые невозможно выполнить на цепи. Поэтому нам нужен zkVM zkCoprocessor или zkOracle для выполнения вычислений за пределами цепи, а затем представить их на цепи в качестве ZKP.
В этом примере мы можем увидеть некоторый из их неограниченного вычислительного потенциала:
Наконец, мы говорили о приложениях, которые можно создать только с помощью zkOracle. Возьмем в качестве примера приложение DeFi, полноценный DeFi очень сложен. Следующее поколение приложений DeFi, или DeFi 3.0 DApps, потребуется:
Мы уже обсудили, как zkOracle объединяет возможности как zkCoprocessors, одновременно выполняя первые два функциональных требования. Как zkOracle выполняет автономную функцию и как zkCoprocessor этого не делает?
Итак, что означает отсутствие автономного режима в zkCoprocessor:
Таким образом, zkOracle является идеальным и достаточным выбором для полноценного приложения, такого как DeFi.
Следует отметить, что Хуки также могут обрабатывать некоторые отсутствующие функции zkCoprocessor, но ТОЛЬКО в сценариях, например, DeFi, и не универсально.