Как работает доказательство с нулевым разглашением (zero-knowledge proof)?
-
1
Что такое доказательство с нулевым разглашением (zero-knowledge proof)?
Доказательство с нулевым разглашением — это криптографический протокол, который позволяет одной стороне (доказывающему) подтвердить истинность утверждения другой стороне (верификатору), при этом не раскрывая никакой дополнительной информации о ней (ни содержания, ни источника, из которого доказывающий узнал о правдивости).Такое определение впервые было предложено исследователями из Массачусетского технологического института (MIT) Шафи Голдвассером, Сильвио Микали и Чарльзом Ракоффом в научной статье “Сложность доказательств в интерактивных системах” (1985).
-
2
Как это работает?
Представьте, что вы находитесь в комнате с человеком, которому завязали глаза.
На столе перед вами лежат два шарика — белый и черный.
Вам необходимо доказать второму человеку (верификатору), что шарики действительно разных цветов, при этом не раскрывая каких именно.
- Для этого вы должны попросить его спрятать оба шарика под стол.
- После этого попросите достать только один, чтобы вы могли его увидеть.
- Далее шарик снова прячется и в следующий раз верификатор снова может показать либо белый, либо черный.
- Однако вы сможете доказать утверждение, поскольку точно знаете, менял ли он их под столом.
Тем не менее полностью верификатор в истинности факта не будет уверен, ведь могли иметь место удача или обман.
Эта проблема решается путем повторения эксперимента n количество раз. С каждым раундом шанс случайно оказаться правым будет уменьшаться вдвое: после пяти повторений вероятность обмана составит 1 к 32, после 10 раундов — 1 к 1024, а после 20 раундов — примерно 1 к 1 000 000.
Благодаря повторениям можно добиться желаемого уровня надежности доказательства, однако абсолютной уверенности достичь при этом невозможно.
Для чего используют доказательство с нулевым разглашением?
Одним из очевидных применений доказательства с нулевым разглашением в криптовалютах можно назвать проверку наличия у пользователя средств для транзакции, при этом не раскрывая участникам сети, кто этот пользователь и сколько денег у него на счету.
Этот протокол также можно использовать в сферах, где необходимо обеспечить безопасность данных (например, персональной информации) или проведение финансовой транзакции.
Доказательство с нулевым разглашением может играть роль инструмента, который обеспечивает верификацию данных и пользователей, предоставление привилегированного доступа и установление доверенных соединений.
4
Какие существуют виды доказательств с нулевым разглашением?
- интерактивный (верификатор самостоятельно опрашивает доказывающего в режиме реального времени);
- неинтерактивный (не требует непосредственной коммуникации между верификатором и доказывающим; первый может проверять подлинность утверждения постфактум).
Доказательства с нулевым разглашением можно также разделить на две группы, исходя из наличия или отсутствия фазы фиксации подлинности утверждения несколькими верификаторами — так называемой доверенной установки [trusted setup] с применением булевой функции.
Для некоторых протоколов, таких как zk-SNARKs (Zero-Knowledge Succinct Non-Interactive ARgument of Knowledge), это является необходимым условием. Верификаторы генерируют специальный секрет, который уничтожается сразу после доверенной установки. Если секрет продолжит существовать, то данные в сети можно будет подделать, тем самым нивелируя преимущества использования протокола.
Существуют протоколы, которые не требуют доверенной установки (например, zk-STARK (Zero-Knowledge Scalable Transparent ARguments of Knowledge).
5
Какие преимущества доказательств с нулевым разглашением?
- повышение приватности пользователей в публичных блокчейнах и других сетях;
- укрепление информационной безопасности за счет замены неэффективных способов аутентификации и верификации;
повышение пропускной способности блокчейнов и улучшение масштабируемости.
6
Какие недостатки доказательств с нулевым разглашением?
- требуют значительных вычислительных мощностей;
- возможность компрометации при доверенной установке;
- потенциальная уязвимость перед квантовыми вычислениями.
7
В каких проектах используются доказательства с нулевым разглашением?
Ориентированная на повышенную приватность пользователей криптовалюта ZCash использует модифицированный протокол zk-SNARKs. Этот же протокол был частично имплементирован в сети Ethereum в рамках хардфорка Byzantium . На данный момент разработчики эфира рассматривают дополнительные возможности применения этой технологии.
QEDIT разработал SDK для приватности транзакций в блокчейнах с возможностью валидации нодами. Проект получил Знак Качества Европейской Комиссии и имеет партнеров, таких как VMWare, Ant Financial и Deloitte.
StarkWare создала решения на основе протокола zk-STARKs для интеграции в существующие сети. Проект привлек финансирование от Виталика Бутерина, Pantera Capital, Intel Capital, Sequoia Capital и других инвесторов.
Голландский банк ING выпустил протокол ZKRP для доказательства заработной платы клиента в диапазоне, необходимом для получения ипотечного кредита, без раскрытия суммы.
- Подписывайтесь на новости Cryptoit в Telegram:
- Cryptoit Live — вся лента новостей,
- Cryptoit — самые важные новости и опросы.