23 января 2023

Доказательство нулевого разглашения информации. Вводное руководство

Перевод

Это вольный перевод: https://101blockchains.com/zero-knowledge-proof/ — данной статьи.

Введение

В этой статье предлагается введение в концепцию Zero Knowledge Proof (ZKP).  Кроме того, вы найдёте различные типы ZKP, а также примеры использования и стратегии реализации ZKP.

В условиях постоянного контроля над информацией людей и отсутствия приватности сейчас требуется подход новой эры. Блокчейн, несущий факел децентрализованной системы, вносит изменения, но этого недостаточно. Теперь на рынке появилась новая технология под названием «доказательство с нулевым знанием». [Прим. Menaskop: на самом деле в русскоязычной литературе устоялся термин “доказательство с нулевым разглашением (информации)”, но на деле речь идёт именно о градации “данные — информация — знания”, поэтому буду использовать словосочетания как синонимы: по крайне мере — в рамках данной статьи]. 

Многие из вас, должно быть, слышали о ZKP, но не совсем понимают, что за этим стоит. Шифрование с нулевым знанием — новый протокол, который позволяет повысить уровень безопасности. Но насколько он хорош в реальности? Может ли он действительно стать тем решением, которое мы ищем?

Глава №01. Различные способы создания цепи в блокчейне

Как правило, блокчейн — просто общая база данных, где ведётся учёт того, кому сколько принадлежит криптовалюты или других цифровых активов. [Примечание  Menaskop: как, почти наверняка, знают мои постоянные читатели: эта точка зрения в корне не верна]. Однако разные блокчейны работают немного по-разному.

Например, в Биткоине увидите метаданные, а в Ethereum — другую договорную логику. В любом случае, блокчейны предлагают два серьёзных варианта использования.

Владение внешними активами, которые представлены токенами в сети. Пользователь также может передавать внешние активы с помощью токенов.

Повышенная конфиденциальность и применение больше относятся к общим приложениям управления данными.

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

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

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

Поэтому, если блокчейн хочет передавать какие-либо виды активов, ему необходимо предложить внутренние правила процесса проверки этих транзакций. Это то, чего блокчейну не хватает с самого начала — одна из проблем принятия блокчейна.

Не знаете основ технологии блокчейн? Прочитайте это подробное руководство по введению в особенности блокчейна.

Может ли блокчейн поддерживать необходимую конфиденциальность?

Например, вы хотите отправить 50 долларов своему другу Кевину. Но прежде чем ваша транзакция будет одобрена, сеть должна знать, действительно ли у вас есть 50 долларов. Хотя многие блокчейны следуют этому правилу по-разному, в каждом случае все участники сети должны знать, что вы владеете $50.

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

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

Даже если эта информация является точной, всё равно это не меняет сценария. Почему? (Потому что) по-прежнему можете найти множество способов выяснить связи между двумя пользователями и узнать их адреса.

Проблема текущего сценария

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

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

Да, это отнимает много времени, но узнать это не невозможно. Вот почему наличие адресов вместо имён не помогает сохранить конфиденциальность сети.

Может ли быть достаточно только шифрования?

Понятие конфиденциальности и конфиденциальной информации тесно связано с шифрованием. Если вы думаете о хранении на блокчейне только общих данных, то определённо можем это сделать. В этом случае мы все равно сможем добиться сохранности данных, неизменяемости и временных меток.

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

Однако не сможете использовать этот тип шифрования для транзакций, которые означают какую-либо передачу токенизированных активов. Если вы с Кевином зашифруете свои транзакции, никто в блокчейне больше не сможет безопасно использовать актив. Это связано с тем, что все будут не уверены в точном местонахождении актива.

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

Конфликт между ликвидностью и конфиденциальностью

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

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

Именно так происходит утечка информации, и это одна из главных проблем, но в сети до сих пор нет никаких конкретных правил.

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

Среди всех этих конфликтов у нас, наконец, есть решение, которое мы так долго искали — Доказательство нулевого знания/разглашения.

Глава №02. Что такое доказательство нулевого знания?

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

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

Суть этой концепции заключается в том, чтобы доказать обладание знаниями без их раскрытия. Основная задача здесь — доказать, что вы знаете значение z, не говоря, что такое z, и не сообщая никакой другой информации.

Кажется сложным? Ну, это не так уж и сложно.

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

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

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

ZKP. Menaskop.

Свойства доказательства с нулевым знанием

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

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

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

Приложения для доказательства нулевого знания набирают популярность уже довольно давно. Но это не новая концепция. Она существует уже более 20 лет. Исследователи улучшили производительность и эффективность системы.

