Честно говоря, когда я впервые увидел эти три аббревиатуры рядом, мне показалось, что это три ответа на один и тот же вопрос: кто быстрее, кто безопаснее — выбирай один и дело с концом. Потом я понял: ставить их рядом в рейтинге — всё равно что спрашивать «какой лучше инструмент — молоток, отвёртка или гаечный ключ»: ответ зависит от того, у тебя гвоздь, шуруп или болт.
Каждый из них решает на самом деле три проблемы, которые по ошибке сводят в одну.
Первая проблема такая: я хочу доказать, что нечто истинно, но для доказательства нужны данные, которые слишком чувствительны, и я не хочу показывать их тебе. Банк хочет показать регулятору, что «эта сделка законна, полномочия в порядке, нет повторов», но не желает раскладывать суммы и плательщика/получателя по бухгалтерским книгам. Такое доказательство, при котором требуется правда, но без раскрытия данных,— это вотчина ZK. В чём прелесть: гарантия рождается из математики, а не из «я обещаю, что не загляну». Регулятор или аудиторы, получившие ключ верификации, могут проверить вывод, но не могут добраться до базовых данных. Цена тоже вполне реальная: ZK хорошо доказывает свойства данных, но плохо подходит для совместных вычислений нескольких сторон, когда у каждой нет полного набора данных, и при этом требует существенно больше вычислительных ресурсов, чем открытый текст.