SummerCrypto: доказательство в смарт-контракте без раскрытия секрета

Совместная публикация о zk-SNARK, ZoKrates и Solidity: как доказать принадлежность данных дереву Меркла и что именно остаётся открытым.

SummerCrypto: доказательство в смарт-контракте без раскрытия секрета

На SummerCrypto 2025 участвовал в совместной работе «Протокол доказательства с нулевым разглашением в смарт-контрактах». Она опубликована в сборнике летней школы-конференции «Криптография и информационная безопасность» на страницах 250–258. В списке восьми соавторов указан как Г. М. Зайцев, СПбГУАП.

Школа и командная работа

Школа проходила 7–21 июля 2025 года в Петербурге, в Точке кипения ГУАП. В этом году организаторы из Новосибирска проводили её в сотрудничестве с ГУАП. Программа сочетала лекции, обсуждения и работу над исследовательскими проектами.

Участники SummerCrypto 2025 в общем зале Точки кипения ГУАП
Летняя школа в общем зале Точки кипения ГУАП. SummerCrypto 2025.
Обсуждение за столом во время летней школы
Обсуждение во время летней школы.

Задача исследования

В открытом блокчейне входные данные и результат транзакции доступны участникам сети. Если обычный контракт получает секрет вместе с доказательством права на действие, сам секрет уже становится частью открытого обмена.

Исследовали другой путь: подтвердить знание данных, принадлежащих дереву Меркла, с помощью zk-SNARK. Доказывающая сторона знает приватные данные и путь проверки, а смарт-контракт получает доказательство и согласованные публичные входы.

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

Как устроена схема

Для подготовки схемы и генерации доказательств использовали ZoKrates, для проверяющего контракта — Solidity на Ethereum. Генерация происходит вне блокчейна, а контракт проверяет переданное доказательство.

Схема из публикации: доказывающая сторона, ZoKrates вне блокчейна, проверяющий контракт и результат в блокчейне
Генерация доказательства в ZoKrates и проверка в смарт-контракте.
ЭтапЧто происходит
ПодготовкаСхема фиксирует утверждение, которое нужно доказать
НастройкаСоздаются ключ генерации и ключ проверки
ГенерацияZoKrates использует приватные данные и путь Меркла для получения доказательства
ПроверкаSolidity-контракт сопоставляет доказательство с публичными входами
РезультатПроверка возвращает, прошло ли доказательство

Так вычисление, требующее знания секрета, остаётся у доказывающей стороны. На сторону проверяющего переносится проверка соответствия утверждению.

Почему дерево Меркла

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

Рисунок дерева Меркла из статьи: блоки данных, хеши листьев, промежуточные хеши и верхний корень
Дерево Меркла: связь блоков данных с общим корнем.

Идея полезна для сценариев, где нужно подтвердить допустимость действия или принадлежность известному множеству. Конкретные свойства такой системы зависят от того, какие значения схема объявляет публичными и какое утверждение она действительно проверяет.

Моя роль и результат

Участвовал как соавтор учебного исследования. Реализация и опубликованное описание — общий результат команды из восьми человек под руководством куратора Дмитрия Кондырева из НГУ.

Результат работы — реализация протокола и совместная публикация.

Групповая фотография участников SummerCrypto 2025 в зале летней школы
Участники SummerCrypto 2025.

Ограничения

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

Мой главный вывод из работы — приватность нужно описывать через конкретные входы и проверяемое утверждение. Само слово ZKP не говорит, какие данные система скрывает, от кого и при каких предположениях.

Совместная статья в официальном сборнике SummerCrypto 2025, печатные страницы 250–258.

Авторский пост защищен лицензией CC BY 4.0 .

Контакты