{"id":13893,"url":"\/distributions\/13893\/click?bit=1&hash=172516e20532711a15f10926ee782139b37af1465c4e8ddd35ef0e9b5c0244fd","title":"\u041a\u0430\u043a \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438?","buttonText":"","imageUuid":"","isPaidAndBannersEnabled":false}

Zero-Knowledge Proof — Как работает криптография с нулевым разглашением - Простыми словами

Подпишитесь на мой Telegram канал, там я рассказываю, как зарабатывать на криптовалюте.
Представьте платёжное приложение, которое проверяет, достаточно ли денег на счете для совершения транзакции, но при этом ничего больше не узнаёт о самом счёте. Или приложение, подтверждающее действительность пароля без необходимости его прямой обработки. Теперь это стало возможным, благодаря внедрению технологии Zero-Knowledge Proof.

Прочитав эту статью, Вы на простых примерах поймёте, как можно доказать что-то, не раскрывая этого, как работает технология Zero-Knowledge Proof, в чём преимущества и недостатки технологии и почему не стоит доверять постороннему повару.

Знакомство с ZKP

Zero-Knowledge Proof (ZKP)— это протокол, который позволяет доказать верность утверждения без раскрытия дополнительной информации.

Допустим, в цветочном магазине продавец предлагает покупателю два разных, но очень схожих цветка. Для покупателя они будут абсолютно одинаковы, так как он совсем не разбирается в цветах. Но продавцу известна разница, и он не желает раскрывать эту важную информацию. Продавцу нужно доказать, что разница есть: он просит покупателя спрятать цветы за спину и показать один из них. Покупатель прячет цветы и показывает продавцу один цветок. Затем прячет его и показывает либо тот же цветок, либо другой, задавая вопрос: “Менял ли я цветы за спиной?” Продавец ответит, что он видит разницу, если покупатель покажет ему другой цветок, либо не видит, если цветок будет тем же. Таким образом, покупатель может понять, знает ли продавец разницу. При этом покупатель не узнает, в чем же заключается разница.

ZKP соответствует двум основным свойствам: полнота и надежность.

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

И, наконец, для того чтобы быть действительно Zero-Knowledge, доказательство должно быть как полным, так и надежным без передачи информации между проверяющим и доказывающим.

Важно понимать, что проверяющий полностью не может быть уверен в достоверности факта, ведь “продавец” мог обмануть “покупателя”, просто "угадав цветок". Для решения этой проблемы эксперимент требуется повторить N количество раз. Так, с каждым повторением шанс случайно угадать будет уменьшаться: в первый раз шанс угадать будет 1 к 2, после пяти повторений шанс составит 1 к 32, после 10 — 1 к 1024, а после 20 — примерно 1 к 1 000 000.

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

Протокол ZKP впервые описали Shafi Goldwasser, Silvio Micali и Charles Rackoff в своей работе в 1985 году. В 1989 году работа была опубликована. В ней была продемонстрирована возможность доказывания некоторого свойства числа без раскрытия самого числа или какой-либо дополнительной информации.

Виды ZKP

Zero-Knowledge Proof может быть двух видов — интерактивное и неинтерактивное.

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

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

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

Неинтерактивное ZKP является лучшим способом доказать утверждение более чем одному проверяющему, при этом не увеличивая требуемые ресурсы и затраты.

ZKP можно также разделить на две группы, исходя из наличия или отсутствия Trusted Setup Phase или фазы доверенной настройки (установки).

Представьте, что для того чтобы приготовить пиццу первому повару потребуется взять тесто, которое замешивал второй повар. То есть первый повар не может знать, как замешивалось тесто, какие ингредиенты в каких пропорциях использовались. Замешивание теста и будет "фазой доверенной настройки". Первому повару нужно безоговорочно доверять второму, чтобы использовать тесто для своей пиццы. И если тесто было испорчено, то человек, купивший пиццу, не узнает, испортили тесто во время замешивания или уже в процессе приготовления.

