zkOracle та zkCoprocessor

Середній1/7/2024, 1:23:40 PM
Стаття пояснює поняття zkCorprocessor та zkOracle, виділяючи відмінності між ними та розгортаючи сценарії, в яких кожен тип zk підходить для різних випадків використання.

0. Вступ

У цьому пості ми розглянемо недавно популярні концепції zkCoprocessor та zkOracle та порівняємо їх відмінності.

1. Визначення zkCoprocessor

Коли термін створюється, його справжнє значення не визначається сам по собі. Ми бачили це дуже часто у випадку блокчейну.

  1. ZK: Хоча академіки часто згадують приватні функції Zero Knowledge, у контексті блокчейну ZK часто просто означає лаконічність та валідність технології. Навіть проекти, які побудовані на ZK Rollup, називають себе zkSomething.
  2. DA: До цього часу багато людей справді не розуміли, що Доступність Даних - це не Зберігання Даних, тому для вирішення цієї термінологічної проблеми деякі люди мають запропоновано заміна DA на DP(Публікація даних), або зроблення всього значення DA у Публікацію даних + Зберігання даних (1, 2).

Ми бачимо схоже явище в терміні zkCoprocessor. Усі використовують цей термін, але вони не обов'язково посилаються на ті самі речі.

Таким чином, ми хотіли висловити те, що проект вважає сам про zkCoprocessor, що розуміє спільнота про zkCoprocessor, і що zkCoprocessor дійсно означає та робить з нашої точки зору.

а) Від самого проекту

Визначення 1 з аксіоми: zkCoprocessor доводить історичні дані onchain.

Концепцію zkCoprocessor у популярності вивів Axiom, яка спочатку уявила його як zkAttestor. З ідеї Axiom zkCoprocessor представляє компонент, який "доводить історичні дані on-chain та безпосередньо використовує ці дані в розумному контракті".

Зауважте, що команда Brevis сказала, що цей тип zkCoprocessors суттєво є шаром API/DSL на верхньому рівні базової zk схеми. Так що це не є програмованим.

Визначення 2 з RISC Zero: zkCoprocessor відвантажує обчислення з onchain на offchain.

RISC Zero також часто називає себе zkCoprocessor. З їхньої точки зору вони бачать zkCoprocessor як більш широке поняття, «інструмент для використання ZKPs для зняття обчислень з ланцюжка на ланцюжок».

b) Від спільноти

Визначення від Петеріса (таке ж, як у 1): zkCoprocessor може отримати доступ до історичного стану onchain.

Петеріс з Aera Finance віритьце zkCoprocessor діє дуже схоже на державний оракул, головна функція якого полягає в доступі до історичних даних. У той же час, він і Rishabh з BananaHQвважає, що опис визначення 2 більше схожий на zkVM, ніж на підклас zkCoprocessor.

Визначення від Messari, Modular Media та Kobi (такий самий, як 2): zkCoprocessor розриває обчислення з onchain на offchain.

Messari також дав свою власну визначення zkCoprocessor. Самі, дослідник в Messari,вважає що процесор zkCo дозволяє розробникам смарт-контрактів легко розвантажувати складну логіку офчейн без нових припущень про довіру. Модульні носії також надає той самий концепт. Kobi з Geometry порівнює rollup з копроцесором, Бревіс додав, що zkCoprocessor торги відкидають витрати на підтримку постійного сховища стану на користь гіперпідвищеної продуктивності, Taiko придумав дизайн Booster Rollupяка подальше дослідила ідею копроцесора Rollup. Це те саме визначення, що і у RISC Zero.

c) Від нас

Підсумовуючи, ми приходимо до висновку, що на практиці існує два типи zkCoprocessor, а саме:

  1. Доступ до даних zkCoprocessor: головним чином подає певні дані (історичний блок, історичний стан) на певне місце (смарт-контракт).
  2. zkVM Compute zkCoprocessor: обчислюється за допомогою offchain zkVM, а потім повертає результат на onchain.Стискає обчислення O(n) лише до перевірки O(1).

2. Визначення zkOracle

a) Оракул

Hyper Oracle надає нам пояснення про Оракула уВизначення zkOracle для Ethereum.

