1

Что такое доказательство с нулевым разглашением (zero-knowledge proof)?

Доказательство с нулевым разглашением — это криптографический протокол, который позволяет одной стороне (доказывающему) подтвердить истинность утверждения другой стороне (верификатору), при этом не раскрывая никакой дополнительной информации о ней (ни содержания, ни источника, из которого доказывающий узнал о правдивости).Такое определение впервые было предложено исследователями из Массачусетского технологического института (MIT) Шафи Голдвассером, Сильвио Микали и Чарльзом Ракоффом в научной статье “Сложность доказательств в интерактивных системах” (1985).

2

Как это работает?

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

Тем не менее полностью верификатор в истинности факта не будет уверен, ведь могли иметь место удача или обман. Эта проблема решается путем повторения эксперимента n количество раз. С каждым раундом шанс случайно оказаться правым будет уменьшаться вдвое: после пяти повторений вероятность обмана составит 1 к 32, после 10 раундов — 1 к 1024, а после 20 раундов — примерно 1 к 1 000 000.

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

3

Для чего используют доказательство с нулевым разглашением?

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

Этот протокол также можно использовать в сферах, где необходимо обеспечить безопасность данных (например, персональной информации) или проведение финансовой транзакции.

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

4

Какие существуют виды доказательств с нулевым разглашением?

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

Доказательства с нулевым разглашением можно также разделить на две группы, исходя из наличия или отсутствия фазы фиксации подлинности утверждения несколькими верификаторами — так называемой доверенной установки [trusted setup] с применением булевой функции.

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

Существуют протоколы, которые не требуют доверенной установки (например, zk-STARK (Zero-Knowledge Scalable Transparent ARguments of Knowledge).

Продолжение https://forklog.com/chto-takoe-dokaz...owledge-proof/



Источник Forklog.com