Теперь доказать утверждение стало супер-просто и очень эффективно. Теперь оно может осуществляться напрямую с помощью системы блокчейн.

Глава №03. Как работает нулевое доказательство знаний?

Приложения для доказательства нулевого знания кажутся уникальным протоколом. Однако многие из вас, должно быть, задаются вопросом, как доказать утверждение, не передавая информацию. Что ж, позвольте мне объяснить это на двух самых известных примерах.

Давайте начнем.

Первый пример: Пещера Али-Бабы

Это один из самых любимых сценариев для правильного исследования того, как работает проверка подлинности с нулевым знанием. Здесь одна сторона известна как Пегги, а вторая (проверяющая) как Виктор.

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

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

Теперь Виктор хочет убедиться, что Пегги говорит правду. То есть, она знает секретное слово. Но Пегги — человек закрытый и не желает говорить Виктору волшебное слово. Как же Виктор может узнать, говорит она правду или нет?

Виктор придумывает план, как разрешить ситуацию. Он отмечает входной путь А и выходной путь В. Однако, поскольку они встречаются в одном и том же месте, пути А и В — просто левый и правый (вектор) пути. Во время осмотра Виктор остаётся снаружи, а Пегги идёт в пещеру.

Теперь у Пегги есть возможность выбрать путь А или В, но какой бы путь она ни выбрала, Виктор не должен об этом знать. После того, как Пегги выбирает путь, она заходит внутрь, а Виктор входит в пещеру. Затем он выкрикивает название пути, по которому он хочет, чтобы Пегги вернулась. Он может выбрать случайным образом — либо А, либо Б.

Если она действительно знает секретное слово, это будет очень просто. Она может использовать это слово, чтобы открыть дверь и вернуться к Виктору. Или же она может вернуться тем же путем, если потребуется.

Предположим, Пегги действительно не знает этого слова. В этом случае она сможет вернуться к Виктору, только если Виктор выкрикнет название пути, который она выберет вначале. Поскольку процесс выбора является случайным, Пегги получит 50-процентную вероятность того, что она последует указаниям Виктора. Но если Виктор повторит этот процесс, скажем, 15 раз или 25 раз, то Пегги не сможет сделать удачную догадку, чтобы обмануть его.

Предвидение хода Виктора станет равным нулю, и Пегги попадётся.

Но даже после многократного повторения этого процесса Пегги удаётся вернуться туда, куда хочет Виктор; тогда Виктор может с уверенностью сказать, что она действительно знает секретное слово.

Что происходит при просмотре третьей стороной?

Как правило, если за этой ситуацией наблюдает третья сторона, то Виктор должен иметь скрытую камеру для записи сделки. Однако камера могла бы записывать только то, что кричит Виктор — может быть либо А, либо Б. Но она также могла бы записывать, как Пегги появляется в Б, когда он кричит Б, или появляется в А, когда он кричит А.

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

Как же доказать честность эксперимента?

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

Таким образом, Виктор сможет доказать честность эксперимента, не зная слова. Но это не будет полностью доказательством нулевого знания.

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

Таким образом, даже с генератором чисел он не будет столь же эффективен, как простое подбрасывание монеты.

Только одна попытка

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

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

Второй пример: слепой друг и два шарика

Для этого типа эксперимента по проверке подлинности доказательства нулевого знания потребуются два одинаковых по размеру шара, но разного цвета. Этот эксперимент действительно популярен. Майк Хирн и Константинос Халкиас впервые представили этот новый метод. Вы также можете провести этот эксперимент, используя две разноцветные карты.

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

Поэтому вам нужно доказать, что они разного цвета, не говоря ему, какой из них какой.

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

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

Теперь, когда вы не дальтоник, вы точно сможете определить, подменил он мяч или нет. Если бы шары были одного цвета, вероятность правильного ответа была бы 50%. Таким образом, после повторения этого процесса, когда вы сможете каждый раз отвечать правильно, ваш друг будет убеждён (в верности утверждения).

Вероятность предвидения станет равной нулю, и вы достигнете трёх свойств нулевого знания.

Но убедитесь в том, что ваш друг не знает, какой из шаров — зелёный, а какой — красный. Так вы сможете сохранить третье свойство «нулевого знания».

Глава №04. Интерактивное доказательство нулевого знания

Шифрование с нулевым знанием может быть двух видов: 

  1. Интерактивное доказательство нулевого знания.
  2. Неинтерактивное доказательство нулевого знания.

Давайте посмотрим, что они собой представляют.

Основы интерактивного доказательства нулевых знаний

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

