December 25, 2024

Как работают zk-SNARKs или zk-STARKs

zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge) и zk-STARKs (Zero-Knowledge Scalable Transparent Arguments of Knowledge) — это криптографические технологии, которые позволяют доказать правильность утверждения или вычисления без раскрытия информации о самом вычислении или данных. Обе эти технологии используются в ZK-Rollups и других криптовалютных решениях для повышения конфиденциальности и масштабируемости. Давайте разберем, как они работают.

1. zk-SNARKs: Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge

Основные компоненты zk-SNARKs:

  • Zero-Knowledge (нулевое знание): Это означает, что одна сторона может доказать другой стороне, что она знает секретную информацию, не раскрывая саму информацию. В случае zk-SNARKs это означает доказательство того, что вычисление было выполнено правильно, без раскрытия данных или промежуточных вычислений.
  • Succinct (сжимаемость): Доказательство zk-SNARKs обычно очень маленькое, независимо от размера входных данных или вычислений, что делает его эффективным для использования в блокчейн-технологиях.
  • Non-Interactive (неинтерактивность): Это означает, что процесс доказательства не требует обмена сообщениями между двумя сторонами. Существуют криптографические методы, которые позволяют сторонам договориться о доказательстве в одном шаге, без необходимости взаимодействия.
  • Arguments of Knowledge (аргументы знания): Доказывается, что некоторая сторона знает информацию, которая позволяет выполнить вычисление, без раскрытия этой информации.

Как работают zk-SNARKs:

  1. Параметры настройки: Для создания zk-SNARKs используется процесс настройки, который генерирует публичные параметры для создания доказательства и их верификации. Этот процесс должен быть выполнен с осторожностью, чтобы не привести к уязвимостям.
  2. Создание доказательства: Если кто-то хочет доказать, что он правильно выполнил вычисление (например, транзакцию или другой алгоритм), он использует свои секретные данные и параметры zk-SNARKs для создания компактного доказательства. Это доказательство не раскрывает информацию о данных, только подтверждает, что вычисление выполнено правильно.
  3. Верификация: Получатель доказательства использует публичные параметры для проверки, что доказательство действительно подтверждает правильность вычислений. Это происходит без раскрытия информации о данных, на основе которых выполнялось вычисление.

Преимущества zk-SNARKs:

  • Компактность: Доказательства очень маленькие и могут быть быстро переданы и проверены.
  • Низкие затраты на верификацию: Проверка доказательства требует очень мало вычислительных ресурсов.

Недостатки:

  • Процесс настройки: Процесс создания доверенных параметров требует осторожности и может стать уязвимостью, если его выполнить неправильно.
  • Общее использование секретных ключей: Для создания доказательства может потребоваться использование секретных данных, что требует особого внимания к безопасности.

2. zk-STARKs: Zero-Knowledge Scalable Transparent Arguments of Knowledge

Основные компоненты zk-STARKs:

  • Zero-Knowledge (нулевое знание): Как и в zk-SNARKs, zk-STARKs позволяют доказывать, что утверждение верно, не раскрывая информации о самом утверждении.
  • Scalable (масштабируемость): zk-STARKs разрабатывались для обеспечения большего масштаба, чем zk-SNARKs, особенно при работе с большими данными.
  • Transparent (прозрачность): В отличие от zk-SNARKs, для создания zk-STARKs не требуется процесс настройки с доверенными параметрами. Это делает zk-STARKs более безопасными с точки зрения доверенности в создании криптографической инфраструктуры.
  • Arguments of Knowledge (аргументы знания): Как и в zk-SNARKs, zk-STARKs предоставляют доказательства, что некто знает информацию, которая подтверждает выполнение вычислений.

Как работают zk-STARKs:

  1. Параметры настройки: В отличие от zk-SNARKs, zk-STARKs не требуют использования секретных ключей или доверенных параметров. Параметры для создания доказательства являются прозрачными и могут быть генерированы и проверены публично.
  2. Создание доказательства: Создание доказательства в zk-STARKs также подразумевает использование вычислений для подтверждения правильности выполнения, но доказательства в zk-STARKs могут быть крупнее, чем в zk-SNARKs. Однако они обладают лучшей масштабируемостью для больших данных.
  3. Верификация: Как и в случае с zk-SNARKs, доказательства могут быть быстро проверены, но сам процесс верификации в zk-STARKs требует больше вычислительных ресурсов, чем в zk-SNARKs, из-за большего объема данных.

Преимущества zk-STARKs:

  • Прозрачность: Не требует доверенных параметров или секретных данных, что повышает безопасность.
  • Масштабируемость: Хорошо работает с большими данными, что делает ее более эффективной при использовании в крупных системах.

Недостатки:

  • Размер доказательства: Доказательства более громоздкие, чем в zk-SNARKs, что требует больше вычислительных ресурсов для их создания и проверки.
  • Большие затраты на верификацию: Для проверки zk-STARKs требуется больше вычислительных мощностей, что может ограничить ее использование в некоторых ситуациях.

Сравнение zk-SNARKs и zk-STARKs

Особенность: zk-SNARKs

Параметры настройки: Требуют доверенной настройки (trusted setup).

Размер доказательства: Очень маленькие доказательства.

Масштабируемость: Хорошо подходят для небольших вычислений.

Процесс верификации: Быстрая верификация.

Применение: Подходит для использования в блокчейнах, где важна компактность доказательства.

Особенность: zk-STARKs

Параметры настройки: Не требуют настройки, полностью прозрачные.

Размер доказательства: Более крупные доказательства.

Масштабируемость: Лучшие для масштабируемости и работы с большими данными.

Процесс верификации: Верификация требует больше вычислительных ресурсов.

Применение: Подходит для крупных вычислений и приложений, где требуется масштабируемость.


Заключение:

  • zk-SNARKs эффективны, компактны и быстры, но требуют доверенной настройки, что может быть уязвимостью в некоторых сценариях.
  • zk-STARKs предлагают улучшенную масштабируемость и прозрачность, но их доказательства более громоздки и требуют больших вычислительных ресурсов.

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