Оракул практично узагальнює "інфраструктуру" в будь-якому просторі блокчейну, як краще визначення, ніж копроцесор.

Якщо вхідними даними для інфра/оракула є офчейн-дані, а вихід ончейн, то це вхідний оракул (наприклад, Chainlink Price Feed). І навпаки, це вихідний оракул (наприклад, Граф). Якщо спочатку вихідний оракул, потім вхідний оракул, то це оракул введення-виведення (наприклад, Gelato Network).

Оракул дуже схожий на концепцію співпроцесора, але водночас має характеристики доступу до даних та обчислень.

b) zkOracle

Беручи Гіпероракул як приклад, яка взаємозв'язок між zkOracleі zkCoprocessor?

zkOracle, який обговорюється в терміні Defining zkOracle для Ethereum, фактично має можливості як zkCoprocessors.

Наприклад, zkOracle, такий як Гіпер Оракул:

  1. Доступ до історичних даних у недоступний спосіб.
  2. Може виконувати програмовані обчислення.

3. zkCoprocessor та zkOracle

Коли ми прямо порівнюємо два типи zkCoprocessor з zkOracle, ми бачимо, що zkOracle має всі функції zkCoprocessor одночасно:

  1. асинхронна обробка для смарт-контракту
  2. взаємодія з та покращення можливостей існуючих додатків на L1 або L2
  3. відвантаження обчислень в ресурсоємній системі

Пряме порівняння показує, що zkOracle - це більш комплексне рішення, яке може забезпечити розробникам більш повний технологічний стек.

Два zkCoprocessors розширюють свої відповідні вертикалі, наприклад, Data Access zkCoprocessor розблоковує сценарії міжланцюжкового взаємодії, а zkVM Compute zkCoprocessor представляє собою zkVM-базовий zk rollup.

4. Побудуйте з zkCoprocessor або zkOracle

Який вибрати при будівництві?

У порядку крок за кроком ми можемо приймати деякі рішення щодо побудови додатка.

a) DApp з чистим Смарт-контрактом

Спочатку чиста реалізація умовних контрактів на мові Solidity все ще є дуже хорошим вибором. Хоча чисті умовні контракти не надають деяких найкращих новаторських функцій, вони все ще є достатнімиу певних сценаріях. Також поточна доступність Arbitrum Stylus розблокувала багато нових додатків з чистим смарт-контрактом.

b) DApp, яка потребує більшого доступу до даних

У багатьох випадках розробники можуть бажати використовувати Data Access zkCoprocessor або zkOracle для смарт-контрактів, щоб отримати доступ до більш різноманітних джерел даних.

У цьому сценарії, якщо Data Access zkCoprocessor використовується самостійно, обчислення все ще обробляється в смарт-контракті. Роль zkCoprocessor полягає в тому, щоб зменшити складність отримання даних традиційним способом, але не зробити смарт-контракт більш обчислювально потужним.

У цьому сценарії ми бачимо багато невеликих проектів, пов'язаних з даними, скоріше, ніж повноцінні DApps у традиційному розумінні:

  1. Використання zkCoprocessor Аксіома: Краще управління LP, MEVictim знижка
  2. Використання zkOracle Hyper Oracle: Uniswap v2 Ціна, OpenSea Торгова активність, Обсяг USDT Монітор

c) DApp, яка потребує великого обчислення

Часто деякі складні алгоритми не можуть бути обчислені безпосередньо на ланцюгу, для ігор обчислювальна логіка дуже складна, така як etherquake та GameOfLife, яка коштує $2k для виконання одного кроку. Або складні алгоритми, пов'язані з ML. Або складні алгоритми, пов'язані з ML, які неможливо виконати на ланцюгу. Тому нам потрібно zkVM zkCoprocessor або zkOracle для виконання обчислень офлайн, а потім подати їх на ланцюг як ZKP.

У цьому прикладі ми бачимо деякий їх необмежений обчислювальний потенціал:

  1. Використання zkCoprocessor Bonsai: Zeth (Довести Reth у zkVM), zk-настрій
  2. Використання zkOracle Hyper Oracle або zkWASM: zkGo (Prove L2-Geth в zkVM, Тип-0 zkEVM),zkAMM

d) Наступне покоління DApp з повними можливостями (DeFi 3.0)