ZK-Snark и ZK-Stark

Что из себя представляет ZK-Snark?

ZK-Snark или же краткий неинтерактивный аргумент знания с нулевым разглашением — это решение, в котором:

  • Краткий означает, что размер доказательства должен быть достаточно маленьким, чтобы его можно было проверить за короткое время.
  • Неинтерактивный указывает на то, что это конструкция, где между проверяющим и доказывающим нет двусторонней связи.
  • Аргумент знания создаёт ситуацию, когда доказывающий может убедить проверяющего в том, что существует определенная информация, не раскрывая при этом всю информацию целиком.
  • Нулевое разглашение обеспечивает свойство, что если утверждение истинно, то проверяющий не узнает ничего, кроме того факта, что утверждение истинно.

В нашей статье по Zero Knowledge Rollup мы вкратце и на понятных примерах разобрали, что такое ZK-Snark. Ознакомиться со статьёй Вы можете по ссылке ниже:

Zero Knowledge Rollup — решение проблемы масштабируемостиС каждым днем количество людей, использующих криптовалюты, возрастает, ставя перед разработчиками проблему создания быстрого и масштабируемого блокчейна. Решить её поможет технология ZK-Rollup. В этой статье мы наглядно рассмотрим работу ZK-Rollup, после прочтения которой Вы поймете важность криптог…Crypton AcademyYannis K.

Что из себя представляет ZK-Stark?

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

ZK-Stark использует публично проверяемую случайность. То есть системы ZK-Stark создают доверие, которое может проверить каждый желающий. Отсюда и взялась буква "T" в названии, означающая "Transparent": прозрачный.

Преимущества и недостатки

Как и любая технология, Zero-Knowledge Proof имеет свои преимущества и недостатки.

К преимуществам можно отнести:

  • повышение приватности пользователей в публичных блокчейнах и других сетях;
  • укрепление информационной безопасности за счет замены неэффективных способов проверки и верификации;
  • повышение пропускной способности блокчейнов и улучшение масштабируемости.

Из недостатков стоит выделить:

  • требование значительных вычислительных мощностей для интерактивного ZKP;
  • возможность обмана при Trusted Setup Phase в случае использования ZK-Snark.

Примеры проектов и возможное использование

Рассмотрим некоторые проекты, использующие технологию Zero-Knowledge Proof:

Mina Protocol — самый легкий блокчейн, использующий технологию ZK-Snark, о котором у нас есть видео на канале Crypton.

StarkWare — компания, которая разрабатывает решения на основе ZK-Stark.

Polygon — Polygon Miden находится в активной разработке, решение использует технологию на основе ZK-Stark, совместимым с EVM.

Криптовалюта ZCash использует модифицированный протокол ZK-Snark. Этот же протокол был частично интегрирован в сеть Ethereum.

Разберем некоторые возможные примеры использования ZKP:

  • Отправка сообщений. Благодаря ZKP, никто не сможет найти способ прочитать сообщения в диалоге, кроме как быть участником этого диалога.
  • Аутентификация. Пользователь может использовать личную информацию, например, пароли, не раскрывая ее и избегая возможной утечки данных.
  • Обмен данными с помощью ZKP снизит риск перехвата информации при ее передаче.
  • Безопасность конфиденциальной информации. Запрашивая выписку или историю кредитной карты, пользователи взаимодействуют с сервером, протокол доказательства с нулевым разглашением может обеспечить необходимый уровень безопасности такой связи.
  • Защита хранения. ZKP можно использовать для обеспечения более высокой степени защиты при хранении информации.

Резюме

Технология Zero-Knowledge Proof поможет блокчейнам повысить уровень конфиденциальности и масштабируемости, а также обеспечить высокий уровень безопасности. Сама суть Zero-Knowledge является тем уровнем анонимности, который хочется видеть в блокчейнах.

Подпишитесь на мой Telegram канал, там я рассказываю, как зарабатывать на криптовалюте.

0
Комментарии
Читать все 0 комментариев
null