Nova — это новая система zk-SNARKs, разработанная Microsoft, которая использует расслабленные ранговые ограничения (Relaxed Rank-1 Constraint Systems, Relaxed R1CS) для повышения эффективности и гибкости доказательства.
Преимущества Nova
Основное преимущество Nova заключается в использовании ослабленной технологии R1CS. Традиционные системы R1CS требуют использования большого количества случайности в процессе доказательства, что приводит к сложным и времязатратным процессам генерации и проверки доказательств. Nova, используя ослабленный R1CS, позволяет использовать меньше случайности в доказательствах, что значительно повышает эффективность доказательства.
Nova также поддерживает инкрементальные вычисления, что позволяет постепенно вычислять сложные функции, не рассчитывая всю функцию сразу. Это очень полезно при обработке больших объемов данных или сложных вычислений. Кроме того, Nova поддерживает полиномиальные вычисления, что позволяет решать более сложные задачи доказательства.
Недостатки Nova
Хотя у Nova есть много преимуществ, у нее также есть некоторые недостатки:
Из-за использования ослабленного R1CS, доказательства Nova могут быть не такими мощными, как в традиционных системах R1CS. Ослабленный R1CS позволяет использовать меньше случайности, что может снизить безопасность доказательства. Тем не менее, разработчики Nova приняли меры для решения этой проблемы, такие как использование более мощных криптографических алгоритмов и более сложных стратегий доказательства.
Реализация Nova относительно сложна, что может увеличить трудности в использовании и обслуживании. Nova использует множество высокоуровневых криптографических технологий, таких как многочленные вычисления, операции в группах и случайные оракулы, которые требуют глубокого понимания этих технологий для эффективного использования и модификации Nova.
Важное место Nova в области zk-SNARKs
Nova занимает важное место в области zk-SNARKs. Ее появление открыло новый путь для развития zk-SNARKs. Используемая Nova технология ослабленного R1CS делает процесс генерации и верификации доказательства более эффективным, что имеет решающее значение для масштабных приложений zk-SNARKs. Кроме того, Nova также поддерживает инкрементальные вычисления и полиномиальные вычисления, что позволяет обрабатывать более сложные задачи доказательства и进一步 расширяет область применения zk-SNARKs.
Интерпретация исходного кода Nova
Основная структура исходного кода Nova выглядит следующим образом:
src/gadgets/: содержит инструменты для построения zk-SNARKs доказательств.
src/provider/: содержит код некоторых провайдеров, таких как реализация функции хеширования Keccak.
src/spartan/: содержит код, связанный с протоколом Spartan.
src/traits/: Содержит некоторые Rust traits, используемые для определения общих действий.
Основные функции модулей и файлов следующие:
bellperson/mod.rs: определены функции, связанные с генерацией R1CS.
bellperson/r1cs.rs: определяет два трейта NovaWitness и NovaShape, используемые для получения экземпляров R1CS, свидетелей, форм и ключей обязательств.
bellperson/shape_cs.rs: Определяет структуру ShapeCS, используемую для создания системы ограничений формы R1CS.
bellperson/solver.rs: Определяет структуру SatisfyingAssignment, используемую для создания экземпляров R1CS и системы ограничений свидетеля.
circuit.rs: Определяет усиленные цепи в протоколе Nova, включая цепи шагов и цепи проверок.
constants.rs: определены некоторые константы, такие как количество бит для вызова, количество бит для хэширования и т.д.
errors.rs: Определяет типы ошибок, которые могут возвращаться библиотекой Nova.
r1cs.rs: определяет типы и методы, связанные с R1CS.
spartan/math.rs: Определяет свойство Math и его реализацию для типа usize, включает в себя некоторые основные математические операции.
spartan/mod.rs: Реализован RelaxedR1CSSNARKTrait с использованием Spartan.
spartan/polynomial.rs: Определяет основные типы и операции, связанные с многочленами.
spartan/sumcheck.rs: реализован алгоритм Sumcheck в протоколе Spartan.
traits/circuit.rs: Определяет признак StepCircuit, используемый для инкрементального вычисления шаговых функций.
traits/commitment.rs: Определяет характеристики, связанные с обязательством ( commitment ).
traits/evaluation.rs: Определяет характеристику EvaluationEngineTrait, используемую для двигателя оценки многочленов.
traits/mod.rs: Определяет некоторые характеристики, используемые для криптографических операций.
traits/snark.rs: Определяет характеристику RelaxedR1CSSNARKTrait, используемую для zk-SNARKs, нулевых знаний, компактного, не интерактивного доказательства (zkSNARK).
Исходный код Nova реализует полную систему zk-SNARKs, включая генерацию R1CS, построение ограничительных систем, вычисление многочленов, схемы обязательств, оценочные движки и множество других модулей. Эти модули работают совместно, обеспечивая эффективное создание и верификацию zk-SNARKs.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Nova: Плюсы и минусы новой поколения эффективной системы zk-SNARKs и анализ исходного кода
Nova: Новая система zk-SNARKs
Nova — это новая система zk-SNARKs, разработанная Microsoft, которая использует расслабленные ранговые ограничения (Relaxed Rank-1 Constraint Systems, Relaxed R1CS) для повышения эффективности и гибкости доказательства.
Преимущества Nova
Основное преимущество Nova заключается в использовании ослабленной технологии R1CS. Традиционные системы R1CS требуют использования большого количества случайности в процессе доказательства, что приводит к сложным и времязатратным процессам генерации и проверки доказательств. Nova, используя ослабленный R1CS, позволяет использовать меньше случайности в доказательствах, что значительно повышает эффективность доказательства.
Nova также поддерживает инкрементальные вычисления, что позволяет постепенно вычислять сложные функции, не рассчитывая всю функцию сразу. Это очень полезно при обработке больших объемов данных или сложных вычислений. Кроме того, Nova поддерживает полиномиальные вычисления, что позволяет решать более сложные задачи доказательства.
Недостатки Nova
Хотя у Nova есть много преимуществ, у нее также есть некоторые недостатки:
Из-за использования ослабленного R1CS, доказательства Nova могут быть не такими мощными, как в традиционных системах R1CS. Ослабленный R1CS позволяет использовать меньше случайности, что может снизить безопасность доказательства. Тем не менее, разработчики Nova приняли меры для решения этой проблемы, такие как использование более мощных криптографических алгоритмов и более сложных стратегий доказательства.
Реализация Nova относительно сложна, что может увеличить трудности в использовании и обслуживании. Nova использует множество высокоуровневых криптографических технологий, таких как многочленные вычисления, операции в группах и случайные оракулы, которые требуют глубокого понимания этих технологий для эффективного использования и модификации Nova.
Важное место Nova в области zk-SNARKs
Nova занимает важное место в области zk-SNARKs. Ее появление открыло новый путь для развития zk-SNARKs. Используемая Nova технология ослабленного R1CS делает процесс генерации и верификации доказательства более эффективным, что имеет решающее значение для масштабных приложений zk-SNARKs. Кроме того, Nova также поддерживает инкрементальные вычисления и полиномиальные вычисления, что позволяет обрабатывать более сложные задачи доказательства и进一步 расширяет область применения zk-SNARKs.
Интерпретация исходного кода Nova
Основная структура исходного кода Nova выглядит следующим образом:
Основные функции модулей и файлов следующие:
Исходный код Nova реализует полную систему zk-SNARKs, включая генерацию R1CS, построение ограничительных систем, вычисление многочленов, схемы обязательств, оценочные движки и множество других модулей. Эти модули работают совместно, обеспечивая эффективное создание и верификацию zk-SNARKs.