Вот простое и понятное введение в доказательства нулевого разглашения:
Представьте, что вы учитесь в начальной школе. Учитель - это проверяющий, а вы, как ученик, - доказатель. Как вы можете доказать, что вы понимаете формулу для решения квадратных уравнений? Вот где приходит математический экзамен.
Учитель случайным образом даст вам 10 связанных вопросов, и если вы действительно понимаете концепцию, то сможете решить их все. Во время этого процесса вам не нужно перечитывать или записывать конкретное содержание формулы, но учитель легко может проверить ваш уровень знаний.
Фактически, это метод, используемый Тартальей и Кардано (да, это имя), чтобы соревноваться, кто открыл решение кубического уравнения. Они оба не хотели раскрывать содержание своих формул друг другу, но через решение проблем они могли легко проверить и определить, овладели ли они этим знанием, не разглашая детали.
Какова цель доказательств нулевого разглашения? Цель состоит в экономии вычислительной мощности и уменьшении места на цепи во всем процессе. Кроме того, оно может обеспечивать защиту конфиденциальности, соответствуя характеристикам отсутствия доверия в блокчейне и принципам криптографии.
В области блокчейна термин "zk", используемый или упоминаемый, обычно не относится к фактическим доказательствам нулевого знания, а часто относится к доказательствам правильности. Из-за путаницы в терминологии некоторые части этого текста будут продолжать использовать эти "ошибочные" термины.
В современном мире блокчейна zk можно считать передовым и оптимальным решением для масштабируемости блокчейна (не истинный zk, а скорее Доказательство Подлинности) и технологии конфиденциальности (истинный zk), которая используется в проектах, таких как Tornado.cash, ZCash, zkSync, zk.money, Filecoin и Mina.
Текущие технические решения в основном делятся на две категории: SNARK и STARK. В STARK буква «S» означает масштабируемость, что означает, что доказанные утверждения имеют повторяющиеся структуры, в то время как SNARK поддерживает произвольные схемы, которые предварительно обрабатываются для достижения кратких доказательств. Среди них практическая реализация SNARKs занимает лидирующее положение, в то время как STARKs в основном применяются в большом масштабе в продуктах, запущенных StarkWare. Ниже приведено сравнение между ними.
С точки зрения Meme, STARK лучше, чем SNARK (😊, Звездные войны, Звездный путь).
Если SNARK - это будущее Ethereum 2.0, то STARK будет будущим Ethereum 3.0. Правда, преимущества STARK:
Однако доказательства, созданные STARK, имеют значительный размер. Из-за определенных ограничений, таких как те, которые налагаются WASM, во время конструирования могут потребоваться дополнительные операции (здесь мы имеем в виду SNARK). Недавно Mir предоставил практическую реализацию STARK на основе AIR с использованием Starky, который является частью Plonky2 (отношения между Plonky2 и Starky довольно сложны...). На мой взгляд, хотя размер можно оптимизировать с использованием различных техник, трудно дальнейше сжать временную сложность самого алгоритма.
Эти технологии доказательства нулевого знания можно комбинировать в разумной мере, чтобы создавать более мощные приложения. Например, Polygon Hermez использует SNARK для проверки корректности STARK, тем самым уменьшая комиссию за газ при публикации доказательства.
В целом, SNARK и STARK - отличные технологии доказательства нулевого знания, у каждой из которых есть свои сильные стороны, а их разумное сочетание имеет еще больший потенциал.
Упомянутые ранее Tornado.cash и zk.money - это похожие приложения, которые поддерживают только операции передачи с использованием доказательств нулевого знания. Они не поддерживают общие вычисления. По сравнению с этими приложениями у них есть только функциональность биткойна, гораздо меньше, чем у полностью тьюринг-полного Ethereum, не говоря уже о создании экосистемы (Смарт-контракты на биткойн еще не создали процветающую экосистему.).
zkVM - это виртуальная машина, обеспечивающая безопасные, проверяемые и надежные свойства с использованием доказательств в нулевом знании. Простыми словами, она принимает старое состояние и программу на входе и возвращает новое состояние. Она дарит всем приложениям сверхспособность доказательств в нулевом знании.
Презентация Miden на ETH Amsterdam эффективно суммировала, что такое zkVM, с одного слайда.
Преимущества zkVM:
Недостатки zkVM:
В настоящее время существует три основных типа zkVM, с соответствующими им наборами инструкций в скобках: Mainstream (WASM, RISC-V), EVM (байт-код EVM), ZK-Optimized (новый набор инструкций, оптимизированный для доказательств в нулевом знании, таких как Cairo и zkSync). Ниже приведена сравнительная таблица этих типов на основе презентации Miden на ETH Amsterdam.
Многие вещи, сделанные в экосистеме разработки нулевого доказательства, в основном связаны с обеспечением возможности разработчикам использовать библиотеку Circom (и snarkyjs, например) или другие недавно созданные языки (например, Leo или Cairo, которые имеют свои уникальные ограничения) для разработки общих zk DApps. Тем не менее, это не так просто и легко изучить, как использование Solidity на Ethereum.
Кроме того, существует множество проектов, таких как zkSync, Scroll, или несколько под зонтом Polygon, которые экспериментируют с zkEVM или другими решениями zkVM.
EVM — это виртуальная машина Ethereum, которую также можно понимать как набор сред исполнения для запуска смарт-контрактов.
За годы различные публичные блокчейны непрерывно пытались стать совместимыми с EVM, тем самым интегрируясь в экосистему развития Ethereum. Этот концепт привел к появлению терминов, таких как совместимость с EVM, эквивалентность EVM и другие определения.
Давайте более подробно истолкуем zkEVM. По определению, zkEVM - это виртуальная машина, совместимая с EVM и также дружественная к доказательствам нулевого знания, обеспечивающая полную корректность программ, операций и ввода/вывода.
Для достижения универсальных вычислений существует две основные проблемы при разработке zkEVM:
Различные контракты требуют создания различных схем, и эти схемы достаточно 'сложные'.
Этот аспект в основном зависит от различных оптимизаций. Например, Aleo (хотя она не относится к прямому типу ZK... просто пример оптимизации) использует распределенные кластеры для параллельных вычислений доказательств или различные аппаратные оптимизации для ускорения.
zkEVM требует не только реконструкции EVM, но и перестройки всего процесса перехода состояния Ethereum с использованием технологии доказательства в нуле.
Исходный дизайн EVM не предвидел развитие zkEVM, что привело к значительным трудностям. Это привело к двум школам подходов, как показано на диаграмме.
Или, чтобы различать в соответствии с архитектурой виртуальной машины (VM), как показано на схеме ниже (огромное спасибо Scroll Tech за исходное изображение-резюме!). Опкод относится к опкоду EVM. Раздел StarkWare использует Warp для преобразования контрактов Solidity в контракты Cairo или может напрямую писать контракты на Cairo и все равно получать хороший опыт разработки и полный набор инструментов.
На уровне разработчика и пользователя, на мой взгляд, эти решения в основном неразличимы. Однако с точки зрения инфраструктуры, чем ближе решение к правому краю, тем лучше совместимость с EVM. Оно может без проблем интегрироваться с инфраструктурой, такой как Geth, но общий прогресс разработки обычно медленнее.
Существование zkEVM, на мой взгляд, призвано инновировать и улучшать экосистему Ethereum, способствуя процветанию Ethereum и его экосистемы. С другой стороны, существование zkVM может не обязательно укрепить Ethereum, но оно предоставляет больше возможностей для воображения.
Хотя Cairo VM StarkNet может и не является идеальным zkVM, которым я себе представлял, он способен делать больше, чем EVM или zkEVM. Эти функциональности выходят за рамки расширений уровня EIP. На Cairo VM можно запускать модели машинного обучения, и даже строится платформа для моделей машинного обучения на StarkNet.
По сравнению с zkEVM создание zkVM проще (без беспокойства о техническом долге EVM), более гибкое (без беспокойства о обновлениях EVM) и проще оптимизировать (оптимизатор схемы и доказательств намного проще и дешевле, чем создание zkEVM).
Однако у zkVM есть один незначительный, но потенциально фатальный недостаток. Если zkVM не сможет обеспечить совместимость с EVM на уровне языка Solidity, ему будет сложно создать комплексную и зрелую экосистему разработки Web3, подобную EVM.
zkVM может стать более крупным трендом, который может обеспечить вертикальную оптимизацию EVM и горизонтальное расширение экосистемы EVM, освободившись от ограничений EVM.
Если бы существовал универсальный zkVM, который позволял бы смарт-контрактам всех языков программирования, а не только Solidity, не только Cairo, но и Rust, C++, Go, работать безопасно с нулевым доказательством знания, это было бы замечательно? (Stellar пытался, но не удалось).
Как @kelvinfichterупомянуто: Почему zkEVM, если zkMIPS? Как @KyleSamaniупомянуто: EVM - это ошибка, а не функция. Почему zkEVM, если zkVM?
Winterfall, Distaff, Miden VM и другие zkVM пока не достигли высокого уровня удобства для разработчиков. У Nervos есть RISC-V VM, но она не использует технологию доказательства в нуле.
Оптимальным решением в текущей ситуации будет построить WASM или RISC-V zkVM, еще лучше, если он может поддерживать языки, такие как Rust, Go, C++, а также Solidity (похоже, что zkSync может внести значительный вклад). Если такой универсальный zkVM будет существовать, это будет значительным ударом по zkEVM.
Количество разработчиков Web3 составляет примерно 0,07% всех разработчиков. Это означает, что количество разработчиков Solidity еще меньше 0,07%, и еще меньше разработчиков будет использовать Cairo для написания контрактов или Leo для написания схем. В результате идеальная zkVM нацелена на обслуживание почти 100% разработчиков, поскольку любой разработчик может получить идеальную среду выполнения с нулевым разглашением, используя практически любой язык программирования.
Если бы однажды миром начали господствовать Web3 и криптовалюта, я верю, что это определенно не будет экосистема EVM, занимающая 100% всех разработчиков, а скорее все разработчики постепенно переходят в разработчиков Web3 и криптовалют. Здесь и заключается гениальность универсального zkVM.
Native zkEVM - это будущее блокчейна.
Universal zkVM - это будущее Web3.
Пригласить больше голосов
Вот простое и понятное введение в доказательства нулевого разглашения:
Представьте, что вы учитесь в начальной школе. Учитель - это проверяющий, а вы, как ученик, - доказатель. Как вы можете доказать, что вы понимаете формулу для решения квадратных уравнений? Вот где приходит математический экзамен.
Учитель случайным образом даст вам 10 связанных вопросов, и если вы действительно понимаете концепцию, то сможете решить их все. Во время этого процесса вам не нужно перечитывать или записывать конкретное содержание формулы, но учитель легко может проверить ваш уровень знаний.
Фактически, это метод, используемый Тартальей и Кардано (да, это имя), чтобы соревноваться, кто открыл решение кубического уравнения. Они оба не хотели раскрывать содержание своих формул друг другу, но через решение проблем они могли легко проверить и определить, овладели ли они этим знанием, не разглашая детали.
Какова цель доказательств нулевого разглашения? Цель состоит в экономии вычислительной мощности и уменьшении места на цепи во всем процессе. Кроме того, оно может обеспечивать защиту конфиденциальности, соответствуя характеристикам отсутствия доверия в блокчейне и принципам криптографии.
В области блокчейна термин "zk", используемый или упоминаемый, обычно не относится к фактическим доказательствам нулевого знания, а часто относится к доказательствам правильности. Из-за путаницы в терминологии некоторые части этого текста будут продолжать использовать эти "ошибочные" термины.
В современном мире блокчейна zk можно считать передовым и оптимальным решением для масштабируемости блокчейна (не истинный zk, а скорее Доказательство Подлинности) и технологии конфиденциальности (истинный zk), которая используется в проектах, таких как Tornado.cash, ZCash, zkSync, zk.money, Filecoin и Mina.
Текущие технические решения в основном делятся на две категории: SNARK и STARK. В STARK буква «S» означает масштабируемость, что означает, что доказанные утверждения имеют повторяющиеся структуры, в то время как SNARK поддерживает произвольные схемы, которые предварительно обрабатываются для достижения кратких доказательств. Среди них практическая реализация SNARKs занимает лидирующее положение, в то время как STARKs в основном применяются в большом масштабе в продуктах, запущенных StarkWare. Ниже приведено сравнение между ними.
С точки зрения Meme, STARK лучше, чем SNARK (😊, Звездные войны, Звездный путь).
Если SNARK - это будущее Ethereum 2.0, то STARK будет будущим Ethereum 3.0. Правда, преимущества STARK:
Однако доказательства, созданные STARK, имеют значительный размер. Из-за определенных ограничений, таких как те, которые налагаются WASM, во время конструирования могут потребоваться дополнительные операции (здесь мы имеем в виду SNARK). Недавно Mir предоставил практическую реализацию STARK на основе AIR с использованием Starky, который является частью Plonky2 (отношения между Plonky2 и Starky довольно сложны...). На мой взгляд, хотя размер можно оптимизировать с использованием различных техник, трудно дальнейше сжать временную сложность самого алгоритма.
Эти технологии доказательства нулевого знания можно комбинировать в разумной мере, чтобы создавать более мощные приложения. Например, Polygon Hermez использует SNARK для проверки корректности STARK, тем самым уменьшая комиссию за газ при публикации доказательства.
В целом, SNARK и STARK - отличные технологии доказательства нулевого знания, у каждой из которых есть свои сильные стороны, а их разумное сочетание имеет еще больший потенциал.
Упомянутые ранее Tornado.cash и zk.money - это похожие приложения, которые поддерживают только операции передачи с использованием доказательств нулевого знания. Они не поддерживают общие вычисления. По сравнению с этими приложениями у них есть только функциональность биткойна, гораздо меньше, чем у полностью тьюринг-полного Ethereum, не говоря уже о создании экосистемы (Смарт-контракты на биткойн еще не создали процветающую экосистему.).
zkVM - это виртуальная машина, обеспечивающая безопасные, проверяемые и надежные свойства с использованием доказательств в нулевом знании. Простыми словами, она принимает старое состояние и программу на входе и возвращает новое состояние. Она дарит всем приложениям сверхспособность доказательств в нулевом знании.
Презентация Miden на ETH Amsterdam эффективно суммировала, что такое zkVM, с одного слайда.
Преимущества zkVM:
Недостатки zkVM:
В настоящее время существует три основных типа zkVM, с соответствующими им наборами инструкций в скобках: Mainstream (WASM, RISC-V), EVM (байт-код EVM), ZK-Optimized (новый набор инструкций, оптимизированный для доказательств в нулевом знании, таких как Cairo и zkSync). Ниже приведена сравнительная таблица этих типов на основе презентации Miden на ETH Amsterdam.
Многие вещи, сделанные в экосистеме разработки нулевого доказательства, в основном связаны с обеспечением возможности разработчикам использовать библиотеку Circom (и snarkyjs, например) или другие недавно созданные языки (например, Leo или Cairo, которые имеют свои уникальные ограничения) для разработки общих zk DApps. Тем не менее, это не так просто и легко изучить, как использование Solidity на Ethereum.
Кроме того, существует множество проектов, таких как zkSync, Scroll, или несколько под зонтом Polygon, которые экспериментируют с zkEVM или другими решениями zkVM.
EVM — это виртуальная машина Ethereum, которую также можно понимать как набор сред исполнения для запуска смарт-контрактов.
За годы различные публичные блокчейны непрерывно пытались стать совместимыми с EVM, тем самым интегрируясь в экосистему развития Ethereum. Этот концепт привел к появлению терминов, таких как совместимость с EVM, эквивалентность EVM и другие определения.
Давайте более подробно истолкуем zkEVM. По определению, zkEVM - это виртуальная машина, совместимая с EVM и также дружественная к доказательствам нулевого знания, обеспечивающая полную корректность программ, операций и ввода/вывода.
Для достижения универсальных вычислений существует две основные проблемы при разработке zkEVM:
Различные контракты требуют создания различных схем, и эти схемы достаточно 'сложные'.
Этот аспект в основном зависит от различных оптимизаций. Например, Aleo (хотя она не относится к прямому типу ZK... просто пример оптимизации) использует распределенные кластеры для параллельных вычислений доказательств или различные аппаратные оптимизации для ускорения.
zkEVM требует не только реконструкции EVM, но и перестройки всего процесса перехода состояния Ethereum с использованием технологии доказательства в нуле.
Исходный дизайн EVM не предвидел развитие zkEVM, что привело к значительным трудностям. Это привело к двум школам подходов, как показано на диаграмме.
Или, чтобы различать в соответствии с архитектурой виртуальной машины (VM), как показано на схеме ниже (огромное спасибо Scroll Tech за исходное изображение-резюме!). Опкод относится к опкоду EVM. Раздел StarkWare использует Warp для преобразования контрактов Solidity в контракты Cairo или может напрямую писать контракты на Cairo и все равно получать хороший опыт разработки и полный набор инструментов.
На уровне разработчика и пользователя, на мой взгляд, эти решения в основном неразличимы. Однако с точки зрения инфраструктуры, чем ближе решение к правому краю, тем лучше совместимость с EVM. Оно может без проблем интегрироваться с инфраструктурой, такой как Geth, но общий прогресс разработки обычно медленнее.
Существование zkEVM, на мой взгляд, призвано инновировать и улучшать экосистему Ethereum, способствуя процветанию Ethereum и его экосистемы. С другой стороны, существование zkVM может не обязательно укрепить Ethereum, но оно предоставляет больше возможностей для воображения.
Хотя Cairo VM StarkNet может и не является идеальным zkVM, которым я себе представлял, он способен делать больше, чем EVM или zkEVM. Эти функциональности выходят за рамки расширений уровня EIP. На Cairo VM можно запускать модели машинного обучения, и даже строится платформа для моделей машинного обучения на StarkNet.
По сравнению с zkEVM создание zkVM проще (без беспокойства о техническом долге EVM), более гибкое (без беспокойства о обновлениях EVM) и проще оптимизировать (оптимизатор схемы и доказательств намного проще и дешевле, чем создание zkEVM).
Однако у zkVM есть один незначительный, но потенциально фатальный недостаток. Если zkVM не сможет обеспечить совместимость с EVM на уровне языка Solidity, ему будет сложно создать комплексную и зрелую экосистему разработки Web3, подобную EVM.
zkVM может стать более крупным трендом, который может обеспечить вертикальную оптимизацию EVM и горизонтальное расширение экосистемы EVM, освободившись от ограничений EVM.
Если бы существовал универсальный zkVM, который позволял бы смарт-контрактам всех языков программирования, а не только Solidity, не только Cairo, но и Rust, C++, Go, работать безопасно с нулевым доказательством знания, это было бы замечательно? (Stellar пытался, но не удалось).
Как @kelvinfichterупомянуто: Почему zkEVM, если zkMIPS? Как @KyleSamaniупомянуто: EVM - это ошибка, а не функция. Почему zkEVM, если zkVM?
Winterfall, Distaff, Miden VM и другие zkVM пока не достигли высокого уровня удобства для разработчиков. У Nervos есть RISC-V VM, но она не использует технологию доказательства в нуле.
Оптимальным решением в текущей ситуации будет построить WASM или RISC-V zkVM, еще лучше, если он может поддерживать языки, такие как Rust, Go, C++, а также Solidity (похоже, что zkSync может внести значительный вклад). Если такой универсальный zkVM будет существовать, это будет значительным ударом по zkEVM.
Количество разработчиков Web3 составляет примерно 0,07% всех разработчиков. Это означает, что количество разработчиков Solidity еще меньше 0,07%, и еще меньше разработчиков будет использовать Cairo для написания контрактов или Leo для написания схем. В результате идеальная zkVM нацелена на обслуживание почти 100% разработчиков, поскольку любой разработчик может получить идеальную среду выполнения с нулевым разглашением, используя практически любой язык программирования.
Если бы однажды миром начали господствовать Web3 и криптовалюта, я верю, что это определенно не будет экосистема EVM, занимающая 100% всех разработчиков, а скорее все разработчики постепенно переходят в разработчиков Web3 и криптовалют. Здесь и заключается гениальность универсального zkVM.
Native zkEVM - это будущее блокчейна.
Universal zkVM - это будущее Web3.