Это наиболее типичный сценарий блокчейна с нулевым доказательством знаний. Здесь вы доказываете, не раскрывая понимания. Но вы также раскрываете его пользователю, с которым взаимодействуете. Поэтому, если кто-то просто наблюдает за вами вдвоём, он не сможет проверить ваши знания.

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

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

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

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

Глава №05. Неинтерактивное доказательство нулевого знания

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

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

Задача судоку с карточками

Судоку — одна из самых сложных игр, но с простыми правилами. Все строки, сектора и столбцы должны содержать число 1-9 только один раз.

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

Давайте посмотрим, как это можно сделать.

Способ решения

Вам понадобится 27 карточек, пронумерованных от 1 до 9. Так, 27 карточек будут содержать цифру 1, а ещё 27 — цифру 2. Всего вам понадобится 243 карточки.

Теперь нужно положить три карточки в соответствующую коробку с решением. То есть, если правильное число для этой ячейки — пять, вы положите в эту ячейку три карточки с цифрой 5.

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

Теперь нужно доказать, что вы положили все карточки в правильное положение, не раскрывая его. Для этого вам нужно:

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

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

Глава №06. zk-SNARKS 

Наверняка уже слышали о zk-SNARKS. Вы когда-нибудь задавались вопросом, что это такое? Zk-SNARKS explained — технология, которая использует концепцию неинтерактивного доказательства нулевого знания. Zcash использует эту форму криптографии для обеспечения большей конфиденциальности.

На самом деле это аббревиатура от Zero-Knowledge Succinct Non-Interactive Argument of Knowledge.

Эта технология состоит из трёх различных алгоритмов:

  1. Генератор ключей: Генератор ключей задаёт параметр для генерации пары ключей. Здесь доверенный источник может сгенерировать пару закрытых — открытых ключей, а затем уничтожить закрытую часть. После этого, используя открытую часть, генерируется другая пара ключей. Здесь один используется для доказательства, другой — для верификации.
  2. Доказатель: Доказатель должен взять ключ доказательства и некоторые открытые данные, чтобы доказать свои знания. Здесь он будет свидетелем в частном порядке, а затем удовлетворит контекст, чтобы доказать свою точку зрения.
  3. Верификатор: Верификатору понадобится ключ верификации, чтобы убедиться в истинности или ложности утверждения. Он должен принять во внимание публичный ключ и доказательство, чтобы оценить, истинно оно или ложно.

Кроме этих трёх ключей, zk-SNARKS также необходимо поддерживать: 

  1. Нулевое знание: Проверяющий не узнает ничего, кроме того, что утверждение истинно.
  2.  Лаконичность: Какой бы ни была задача, она должна быть очень маленькой, чтобы её можно было доказать в течение нескольких миллисекунд.
  3. Неинтерактивный: Пользователю будет отправлен только stamen для верификатора и ничего больше. Верификатор не сможет взаимодействовать с доказателем.
  4. Аргумент: Доказательство будет подтверждать стойкость шифрования с нулевым знанием и будет ограничено полиномиальным временем.
  5. Знания: Доказатель и верификатор не могут выполнить процесс без доверенного свидетеля.

Глава №07. Предприятия, использующие шифрование с нулевым знанием

Теперь, когда знаете всё о доказательстве нулевого знания, давайте посмотрим на некоторые известные предприятия, использующие этот протокол.

Zcash

Большинство блокчейн-платформ раскрывают транзакции между двумя равными. Это не только один из недостатков блокчейна, но и подрывает его масштабирование. Zcash, с другой стороны, может обеспечить полную конфиденциальность, когда речь идёт о транзакциях.

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

Она также известна тем, что представила zk-SNARKS, и после этого многие последовали её пути.

ING

ING — нидерландский банк, который запустил свой новый блокчейн с нулевым знанием. Хотя они запустили немного модифицированную версию системы нулевых знаний, она называется zero knowledge range proof. В ней им требуется очень мало вычислительной мощности.

Она напрямую связана с финансовым сектором, например, со стоимостью ипотеки. Например, сможете доказать, что у вас есть зарплата для получения ипотечного кредита, не раскрывая свою зарплату.

В настоящее время это блокчейн с открытым исходным кодом, но он бросает значительный вызов другим финансовым блокчейнам.

PIVX

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

Здесь единственное, что будет публичным, —  подтверждение отправленных денег. То есть, увидите, что кто-то отправил деньги, но адрес или сумма будут скрыты. PIVX гарантирует более высокую скорость транзакций благодаря своей новой интеграции с дополнительным усилением конфиденциальности.

Zcoin

Компания использует протокол Zerocoin для обеспечения дополнительной безопасности и полностью анонимной транзакции. Протокол Zerocoin, очевидно, следует концепции доказательства нулевого знания. Однако Zcoin предлагает масштабируемость, которой не хватает многим блокчейн-сетям.