Наостанок ми говорили про додатки, які можна будувати лише за допомогою zkOracle. На прикладі додатку DeFi, повноцінний DeFi є дуже складним. Наступне покоління додатків DeFi, або DeFi 3.0 DApps, буде потрібно:

  1. Більший доступ до даних
  2. Необмежене обчислення
  3. Автономний (для ліквідації, оновлення параметрів, управління протоколом)

Ми вже обговорювали, як zkOracle поєднує можливості як zkCoprocessors, виконуючи перші два функціональні вимоги. Як zkOracle виконує автономну функцію і як zkCoprocessor ні?

  1. zkOracle: Не потрібен жодний втручання людини. Доступ до даних та обчислювальні завдання можуть бути повністю визначені та виконані в програмованому та автоматизованому способі. Усі виклики onchain завжди є довірчими та дійсними.
  2. zkCoprocessor: Вимагає онлайн-моніторингу та фільтрації відповіді обчислення релеєра або додавання додаткових складних механізмів.

Так що означає відсутність автономного в zkCoprocessor:

  1. Недостатня децентралізація
  2. Ризик потенційно складних механізмів
  3. Психічне навантаження розробника

Отже, zkOracle - це ідеальний та достатній вибір для повного додатка, такого як DeFi.

Варто зазначити, що хуки також можуть обробляти частину відсутньої функціональності zkCoprocessor, але ТІЛЬКИ в сценаріях на кшталт DeFi, а не універсально.

Disclaimer:

  1. Ця стаття перепечатана з [ дзеркало]. Усі авторські права належать оригінальному автору [SevenX Ventures]. Якщо є зауваження до цього перевидання, будь ласка, зв'яжіться з Gate Learnкоманді, і вони оперативно займуться цим.
  2. Відповідальність за відмову: Погляди та думки, висловлені в цій статті, є виключно поглядами автора і не становлять жодної інвестиційної поради.
  3. Переклади статті на інші мови виконуються командою Gate Learn. Якщо не зазначено інше, копіювання, поширення або плагіатування перекладених статей заборонене.

zkOracle та zkCoprocessor

Середній1/7/2024, 1:23:40 PM
Стаття пояснює поняття zkCorprocessor та zkOracle, виділяючи відмінності між ними та розгортаючи сценарії, в яких кожен тип zk підходить для різних випадків використання.

0. Вступ

У цьому пості ми розглянемо недавно популярні концепції zkCoprocessor та zkOracle та порівняємо їх відмінності.

1. Визначення zkCoprocessor

Коли термін створюється, його справжнє значення не визначається сам по собі. Ми бачили це дуже часто у випадку блокчейну.

  1. ZK: Хоча академіки часто згадують приватні функції Zero Knowledge, у контексті блокчейну ZK часто просто означає лаконічність та валідність технології. Навіть проекти, які побудовані на ZK Rollup, називають себе zkSomething.
  2. DA: До цього часу багато людей справді не розуміли, що Доступність Даних - це не Зберігання Даних, тому для вирішення цієї термінологічної проблеми деякі люди мають запропоновано заміна DA на DP(Публікація даних), або зроблення всього значення DA у Публікацію даних + Зберігання даних (1, 2).

Ми бачимо схоже явище в терміні zkCoprocessor. Усі використовують цей термін, але вони не обов'язково посилаються на ті самі речі.

Таким чином, ми хотіли висловити те, що проект вважає сам про zkCoprocessor, що розуміє спільнота про zkCoprocessor, і що zkCoprocessor дійсно означає та робить з нашої точки зору.

а) Від самого проекту

Визначення 1 з аксіоми: zkCoprocessor доводить історичні дані onchain.

Концепцію zkCoprocessor у популярності вивів Axiom, яка спочатку уявила його як zkAttestor. З ідеї Axiom zkCoprocessor представляє компонент, який "доводить історичні дані on-chain та безпосередньо використовує ці дані в розумному контракті".

Зауважте, що команда Brevis сказала, що цей тип zkCoprocessors суттєво є шаром API/DSL на верхньому рівні базової zk схеми. Так що це не є програмованим.

Визначення 2 з RISC Zero: zkCoprocessor відвантажує обчислення з onchain на offchain.

