0Pricing
Cryptology Academy · Урок

Протоколы Сигмы и идентификация Шнорра

Реализуйте протокол Сигмы и проследите, как работает доказательство Шнорра

«Протоколы Сигмы и идентификация Шнорра» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Структура сигма-протокола

Сигма-протокол содержит 3 сообщения: (1) Фиксация: доказывающий отправляет коммитмент случайного значения. (2) Вызов: проверяющий отправляет случайный вызов. (3) Ответ: доказывающий отправляет ответ, вычисленный на основе вызова и секрета. Проверяющий принимает или отклоняет доказательство.

Идентификация Schnorr

Доказывающий знает секрет x (закрытый ключ); открытый ключ = g^x по модулю p (или точка X = x*G на эллиптической кривой). Цель — доказать знание x, не раскрывая его. Это доказательство знания дискретного логарифма.

Шаги протокола Schnorr

(1) Доказывающий выбирает случайное r и отправляет коммитмент R = r*G. (2) Проверяющий отправляет вызов c (случайное целое число). (3) Доказывающий отправляет ответ s = r + c*x. (4) Проверяющий проверяет s*G == R + c*X. Если равенство выполнено, он принимает доказательство. Доказывающий знает x; ответ s можно вычислить только зная x.

Анализ безопасности

Полнота: честный доказывающий всегда удовлетворяет равенству s*G = r*G + c*x*G = R + c*X. Состоятельность: из двух транскриптов с одним и тем же R, но разными вызовами c и c', получаются s и s', из которых можно восстановить x = (s-s')/(c-c'), — поэтому мошенник не может создать два допустимых ответа для одного R.

Нулевое разглашение протокола Schnorr

Симулятор (не знающий x): выбирает случайные s и c, задаёт R = s*G - c*X. Получившийся набор (R, c, s) имеет распределение допустимого транскрипта. Проверяющий не может отличить реальные транскрипты от смоделированных — протокол Schnorr обладает нулевым разглашением для честного проверяющего.

Преобразование Fiat-Shamir

Сделаем протокол Schnorr неинтерактивным: заменим вызов проверяющего на c = хеш(R || сообщение). Доказывающий самостоятельно вычисляет c и отправляет ответ. Результат: двухэлементное доказательство (R, s), которое может проверить любой. Это схема подписи Schnorr.

Подписи Schnorr

Подписать(x, m): r ← случайное значение; R = r*G; c = хеш(R||m); s = r + c*x. Подпись = (R, s). Проверить: s*G == R + хеш(R||m)*X. Компактная (64 байта для P-256), допускает пакетную проверку и доказуемо безопасна в ROM. Применяется в Bitcoin Taproot (BIP-340).

Коммитменты Pedersen

C = r*G + v*H, где H — второй независимый генератор. Коммитмент фиксирует значение v с использованием случайности r. Связывающее свойство: невозможно раскрыть коммитмент для другого v (из-за дискретного логарифма). Скрывающее свойство: C распределено равномерно. Используется в доказательствах диапазона на основе Schnorr и Bulletproofs.

Композиция: доказательства AND

Доказать одновременное знание x1 AND x2 можно, запустив два протокола Schnorr с одним и тем же вызовом (вызов передаётся через Fiat-Shamir). Проверяющий принимает доказательство только в том случае, если оба поддоказательства допустимы. Это позволяет доказывать несколько утверждений за одно взаимодействие.

Композиция: доказательства OR

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

Применения

Идентификация Schnorr: электронные паспорта (протокол PACE). Подписи Schnorr: Bitcoin Taproot, Monero (RingCT использует доказательства OR на основе Schnorr), протокол Signal (согласование ключей X3DH). Коммитменты Pedersen: конфиденциальные транзакции, Bulletproofs, шифрование записей Zcash Sapling.

Быстрая проверка

Что проверяющий проверяет на последнем шаге протокола идентификации Schnorr?

Повторение

Сигма-протоколы: фиксация — вызов — ответ. Schnorr доказывает знание дискретного логарифма. Fiat-Shamir делает протокол неинтерактивным (подпись Schnorr). Далее: zk-SNARK для кратких неинтерактивных доказательств.

Часто задаваемые вопросы

Урок «Протоколы Сигмы и идентификация Шнорра» бесплатный?

Да — полный текст урока «Протоколы Сигмы и идентификация Шнорра» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «Протоколы Сигмы и идентификация Шнорра»?

Реализуйте протокол Сигмы и проследите, как работает доказательство Шнорра Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Протоколы Сигмы и идентификация Шнорра»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Интуитивное понимание ZKP: пещера Али-Бабы
  2. Протоколы Сигмы и идентификация Шнорра
  3. zk-SNARKs: краткие неинтерактивные аргументы
  4. Применения ZKP: ZK-роллапы и конфиденциальные монеты
← Назад к Cryptology Academy