Переслайте оригінальну назву «Парадигма нульового знання: Частина 1 - Що таке zk-VM?»
Що таке докази з нульовим розголошенням (ZKP)?
Якщо у вас немає попередніх знань про докази з нульовим розголошенням (ZKP), це відео від Wired пояснює концепцію на п'яти рівнях складності в інтерактивній формі з легко зрозумілими прикладами та демонстраціями. Настійно рекомендую.
Простіше кажучи, ZKP дозволяють одній стороні (доказу) довести іншій стороні (верифікатору), що вона щось знає, не розкриваючи, що це за річ або будь-яку додаткову інформацію. Точніше, ZKP доводять знання фрагмента даних або знання результату обчислень, не розкриваючи даних або вхідних даних. Процес створення доказу з нульовим розголошенням включає в себе серію математичних моделей для перетворення результатів обчислень в шматок безглуздої інформації, що доводить успішне виконання коду, який пізніше може бути перевірений.
У деяких випадках для перевірки доведення, яке будується після кількох раундів алгебраїчних перетворень і криптографії, потрібно менше роботи, ніж для виконання обчислень. Це унікальне поєднання безпеки та масштабованості робить криптографію з нульовим розголошенням таким потужним інструментом.
zkSNARKs: Стислий неінтерактивний аргумент знань з нульовим знанням
zkSTARKs: Нульове знання Масштабований прозорий аргумент знань
(Примітка: міст Succinct використовує SNARK, але SP1 є протоколом на основі STARK)
Варто зазначити, що всі СТАРКИ є СНАРКАМИ, але не всі СНАРКИ є СТАРКАМИ.
Для кращого загального розуміння SNARK і STARK, ми рекомендуємо прочитати цю серію статей @krzhang/privacy-in-cryptos-zero-knowledge-and-zk-snarks-1-2-68ce1838fd9c">articles, написану Яном Чжаном і І Сунь з Axiom, а також цю колекцію статей на github Ventali Tan.
Віртуальна машина (ВМ) – це програма, яка запускає програми. У контексті, zkVM — це віртуальний комп'ютер, який реалізований як система для генерації доказів з нульовим розголошенням, або універсальна схема, або інструмент, для генерації ZKP для будь-якої програми чи обчислень.
zkVM усувають необхідність вивчати складну математику та криптографію для проектування та кодування ZK, а також дозволяють будь-якому розробнику виконувати програми, написані на улюблених мовах, і генерувати ZKP, що значно полегшує інтеграцію та взаємодію з нульовими знаннями. Загалом, більшість посилань на zkVM неявно включають набори інструментів компілятора та системи доказів, додані до віртуальної машини, яка виконує програми, а не лише до самої віртуальної машини. Нижче ми узагальнимо основні компоненти zkVM та їх функції:
Основні компоненти зкВМ
Проектування та реалізація кожного компонента регулюється вибором доказу (SNARK або STARKs) та архітектурою набору інструкцій (ISA) zkVM. Традиційно ISA визначає, на що здатний центральний процесор (типи даних, регістри, пам'ять тощо), а також послідовність дій, які виконує центральний процесор під час виконання програми. У контексті ISA визначає машинний код, який інтерпретується та виконується віртуальною машиною. Вибір ISA може призвести до радикальних відмінностей у доступності та зручності використання zkVM, а також у швидкості та ефективності процесів генерації доказів, що лежить в основі побудови будь-якої zkVM.
Нижче наведено кілька прикладів zkVM та їх компонентів для довідки.
zkVM та їх компоненти
Наразі ми зосередимося на взаємодії між кожним компонентом на високому рівні, щоб забезпечити основу для розуміння алгебраїчних і криптографічних процесів, а також компромісів дизайну zkVM у наступній статті.
Наведена нижче діаграма являє собою абстраговану узагальнену блок-схему процесу zkVM, розділену і розподілену за категоріями між форматами (входами / виходами) програми при її переміщенні по компонентах zkVM. Ми детально розглянемо кожен процес у наступних статтях.
Загальний потік для зкВМ
Перебіг процесу зкВМ, як правило, виглядає наступним чином:
Дослідник отримує слід і представляє його як множину многочленів, обмежених набором обмежень, по суті, переводячи обчислення в алгебру, розкладаючи факти математично.
Об'єктив виконує зобов'язання щодо цих многочленів, використовуючи схему поліноміальних зобов'язань (PCS). Схема зобов'язань — це протокол, який дозволяє виконавцю створити відбиток деяких даних X, що називається зобов'язанням X, а потім довести факти про X, не розкриваючи X, використовуючи зобов'язання X. PCS - це відбиток пальця; "попередньо оброблена" стисла версія обмежень на обчислення. Це дозволяє доводити факти обчислень, тепер виражені в поліноміальному рівнянні, використовуючи випадкові величини, запропоновані верифікатором на наступних кроках.
Ведучий запускає поліноміальне інтерактивне доведення оракула (PIOP), щоб показати, що зобов'язані многочлени являють собою слід виконання, який задовольняє заданим обмеженням. PIOP — це інтерактивний протокол доведення, що складається з серії раундів, у яких програматор надсилає зобов'язання поліномам, верифікатор відповідає випадковими значеннями полів, а ровер надає оцінки многочлена при цих випадкових значеннях, подібно до «розв'язання» поліноміального рівняння за допомогою випадкових значень для імовірнісного переконання верифікатора.
Застосування евристики Фіат-Шаміра; організатор запускає PIOP у неінтерактивному режимі, де поведінка верифікатора обмежується надсиланням псевдовипадкових очок виклику. У криптографії евристика Фіата-Шаміра перетворює інтерактивний доказ знань в цифровий підпис для перевірки. Цей крок шифрує доказ і робить його нульовим знанням.
Той, хто виставляє, повинен переконати верифікатора в правильності заявлених обчислень поліномів щодо поліноміальних зобов'язань, які він надіслав верифікатору. Для цього довод виробляє «оціночне» або «відкрите» доведення, яке забезпечується поліноміальною схемою зобов'язань (відбиток).
Узагальнено, доказ zkVM доводить, для заданої програми, заданого результату і заданих початкових умов, що існує деякий вхід, який змушує програму видавати заданий результат при виконанні з заданих початкових умов. Ми можемо об'єднати цю інструкцію з потоком процесу, щоб отримати наступний опис zkVM.
Доказ zkVM доводить, для заданої програми віртуальної машини та заданого виходу, що існує деякий вхід, який змушує дану програму виробляти заданий вихід під час виконання на віртуальній машині.
За якими критеріями слід оцінювати зкВМ? Іншими словами, коли говорити, що одна зкВМ краща за іншу? По правді кажучи, відповідь залежить від випадку використання.
Маркетингові дослідження Lita показують, що для більшості випадків комерційного використання найважливішими властивостями є швидкість, ефективність і лаконічність, залежно від застосування. Деякі програми чутливі до ціни та хочуть оптимізувати для низького споживання енергії та низького використання капіталу для доведення; Для них ефективність основного часу, ймовірно, є найважливішим показником для оптимізації. Інші програми, особливо фінансові або пов'язані з торгівлею, чутливі до затримок і потребують оптимізації для швидкості.
Більшість оприлюднених порівнянь продуктивності зосереджені виключно на швидкості, яка є важливою, але не цілісним вимірюванням продуктивності. Є також кілька важливих властивостей, які вимірюють надійність zkVM; Більшість з яких не відповідають стандартам, готовим до виробництва, навіть для провідних компаній ринку.
Ми пропонуємо, щоб zkVM оцінювалися за наступними критеріями, розділеними на дві підмножини:
Основні критерії оцінки zk-VM
Базовий рівень: Вимірює надійність zkVM
Продуктивність: вимірює можливості zkVM
4.1 Базовий рівень: припущення щодо правильності, безпеки та довіри
При оцінці zkVM для критично важливих додатків слід враховувати правильність і безпеку як базовий рівень. Для того, щоб бути впевненим у правильності, повинна бути достатня підстава і досить сильна заявлена безпека. Крім того, припущення про довіру повинні бути досить слабкими для застосування.
Без цих властивостей zkVM потенційно гірше, ніж марно для програми, оскільки вона може не працювати належним чином і наражати користувачів на злом і експлойти.
i. Правильність
Правильність складається з трьох властивостей:
Ви можете мати повноту без обґрунтованості; Якщо система доказів доводить все, в тому числі і хибність, то очевидно, що вона повна, але не обґрунтована. І навпаки, ви можете мати обґрунтованість без повноти; Якщо система доказів доводить, що програма існувала, але не може довести обчислення, то, очевидно, вона обґрунтована (зрештою, вона ніколи не доводить хибності), але не повна.
II. Безпека
На практиці всі три властивості правильності мають ненульові допуски. Звідси випливає, що всі докази є статистичними ймовірностями правильності, а не абсолютними достовірностями. Допуск означає максимально допустиму ймовірність того, що одна властивість вийде з ладу. Нульові допуски, звичайно, є ідеалом, але на практиці zkVM не досягають нульових допусків на всі ці властивості. Ідеальна обґрунтованість і повнота виявляються несумісними з лаконічністю, і не існує відомих методів досягнення ідеального нульового знання. Поширеним способом вимірювання безпеки є біти безпеки, де допуск 1 / (2^n) називається n бітами безпеки. Чим більше бітів безпеки, тим краще.
Якщо zkVM абсолютно правильний, це не обов'язково означає, що він надійний. Коректність має на увазі лише те, що zkVM задовольняє своїм захисним властивостям до заявлених допусків. Це не означає, що заявлені допуски достатньо низькі, щоб бути готовими до продажу. Крім того, якщо zkVM достатньо безпечний, це не означає, що він правильний; Безпека відноситься до заявлених допусків, а не до допусків, які фактично досягаються. Тільки тоді, коли zkVM є абсолютно правильним і достатньо безпечним, можна сказати, що zkVM надійна з дотриманням заявлених допусків.
iii. Припущення про довіру
Коли zkVM мають припущення щодо довіри, це зазвичай відбувається у формі довіреного процесу налаштування. Процес налаштування для системи доказів ZK запускається один раз, перед тим, як перший доказ буде згенеровано за допомогою системи доказів, щоб згенерувати певну інформацію, яка називається «даними налаштування». У процесі надійного налаштування одна або кілька осіб генерують певну випадковість, яка включається в дані налаштування, і потрібно припустити, що принаймні одна з цих осіб видалила випадковість, яку вони включили в дані налаштування.
На практиці існує дві поширені моделі припущення про довіру.
Чесне припущення про довіру більшості стверджує, що з деякого набору з N індивідуумів більше N/2 цих осіб продемонстрували цілісність у якійсь конкретній взаємодії з системою, яка зазвичай використовується блокчейнами
Припущення про довіру «1 з N» стверджує, що з деякого набору N індивідуумів принаймні один з цих осіб продемонстрував цілісність у певній конкретній взаємодії з системою, яка зазвичай використовується інструментами та додатками на основі MPC.
Загальновизнано, що за інших рівних умов, zkVM без припущень про довіру є більш безпечними, ніж zkVM, які вимагають припущень про довіру.
4.2 Трилема zkVM: баланс швидкості, ефективності та лаконічності в zkVM
Трилема zkVM: швидкість, ефективність та лаконічність
Швидкість, ефективність і лаконічність - все це властивості ковзної шкали. Всі ці фактори впливають на вартість zkVM кінцевим споживачем. Те, як вони повинні бути зважені при оцінці, залежить від застосування. Часто найшвидше рішення не є найефективнішим або найлаконічнішим; найлаконічніше рішення не є найшвидшим або найефективнішим; і так далі, і тому подібне. Давайте спочатку визначимо кожну властивість, перш ніж пояснювати їх взаємозв'язок
i. Швидкість
Швидкість повинна бути визначена та виміряна відносно конкретних програм випробувань, вхідних даних та систем, щоб переконатися, що її можна кількісно оцінити. Цей показник має вирішальне значення для додатків, чутливих до затримок, де швидка доступність доказів є важливою, але пов'язана з більшими накладними витратами та більшими розмірами доказів
ii. Ефективність
Виконавець споживає два види ресурсів: ядро-час і простір. Таким чином, ефективність може бути поділена на ефективність основного часу та ефективність використання простору.\
Ефективність ядра-часу: середня кількість часу, протягом якого ровер працює на всіх ядрах, помножена на кількість ядер, що запускають доказ. Для одноядерного доведення споживання часу ядра і швидкість - це одне і те ж. Для багатоядерного процесора, що працює в багатоядерному режимі на багатоядерній системі, споживання часу ядра та швидкість – це не одне й те саме. Якщо програма повністю використовує 5 ядер або потоків протягом 5 секунд, це буде 25 секунд часу користувача і 5 секунд часу настінного годинника.
Ефективність використання простору: відноситься до використовуваної ємності сховища, наприклад оперативної пам'яті
Час користувача цікавий як показник енергії, спожитої під час виконання обчислень. У ситуації, коли всі ядра використовуються практично весь час, енергоспоживання центрального процесора має залишатися відносно постійним. У цій ситуації час, витрачений користувачем на виконання коду, прив'язаного до процесора, переважно в режимі користувача, повинен бути приблизно лінійно пропорційний кількості ват-годин (тобто енергії), споживаних цим виконанням коду.
Економія на споживанні енергії або використанні обчислювальних ресурсів повинна бути цікавою з точки зору будь-яких операцій з доведення, які мають достатній масштаб, щоб їх рахунок за електроенергію (або рахунок за хмарні обчислення) для доведення становив значні експлуатаційні витрати. З цих причин час користувача є цікавим показником. Нижчі витрати на доведення дозволяють постачальникам послуг перекладати нижчі ціни на докази на клієнтів, чутливих до витрат.
Обидва види ефективності пов'язані з енергоспоживанням процесу доведення та кількістю капіталу, що використовується процесом доведення, що пов'язано з фінансовими витратами на доведення. Щоб операціоналізувати визначення ефективності для вимірювання, визначення повинно бути зроблено відносно однієї або декількох тестових програм, одного або декількох тестових входів для кожної з цих програм і однієї або декількох тестових систем.
iii. Лаконічність
Стислість — це сукупність трьох різних показників, складність перевірки яких додатково поділяється:
Верифікація, як правило, є однією основною операцією, тому швидкість і ефективність основного часу, як правило, еквівалентні в цьому контексті. Як і у випадку зі швидкістю та ефективністю, операціоналізація визначення стислості вимагає визначення наборів тестових програм, тестових входів та тест-систем.
Визначивши кожну властивість продуктивності, ми тепер проілюструємо ефект оптимізації однієї властивості над іншими.
Загалом, оптимізація для однієї якості означає відсутність оптимізації для іншої якості, і тому для вибору оптимального рішення в кожному конкретному випадку необхідний багатовимірний аналіз.
Хорошим способом зважування цих властивостей в оцінці може бути визначення прийнятних рівнів для кожної властивості, а потім визначення, які властивості є найбільш важливими. Найважливіші властивості повинні бути оптимізовані за умови підтримки досить хороших рівнів за всіма іншими властивостями.
Нижче ми узагальнюємо кожен об'єкт нерухомості та їх ключові міркування:
Оціночні властивості зкВМ
На наведеній вище таблиці ми завершуємо першу статтю нашої серії. У наступних статтях ми будемо спиратися на блок-схему, показану вище, щоб пояснити поширені арифметичні та криптографічні процеси в zkVM.
Якщо ви вважаєте цю статтю корисною, відвідайте наш веб-сайт та gitbook , щоб дізнатися більше про те, що ми створюємо в Lita.
Крім того, слідкуйте за нами на X і Discord , щоб бути в курсі подій, щоб не пропустити решту серії
Переслайте оригінальну назву «Парадигма нульового знання: Частина 1 - Що таке zk-VM?»
Що таке докази з нульовим розголошенням (ZKP)?
Якщо у вас немає попередніх знань про докази з нульовим розголошенням (ZKP), це відео від Wired пояснює концепцію на п'яти рівнях складності в інтерактивній формі з легко зрозумілими прикладами та демонстраціями. Настійно рекомендую.
Простіше кажучи, ZKP дозволяють одній стороні (доказу) довести іншій стороні (верифікатору), що вона щось знає, не розкриваючи, що це за річ або будь-яку додаткову інформацію. Точніше, ZKP доводять знання фрагмента даних або знання результату обчислень, не розкриваючи даних або вхідних даних. Процес створення доказу з нульовим розголошенням включає в себе серію математичних моделей для перетворення результатів обчислень в шматок безглуздої інформації, що доводить успішне виконання коду, який пізніше може бути перевірений.
У деяких випадках для перевірки доведення, яке будується після кількох раундів алгебраїчних перетворень і криптографії, потрібно менше роботи, ніж для виконання обчислень. Це унікальне поєднання безпеки та масштабованості робить криптографію з нульовим розголошенням таким потужним інструментом.
zkSNARKs: Стислий неінтерактивний аргумент знань з нульовим знанням
zkSTARKs: Нульове знання Масштабований прозорий аргумент знань
(Примітка: міст Succinct використовує SNARK, але SP1 є протоколом на основі STARK)
Варто зазначити, що всі СТАРКИ є СНАРКАМИ, але не всі СНАРКИ є СТАРКАМИ.
Для кращого загального розуміння SNARK і STARK, ми рекомендуємо прочитати цю серію статей @krzhang/privacy-in-cryptos-zero-knowledge-and-zk-snarks-1-2-68ce1838fd9c">articles, написану Яном Чжаном і І Сунь з Axiom, а також цю колекцію статей на github Ventali Tan.
Віртуальна машина (ВМ) – це програма, яка запускає програми. У контексті, zkVM — це віртуальний комп'ютер, який реалізований як система для генерації доказів з нульовим розголошенням, або універсальна схема, або інструмент, для генерації ZKP для будь-якої програми чи обчислень.
zkVM усувають необхідність вивчати складну математику та криптографію для проектування та кодування ZK, а також дозволяють будь-якому розробнику виконувати програми, написані на улюблених мовах, і генерувати ZKP, що значно полегшує інтеграцію та взаємодію з нульовими знаннями. Загалом, більшість посилань на zkVM неявно включають набори інструментів компілятора та системи доказів, додані до віртуальної машини, яка виконує програми, а не лише до самої віртуальної машини. Нижче ми узагальнимо основні компоненти zkVM та їх функції:
Основні компоненти зкВМ
Проектування та реалізація кожного компонента регулюється вибором доказу (SNARK або STARKs) та архітектурою набору інструкцій (ISA) zkVM. Традиційно ISA визначає, на що здатний центральний процесор (типи даних, регістри, пам'ять тощо), а також послідовність дій, які виконує центральний процесор під час виконання програми. У контексті ISA визначає машинний код, який інтерпретується та виконується віртуальною машиною. Вибір ISA може призвести до радикальних відмінностей у доступності та зручності використання zkVM, а також у швидкості та ефективності процесів генерації доказів, що лежить в основі побудови будь-якої zkVM.
Нижче наведено кілька прикладів zkVM та їх компонентів для довідки.
zkVM та їх компоненти
Наразі ми зосередимося на взаємодії між кожним компонентом на високому рівні, щоб забезпечити основу для розуміння алгебраїчних і криптографічних процесів, а також компромісів дизайну zkVM у наступній статті.
Наведена нижче діаграма являє собою абстраговану узагальнену блок-схему процесу zkVM, розділену і розподілену за категоріями між форматами (входами / виходами) програми при її переміщенні по компонентах zkVM. Ми детально розглянемо кожен процес у наступних статтях.
Загальний потік для зкВМ
Перебіг процесу зкВМ, як правило, виглядає наступним чином:
Дослідник отримує слід і представляє його як множину многочленів, обмежених набором обмежень, по суті, переводячи обчислення в алгебру, розкладаючи факти математично.
Об'єктив виконує зобов'язання щодо цих многочленів, використовуючи схему поліноміальних зобов'язань (PCS). Схема зобов'язань — це протокол, який дозволяє виконавцю створити відбиток деяких даних X, що називається зобов'язанням X, а потім довести факти про X, не розкриваючи X, використовуючи зобов'язання X. PCS - це відбиток пальця; "попередньо оброблена" стисла версія обмежень на обчислення. Це дозволяє доводити факти обчислень, тепер виражені в поліноміальному рівнянні, використовуючи випадкові величини, запропоновані верифікатором на наступних кроках.
Ведучий запускає поліноміальне інтерактивне доведення оракула (PIOP), щоб показати, що зобов'язані многочлени являють собою слід виконання, який задовольняє заданим обмеженням. PIOP — це інтерактивний протокол доведення, що складається з серії раундів, у яких програматор надсилає зобов'язання поліномам, верифікатор відповідає випадковими значеннями полів, а ровер надає оцінки многочлена при цих випадкових значеннях, подібно до «розв'язання» поліноміального рівняння за допомогою випадкових значень для імовірнісного переконання верифікатора.
Застосування евристики Фіат-Шаміра; організатор запускає PIOP у неінтерактивному режимі, де поведінка верифікатора обмежується надсиланням псевдовипадкових очок виклику. У криптографії евристика Фіата-Шаміра перетворює інтерактивний доказ знань в цифровий підпис для перевірки. Цей крок шифрує доказ і робить його нульовим знанням.
Той, хто виставляє, повинен переконати верифікатора в правильності заявлених обчислень поліномів щодо поліноміальних зобов'язань, які він надіслав верифікатору. Для цього довод виробляє «оціночне» або «відкрите» доведення, яке забезпечується поліноміальною схемою зобов'язань (відбиток).
Узагальнено, доказ zkVM доводить, для заданої програми, заданого результату і заданих початкових умов, що існує деякий вхід, який змушує програму видавати заданий результат при виконанні з заданих початкових умов. Ми можемо об'єднати цю інструкцію з потоком процесу, щоб отримати наступний опис zkVM.
Доказ zkVM доводить, для заданої програми віртуальної машини та заданого виходу, що існує деякий вхід, який змушує дану програму виробляти заданий вихід під час виконання на віртуальній машині.
За якими критеріями слід оцінювати зкВМ? Іншими словами, коли говорити, що одна зкВМ краща за іншу? По правді кажучи, відповідь залежить від випадку використання.
Маркетингові дослідження Lita показують, що для більшості випадків комерційного використання найважливішими властивостями є швидкість, ефективність і лаконічність, залежно від застосування. Деякі програми чутливі до ціни та хочуть оптимізувати для низького споживання енергії та низького використання капіталу для доведення; Для них ефективність основного часу, ймовірно, є найважливішим показником для оптимізації. Інші програми, особливо фінансові або пов'язані з торгівлею, чутливі до затримок і потребують оптимізації для швидкості.
Більшість оприлюднених порівнянь продуктивності зосереджені виключно на швидкості, яка є важливою, але не цілісним вимірюванням продуктивності. Є також кілька важливих властивостей, які вимірюють надійність zkVM; Більшість з яких не відповідають стандартам, готовим до виробництва, навіть для провідних компаній ринку.
Ми пропонуємо, щоб zkVM оцінювалися за наступними критеріями, розділеними на дві підмножини:
Основні критерії оцінки zk-VM
Базовий рівень: Вимірює надійність zkVM
Продуктивність: вимірює можливості zkVM
4.1 Базовий рівень: припущення щодо правильності, безпеки та довіри
При оцінці zkVM для критично важливих додатків слід враховувати правильність і безпеку як базовий рівень. Для того, щоб бути впевненим у правильності, повинна бути достатня підстава і досить сильна заявлена безпека. Крім того, припущення про довіру повинні бути досить слабкими для застосування.
Без цих властивостей zkVM потенційно гірше, ніж марно для програми, оскільки вона може не працювати належним чином і наражати користувачів на злом і експлойти.
i. Правильність
Правильність складається з трьох властивостей:
Ви можете мати повноту без обґрунтованості; Якщо система доказів доводить все, в тому числі і хибність, то очевидно, що вона повна, але не обґрунтована. І навпаки, ви можете мати обґрунтованість без повноти; Якщо система доказів доводить, що програма існувала, але не може довести обчислення, то, очевидно, вона обґрунтована (зрештою, вона ніколи не доводить хибності), але не повна.
II. Безпека
На практиці всі три властивості правильності мають ненульові допуски. Звідси випливає, що всі докази є статистичними ймовірностями правильності, а не абсолютними достовірностями. Допуск означає максимально допустиму ймовірність того, що одна властивість вийде з ладу. Нульові допуски, звичайно, є ідеалом, але на практиці zkVM не досягають нульових допусків на всі ці властивості. Ідеальна обґрунтованість і повнота виявляються несумісними з лаконічністю, і не існує відомих методів досягнення ідеального нульового знання. Поширеним способом вимірювання безпеки є біти безпеки, де допуск 1 / (2^n) називається n бітами безпеки. Чим більше бітів безпеки, тим краще.
Якщо zkVM абсолютно правильний, це не обов'язково означає, що він надійний. Коректність має на увазі лише те, що zkVM задовольняє своїм захисним властивостям до заявлених допусків. Це не означає, що заявлені допуски достатньо низькі, щоб бути готовими до продажу. Крім того, якщо zkVM достатньо безпечний, це не означає, що він правильний; Безпека відноситься до заявлених допусків, а не до допусків, які фактично досягаються. Тільки тоді, коли zkVM є абсолютно правильним і достатньо безпечним, можна сказати, що zkVM надійна з дотриманням заявлених допусків.
iii. Припущення про довіру
Коли zkVM мають припущення щодо довіри, це зазвичай відбувається у формі довіреного процесу налаштування. Процес налаштування для системи доказів ZK запускається один раз, перед тим, як перший доказ буде згенеровано за допомогою системи доказів, щоб згенерувати певну інформацію, яка називається «даними налаштування». У процесі надійного налаштування одна або кілька осіб генерують певну випадковість, яка включається в дані налаштування, і потрібно припустити, що принаймні одна з цих осіб видалила випадковість, яку вони включили в дані налаштування.
На практиці існує дві поширені моделі припущення про довіру.
Чесне припущення про довіру більшості стверджує, що з деякого набору з N індивідуумів більше N/2 цих осіб продемонстрували цілісність у якійсь конкретній взаємодії з системою, яка зазвичай використовується блокчейнами
Припущення про довіру «1 з N» стверджує, що з деякого набору N індивідуумів принаймні один з цих осіб продемонстрував цілісність у певній конкретній взаємодії з системою, яка зазвичай використовується інструментами та додатками на основі MPC.
Загальновизнано, що за інших рівних умов, zkVM без припущень про довіру є більш безпечними, ніж zkVM, які вимагають припущень про довіру.
4.2 Трилема zkVM: баланс швидкості, ефективності та лаконічності в zkVM
Трилема zkVM: швидкість, ефективність та лаконічність
Швидкість, ефективність і лаконічність - все це властивості ковзної шкали. Всі ці фактори впливають на вартість zkVM кінцевим споживачем. Те, як вони повинні бути зважені при оцінці, залежить від застосування. Часто найшвидше рішення не є найефективнішим або найлаконічнішим; найлаконічніше рішення не є найшвидшим або найефективнішим; і так далі, і тому подібне. Давайте спочатку визначимо кожну властивість, перш ніж пояснювати їх взаємозв'язок
i. Швидкість
Швидкість повинна бути визначена та виміряна відносно конкретних програм випробувань, вхідних даних та систем, щоб переконатися, що її можна кількісно оцінити. Цей показник має вирішальне значення для додатків, чутливих до затримок, де швидка доступність доказів є важливою, але пов'язана з більшими накладними витратами та більшими розмірами доказів
ii. Ефективність
Виконавець споживає два види ресурсів: ядро-час і простір. Таким чином, ефективність може бути поділена на ефективність основного часу та ефективність використання простору.\
Ефективність ядра-часу: середня кількість часу, протягом якого ровер працює на всіх ядрах, помножена на кількість ядер, що запускають доказ. Для одноядерного доведення споживання часу ядра і швидкість - це одне і те ж. Для багатоядерного процесора, що працює в багатоядерному режимі на багатоядерній системі, споживання часу ядра та швидкість – це не одне й те саме. Якщо програма повністю використовує 5 ядер або потоків протягом 5 секунд, це буде 25 секунд часу користувача і 5 секунд часу настінного годинника.
Ефективність використання простору: відноситься до використовуваної ємності сховища, наприклад оперативної пам'яті
Час користувача цікавий як показник енергії, спожитої під час виконання обчислень. У ситуації, коли всі ядра використовуються практично весь час, енергоспоживання центрального процесора має залишатися відносно постійним. У цій ситуації час, витрачений користувачем на виконання коду, прив'язаного до процесора, переважно в режимі користувача, повинен бути приблизно лінійно пропорційний кількості ват-годин (тобто енергії), споживаних цим виконанням коду.
Економія на споживанні енергії або використанні обчислювальних ресурсів повинна бути цікавою з точки зору будь-яких операцій з доведення, які мають достатній масштаб, щоб їх рахунок за електроенергію (або рахунок за хмарні обчислення) для доведення становив значні експлуатаційні витрати. З цих причин час користувача є цікавим показником. Нижчі витрати на доведення дозволяють постачальникам послуг перекладати нижчі ціни на докази на клієнтів, чутливих до витрат.
Обидва види ефективності пов'язані з енергоспоживанням процесу доведення та кількістю капіталу, що використовується процесом доведення, що пов'язано з фінансовими витратами на доведення. Щоб операціоналізувати визначення ефективності для вимірювання, визначення повинно бути зроблено відносно однієї або декількох тестових програм, одного або декількох тестових входів для кожної з цих програм і однієї або декількох тестових систем.
iii. Лаконічність
Стислість — це сукупність трьох різних показників, складність перевірки яких додатково поділяється:
Верифікація, як правило, є однією основною операцією, тому швидкість і ефективність основного часу, як правило, еквівалентні в цьому контексті. Як і у випадку зі швидкістю та ефективністю, операціоналізація визначення стислості вимагає визначення наборів тестових програм, тестових входів та тест-систем.
Визначивши кожну властивість продуктивності, ми тепер проілюструємо ефект оптимізації однієї властивості над іншими.
Загалом, оптимізація для однієї якості означає відсутність оптимізації для іншої якості, і тому для вибору оптимального рішення в кожному конкретному випадку необхідний багатовимірний аналіз.
Хорошим способом зважування цих властивостей в оцінці може бути визначення прийнятних рівнів для кожної властивості, а потім визначення, які властивості є найбільш важливими. Найважливіші властивості повинні бути оптимізовані за умови підтримки досить хороших рівнів за всіма іншими властивостями.
Нижче ми узагальнюємо кожен об'єкт нерухомості та їх ключові міркування:
Оціночні властивості зкВМ
На наведеній вище таблиці ми завершуємо першу статтю нашої серії. У наступних статтях ми будемо спиратися на блок-схему, показану вище, щоб пояснити поширені арифметичні та криптографічні процеси в zkVM.
Якщо ви вважаєте цю статтю корисною, відвідайте наш веб-сайт та gitbook , щоб дізнатися більше про те, що ми створюємо в Lita.
Крім того, слідкуйте за нами на X і Discord , щоб бути в курсі подій, щоб не пропустити решту серії