RISC Zero також часто називає себе zkCoprocessor. З їхньої точки зору вони бачать zkCoprocessor як більш широке поняття, «інструмент для використання ZKPs для зняття обчислень з ланцюжка на ланцюжок».

b) Від спільноти

Визначення від Петеріса (таке ж, як у 1): zkCoprocessor може отримати доступ до історичного стану onchain.

Петеріс з Aera Finance віритьце zkCoprocessor діє дуже схоже на державний оракул, головна функція якого полягає в доступі до історичних даних. У той же час, він і Rishabh з BananaHQвважає, що опис визначення 2 більше схожий на zkVM, ніж на підклас zkCoprocessor.

Визначення від Messari, Modular Media та Kobi (такий самий, як 2): zkCoprocessor розриває обчислення з onchain на offchain.

Messari також дав свою власну визначення zkCoprocessor. Самі, дослідник в Messari,вважає що процесор zkCo дозволяє розробникам смарт-контрактів легко розвантажувати складну логіку офчейн без нових припущень про довіру. Модульні носії також надає той самий концепт. Kobi з Geometry порівнює rollup з копроцесором, Бревіс додав, що zkCoprocessor торги відкидають витрати на підтримку постійного сховища стану на користь гіперпідвищеної продуктивності, Taiko придумав дизайн Booster Rollupяка подальше дослідила ідею копроцесора Rollup. Це те саме визначення, що і у RISC Zero.

c) Від нас

Підсумовуючи, ми приходимо до висновку, що на практиці існує два типи zkCoprocessor, а саме:

  1. Доступ до даних zkCoprocessor: головним чином подає певні дані (історичний блок, історичний стан) на певне місце (смарт-контракт).
  2. zkVM Compute zkCoprocessor: обчислюється за допомогою offchain zkVM, а потім повертає результат на onchain.Стискає обчислення O(n) лише до перевірки O(1).

2. Визначення zkOracle

a) Оракул

Hyper Oracle надає нам пояснення про Оракула уВизначення zkOracle для Ethereum.

Оракул практично узагальнює "інфраструктуру" в будь-якому просторі блокчейну, як краще визначення, ніж копроцесор.

Якщо вхідними даними для інфра/оракула є офчейн-дані, а вихід ончейн, то це вхідний оракул (наприклад, Chainlink Price Feed). І навпаки, це вихідний оракул (наприклад, Граф). Якщо спочатку вихідний оракул, потім вхідний оракул, то це оракул введення-виведення (наприклад, Gelato Network).

Оракул дуже схожий на концепцію співпроцесора, але водночас має характеристики доступу до даних та обчислень.

b) zkOracle

Беручи Гіпероракул як приклад, яка взаємозв'язок між zkOracleі zkCoprocessor?

zkOracle, який обговорюється в терміні Defining zkOracle для Ethereum, фактично має можливості як zkCoprocessors.

Наприклад, zkOracle, такий як Гіпер Оракул:

  1. Доступ до історичних даних у недоступний спосіб.
  2. Може виконувати програмовані обчислення.

3. zkCoprocessor та zkOracle

Коли ми прямо порівнюємо два типи zkCoprocessor з zkOracle, ми бачимо, що zkOracle має всі функції zkCoprocessor одночасно:

  1. асинхронна обробка для смарт-контракту
  2. взаємодія з та покращення можливостей існуючих додатків на L1 або L2
  3. відвантаження обчислень в ресурсоємній системі

Пряме порівняння показує, що zkOracle - це більш комплексне рішення, яке може забезпечити розробникам більш повний технологічний стек.

Два zkCoprocessors розширюють свої відповідні вертикалі, наприклад, Data Access zkCoprocessor розблоковує сценарії міжланцюжкового взаємодії, а zkVM Compute zkCoprocessor представляє собою zkVM-базовий zk rollup.

4. Побудуйте з zkCoprocessor або zkOracle

Який вибрати при будівництві?

У порядку крок за кроком ми можемо приймати деякі рішення щодо побудови додатка.

a) DApp з чистим Смарт-контрактом

