Привет, читатели. Мы часто говорим с вами о блокчейне и сегодня вас ждет еще один пост на тему «что это такое и зачем оно нужно». В этой статье мы попытаемся объяснить загадочное доказательство с нулевым знанием и его текущее применение.
Содержание
Zero-Knowledge Proof, или протокол Zero-Knowledge, является вероятностным методом проверки, который включает в себя «подобные фактам утверждения» и «утверждения о личных знаниях». Верификатор запрашивает проверяемого на основании определенной случайности. Если дан правильный ответ, то у верификатора есть большая вероятность обладать тем, что он может назвать «знанием».
Доказательство с нулевым знанием может подтвердить, что вы потратили деньги, не раскрывая, какая валюта была потрачена. Возможность ответить на вопрос «Достаточно ли у юзера активов, чтобы отправить другому пользователю», не зная, кто этот пользователь или сколько именно у него денег, является одним из основных вариантов использования доказательств с нулевым разглашением в блокчейне.
В настоящее время конфиденциальность является одной из самых важных тем. Защита данных, относящихся к личности людей (дата рождения, выписка из банка, история транзакций, учетные данные), имеет жизненно важное значение, которое будет расти в будущем. В эпоху технологий мы генерируем поистине ошеломляющие объемы данных, как никогда раньше, и данные, которые мы постоянно создаем, доступны для всех. Крупные компании, такие как Google и Facebook, использовали наши данные, чтобы стать технологическими гигантами, которые сегодня доминируют в мире. Однако недавние прорывы в криптографии и рост числа блокчейнов предоставляют новые способы защитить информацию и идентификацию даже от организаций, с которыми мы взаимодействуем. Доказательство нулевого знания может стать основным из этих способов.
ZKP — это схема шифрования, первоначально предложенная исследователями MIT в 1980-х годах. Соглашение о подтверждении с нулевым знанием — это метод, с помощью которого одна сторона может доказать, что что-то является верным для другой стороны. Помимо информации, что это конкретное заявление валидно, дополнительная информация не раскрывается.
Например, современные веб-сайты хранят хэш-значение пароля пользователя на своих веб-серверах. Чтобы убедиться, что клиент действительно знает пароль, большинство веб-сайтов в настоящее время используют метод хэширования пароля, введенного клиентом, и сравнения его с сохраненным результатом.
Zero-Knowledge Proof может защитить учетную запись пользователя от утечки. Если доказательство с нулевым разглашением будет реализовано, тогда пароль клиента останется никому не известным, но все же сможет аутентифицировать логин клиента. Когда сервер подвергается атаке, учетная запись пользователя остается защищенной, поскольку пароль клиента не сохраняется на веб-сервере.
Основой протокола Zero-Knowledge Proof является интерактивность. Требуется, чтобы верификатор постоянно задавал ряд вопросов о «знаниях», которыми обладает проверяемый.
Например, если кто-то утверждает, что знает ответ на головоломку судоку, доказательством с нулевым разглашением является то, что верификатор случайным образом указывает для проверки по столбцу, строке или девяти клеткам. Каждый тест не должен давать конкретный ответ, а должен только определить, включены ли числа от 1 до 9. Если ответ верный, можно полагать, что проверяемый знает решение проблемы судоку. Однако такой простой способ не заставляет людей поверить, что итоги проверки не фальсифицированы. В случае с судоку, оба могут быть в сговоре заранее, так что пройти проверку можно и не зная ответа. Если они хотят убедить третье лицо, верификатор должен также доказать, что процесс проверки является случайным и что он не пропускает злонамеренно неверный ответ. Таким образом, третьей стороне трудно проверить результаты интерактивного доказательства с нулевым разглашением — необходимы дополнительные усилия и затраты.
Неинтерактивное доказательство с нулевым разглашением, как следует из названия, не требует интерактивного процесса, избегая возможности сговора, но может потребовать дополнительных машин и программ для определения последовательности экспериментов.
Например, в случае с судоку программа решает, какой столбец или строку проверить. Последовательность проверки должна храниться в секрете, в противном случае верификатор может вычислить правильные ответы, фактически их не зная.
Сети Биткоин и Ethereum используют публичные адреса, делая транзакции частично анонимными — общественности известны только адреса и суммы. Тем не менее, можно узнать реальную идентичность адреса с помощью различных видов информации, доступной в блокчейне, такой как записи о взаимодействии, и, таким образом, существует скрытая опасность нарушения конфиденциальности.
С доказательством с нулевым разглашением, отправитель, получатель и другие детали операции могут оставаться анонимными, гарантируя, что транзакции действительны.
ZCash может быть одним из самых известных блокчейнов, которые успешно реализовали Zero-Knowledge Proof. Zcash реализует модифицированную версию ZKP под названием zk-SNARKS, что означает «Сжатый неинтерактивный аргумент знания с нулевым знанием».
Технология zk-SNARK уменьшает размер доказательств и объем вычислений, необходимых для их проверки. Она может доказать, что условия для действительной транзакции были выполнены, не раскрывая какой-либо важной информации о задействованных адресах или ценностях.
zk-SNARK преобразует содержимое транзакции, которое необходимо проверить, в доказательство того, что два полиномиальных продукта равны, в сочетании с гомоморфным шифрованием и другими передовыми методами для защиты скрытой суммы транзакции при выполнении проверки.
Одна из ошибок текущей реализации zk-SNARK заключается в том, что параметры, отвечающие за проверку, могут быть взломаны и тогда вся сеть столкнется с разрушительными последствиями. Возможные решения включают использование современных технологий, таких как Intel SGX и ARM TrustZone. В технологии Intel SGX закрытый ключ остается в безопасности, даже если приложение, операционная система, BIOS или VMM скомпрометированы. Кроме того уже используются инновации в криптографии с нулевым знанием — это ZK-STARKs (масштабируемые прозрачные аргументы знания с нулевым знанием).
Согласно техническому документу zk-STARK, он является первой системой, которая выполняет проверку блокчейна, не полагаясь ни на какие параметры доверия, в то время как скорость вычислений экспоненциально увеличивается с увеличением числа вычислительных данных. Он не опирается на криптосистемы с открытым ключом, и более простые предположения делают его теоретически более безопасным, поскольку его единственное предположение о шифровании состоит в том, что хэш-функции (такие, как SHA2) непредсказуемы.
Несмотря на то, что эти технологии существуют уже несколько десятилетий, они только в последние годы начали вызревать и получать больше внимания. Возможность проверки конфиденциальной информации, такой как сумма транзакции, пароли и другие идентифицирующие данные, становится более ценной для всех с ростом присутствия в сети нечестных игроков. Эти технологии показывают большие перспективы, и мы думаем, что скоро увидим больше партнерских отношений между крупными учреждениями и стартапами, которые будут тесно сотрудничать в разработке новых продуктов, решающих проблемы конфиденциальности.
На этом все и до новых встреч!