При использовании Zcoin сможете полностью сохранить конфиденциальность личности и то, что тратите в сети. Это отличный способ защиты взаимозаменяемости. Но не путайте их с Zcash. У них разные протоколы, и они определённо не являются форками друг друга.

StarkWare

StarkWare — ещё одна замечательная компания, которая в полной мере использует пример доказательства нулевого знания для технологии. Но они, похоже, искажают типичный протокол SNARKs. Вместо SNARKs они используют технологию STARK.

Цель StarkWare — улучшить проблему конфиденциальности и масштабируемости блокчейна с помощью прозрачного метода транзакций. В настоящее время они разрабатывают аппаратную и программную поддержку для обеспечения лучшего результата от использования технологии STARK.

Эта новая технология позволит избавиться от проблемы скрытой инфляции, которая устранит доверенную установку. zkSTARK — аббревиатура от Zero Knowledge Scalable Transparent Argument of Knowledge. Однако, несмотря на то, что скрытая инфляция исчезла, она по-прежнему будет квантово-устойчивой.

Эта новая технология STARK может стать следующим этапом (после) SNARK.

QED-it

Это один из стартапов, использующих доказательство нулевого знания для обеспечения безопасности. QED-it — израильская компания, которая способна работать с конфиденциальными данными без посторонних глаз. Вы можете интегрировать её в свою систему для более эффективного управления данными.

Некоторые из их популярных клиентов включают BNP Paribas и Deloitte. Основная цель — обеспечить конфиденциальность данных для предприятий. Последние два года они усовершенствовали свой проект, разработав совершенно новые системы SNARK, которые могут справиться с любой ситуацией.

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

Глава №08. Где можно использовать ZKP?

Случаи использования ZKP или доказательства нулевых знаний должны уметь работать с криптографией и надёжными устройствами. По сравнению с другими устройствами мобильные устройства кажутся здесь правильным выбором. Они предлагают безопасную среду выполнения по сравнению с браузерами. Однако и она не исключает риска.

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

Обмен сообщениями

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

Это один из примеров использования доказательства нулевого знания.

Аутентификация

Zero knowledge proof может помочь передать конфиденциальную информацию, такую как информация об аутентификации, с дополнительной безопасностью. Здесь ZKP может поддерживать безопасный канал для пользователя, чтобы он мог использовать свою аутентификационную информацию, не раскрывая её. Таким образом, он сможет эффективно избежать утечки данных.

Совместное использование данных

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

Кто-то всегда может взломать или перехватить информацию в промежутке между обменом информацией — вот где ZKP определенно может помочь.

Это ещё один отличный пример использования доказательств нулевых знаний.

Безопасность чувствительной информации (информация о кредитных картах)

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

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

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

Сложная документация

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

Таким образом, посторонние люди не смогут увидеть ваши документы.

Защита хранилища

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

Контроль файловой системы

Все в файловой системе может быть защищено протоколом доказательства нулевого знания. Файлы, пользователи и даже каждый логин могут иметь различные уровни защиты. Таким образом, это может быть отличным вариантом использования, когда это необходимо.

Все эти сценарии использования протокола с нулевым знанием могут быть использованы в реальной жизни. 

Глава №09. Реализация архитектуры доказательств нулевого знания

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

Процесс обёртывания ключей

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

Управление привилегиями

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

Контроль запросов

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

Таким образом, никто не сможет обойти ваши меры безопасности.

Смягчение всех атак

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

Важна ли система доказательства нулевого знания?

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

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

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

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

Глава 10: Заключение

Блокчейн имеет свои достоинства и недостатки. Эти недостатки замедляют рост этой замечательной технологии.

Однако с появлением системы нулевых знаний — рыцаря в сияющих доспехах — ситуация начала меняться. Теперь блокчейн может стать супер-защищённой платформой, на которую все надеялись.

Дополнительные источники

Итак, можно продолжить со следующих статей:

  1. Forklog: https://forklog.com/cryptorium/chto-takoe-dokazatelstvo-s-nulevym-razglasheniem-zero-knowledge-proof
  2. Первая статья по теме: https://dl.acm.org/doi/10.1145/22145.22178 
  3. Один из последних интересных статей по теме: mirror.xyz/msfew.eth/Blmhp4Hr4Pn10kT6Awj4jq3kOKFq8-DKy3zaUFPzuqA
  4. Перевод по теме: https://hub.forklog.com/zk-starks-vs-zk-snarks-razlichiya-v-tehnologiyah/ 

А пока всё и 

До!

Обсудить в Discord!