Спочатку чиста реалізація умовних контрактів на мові Solidity все ще є дуже хорошим вибором. Хоча чисті умовні контракти не надають деяких найкращих новаторських функцій, вони все ще є достатнімиу певних сценаріях. Також поточна доступність Arbitrum Stylus розблокувала багато нових додатків з чистим смарт-контрактом.

b) DApp, яка потребує більшого доступу до даних

У багатьох випадках розробники можуть бажати використовувати Data Access zkCoprocessor або zkOracle для смарт-контрактів, щоб отримати доступ до більш різноманітних джерел даних.

У цьому сценарії, якщо Data Access zkCoprocessor використовується самостійно, обчислення все ще обробляється в смарт-контракті. Роль zkCoprocessor полягає в тому, щоб зменшити складність отримання даних традиційним способом, але не зробити смарт-контракт більш обчислювально потужним.

У цьому сценарії ми бачимо багато невеликих проектів, пов'язаних з даними, скоріше, ніж повноцінні DApps у традиційному розумінні:

  1. Використання zkCoprocessor Аксіома: Краще управління LP, MEVictim знижка
  2. Використання zkOracle Hyper Oracle: Uniswap v2 Ціна, OpenSea Торгова активність, Обсяг USDT Монітор

c) DApp, яка потребує великого обчислення

Часто деякі складні алгоритми не можуть бути обчислені безпосередньо на ланцюгу, для ігор обчислювальна логіка дуже складна, така як etherquake та GameOfLife, яка коштує $2k для виконання одного кроку. Або складні алгоритми, пов'язані з ML. Або складні алгоритми, пов'язані з ML, які неможливо виконати на ланцюгу. Тому нам потрібно zkVM zkCoprocessor або zkOracle для виконання обчислень офлайн, а потім подати їх на ланцюг як ZKP.

У цьому прикладі ми бачимо деякий їх необмежений обчислювальний потенціал:

  1. Використання zkCoprocessor Bonsai: Zeth (Довести Reth у zkVM), zk-настрій
  2. Використання zkOracle Hyper Oracle або zkWASM: zkGo (Prove L2-Geth в zkVM, Тип-0 zkEVM),zkAMM

d) Наступне покоління DApp з повними можливостями (DeFi 3.0)

Наостанок ми говорили про додатки, які можна будувати лише за допомогою zkOracle. На прикладі додатку DeFi, повноцінний DeFi є дуже складним. Наступне покоління додатків DeFi, або DeFi 3.0 DApps, буде потрібно:

  1. Більший доступ до даних
  2. Необмежене обчислення
  3. Автономний (для ліквідації, оновлення параметрів, управління протоколом)

Ми вже обговорювали, як zkOracle поєднує можливості як zkCoprocessors, виконуючи перші два функціональні вимоги. Як zkOracle виконує автономну функцію і як zkCoprocessor ні?

  1. zkOracle: Не потрібен жодний втручання людини. Доступ до даних та обчислювальні завдання можуть бути повністю визначені та виконані в програмованому та автоматизованому способі. Усі виклики onchain завжди є довірчими та дійсними.
  2. zkCoprocessor: Вимагає онлайн-моніторингу та фільтрації відповіді обчислення релеєра або додавання додаткових складних механізмів.

Так що означає відсутність автономного в zkCoprocessor:

  1. Недостатня децентралізація
  2. Ризик потенційно складних механізмів
  3. Психічне навантаження розробника

Отже, zkOracle - це ідеальний та достатній вибір для повного додатка, такого як DeFi.

Варто зазначити, що хуки також можуть обробляти частину відсутньої функціональності zkCoprocessor, але ТІЛЬКИ в сценаріях на кшталт DeFi, а не універсально.

Disclaimer:

  1. Ця стаття перепечатана з [ дзеркало]. Усі авторські права належать оригінальному автору [SevenX Ventures]. Якщо є зауваження до цього перевидання, будь ласка, зв'яжіться з Gate Learnкоманді, і вони оперативно займуться цим.
  2. Відповідальність за відмову: Погляди та думки, висловлені в цій статті, є виключно поглядами автора і не становлять жодної інвестиційної поради.
  3. Переклади статті на інші мови виконуються командою Gate Learn. Якщо не зазначено інше, копіювання, поширення або плагіатування перекладених статей заборонене.
Comece agora
Inscreva-se e ganhe um cupom de
$100
!