Что такое протокол zkSNARKs простыми словами?
Вопрос об анонимности криптовалют с каждым днём всё больше обостряется, ведь пользователям уже недостаточно просто скрывать свои личные данные – они хотят быть незаметными для других. Наряду с подобным стремлением появились биткоин-миксеры и прочие средства анонимизации, одним из которых является протокол zkSNARKs или доказательство нулевого знания.
ПРОТОКОЛ ZKSNARKS: ВВЕДЕНИЕ
Само доказательство нулевого знания образовалось еще в 80-х годах 20 столетия и было придумано тремя учеными, которые работали над проблемами интерактивных доказательств. Перед ними стояла задача – разработать такую систему, где «Доказывающий» мог бы убедить «Проверяющего» в наличии у него определенных знаний без конкретного указания этих знаний.
По сути, подобная система полностью устраняет все недостатки классических механизмов идентификации. Например, если вы используете на каком-либо сайте пароль, то его можно выкрасть, взломав базу данных или попросту считав его с клавиатуры, в случае, когда используется протокол zkSNARKs, вы не указываете свой пароль, а просто доказываете, что он у вас имеется.
ПРОТОКОЛ ZKSNARKS: НАГЛЯДНЫЕ ПРИМЕРЫ
Всем известна такая игра, где на изображении со множеством похожих фигур, необходимо найти определенную. Например, как на картинке внизу – нужно найти панду среди «толпы» штурмовиков.
Похожее изображение
Предположим, что у нас есть два игрока Сатоши и Виталик, перед которыми поставлена данная задача. Первый уже нашел панду, но ему следует доказать, что он это сделал таким образом, чтобы не указывать ее местонахождение на рисунке. Как же это сделать? Тут и вступает в силу протокол zkSNARKs или нулевое доказательство.
Тут можно выделить два алгоритма доказательства:
«Среднетехнологичный». Сатоши и Виталик делают фотографическую копию изображения. Затем Сатоши, так, чтобы Виталик не видел вырезает с изображения фигурку панды и утилизирует свою копию, опять же, незаметно для Виталика. Получаем, что первому игроку удалось доказать факт нахождения панды, но при этом оставить в секрете ее положение на рисунке. Действия обязательно должны в изолированной среде, где исключены все возможности махинаций. Почему данное решение считается средним? Нулевое доказательство выполнено, но для этого нам потребовалась копи-машина, что несколько неудобно.
«Низкотехнологичный». Берем огромный лист бумаги, размеры которого превышают габариты самого изображения. В нем вырезаем отверстие по форме панды и прикладываем к рисунку так, чтобы сама панда и дырочка сошлись. Получается, что Сатоши продемонстрирует наличие знаний о расположении панды, но при этом не раскроет его.
Протокол zkSNARKs, или доказательство нулевого знания, сегодня используются в монете ZCash и её форках, а также было введено в Ethereum вместе с форком Byzantium.