Это довольно сложный криптографический процесс, и вы можете найти подробное описание, погуглив Julian Hosp zero-knowledge proofs. Проще говоря, представьте себе, что нужно ввести пин-код на телефоне. Пин-код напоминает закрытый ключ. Чтобы доказать, что человек знает пин-код, все, что нужно, это разблокировать телефон и показать разблокированный экран. Это было бы похоже на кусочек пазла в блокчейне.
Если вы видите экран, значит, человек должен знать закрытый ключ. Теперь представьте, что кто-то хочет доказать, что у него есть закрытый ключ, но не хочет, чтобы кто-нибудь видел кусочек пазла.
Одним словом, он не хочет, чтобы кто-нибудь видел разблокированный телефон, но этот кто-то хочет доказать, что может разблокировать телефон с помощью пин-кода. Очевидно, он не может показать пин, иначе все будут знать закрытый ключ и смогут управлять монетами. Что же можно сделать вместо этого? Кто-то может зайти в телефон, не позволяя никому смотреть на него, и активировать беспроводную точку доступа. Другие теперь могут проверить, действительно ли он вошел в систему. Если точка доступа видна, то, должно быть, кто-то смог войти в систему и, следовательно, знал пин-код, не видя телефона. Идея доказательства с нулевым разглашением аналогична: люди подписывают транзакцию, не раскрывая конечный результат, но вместо этого раскрывают ключ, который доказывается на основании вероятности того, что они смогли правильно подписать. Это позволяет совершать транзакции без раскрытия суммы или получателя.
Безусловно, это было бы лучшим криптографическим решением, поскольку оно не нуждается в других людях и невероятно эффективно. Есть только один существенный недостаток: для этой криптографической функции требуется так называемый мастер-ключ. Тот, кто знает этот ключ, может подписать любую транзакцию и контролировать весь блокчейн. Представьте себе, что правительственный орган знает мастер-ключ, который может использоваться для разблокировки любого телефона. Они всегда будут знать правильный пин-код, но никто не узнает, был ли действительно введен пин этого телефона или мастер-ключ. Например, при создании ZCash мастер-ключ был создан группой людей, которые затем показали на камеру, как они его уничтожили. Возникали сомнения в том, действительно они уничтожили ключ или нет, проводились расследования. Несмотря на то что это выглядит законным, такая уязвимость может погубить эту технологию. В криптографии постоянно работают над усовершенствованиями, и другие криптовалюты стремятся добавить дополнительную конфиденциальность в свои собственные блокчейны. Например, в Эфириуме в октябре 2017-го добавили так называемые сертификаты zk-SNARK в обновление Byzantium. Ожидается, что другие улучшения воспоследуют.