Zk-snark (Zero Knowledge Proof) - это доказательство нулевого знания. В протоколе zk-snark имеют место два участника: доказывающая сторона (прувер) и проверяющая сторона (верификатор). Доказательство нулевого знания - это процесс, в котором прувер убеждает верификатора в том, что он обладает определенными секретными знаниями, не раскрывая их. Использование zk-snark позволяет скрывать то, с какого адреса ушел платеж, куда он пришел, сколько денег было переведено, а также позволяет доказать, что транзакция действительно прошла и на счете получателя находится верная сумма. Для работы протокол должен соответствовать определенным параметрам: - Полнота: если утверждение верно, то честный прувер может убедить доказательством честного верификатора. - Корректность: если доказывающая сторона лжет, то она не может убедить в корректности проверяющую сторону. - Нулевое разглашение: если утверждение истинно, верификатор не может узнать его содержание. Zk-snark реализован в криптовалюте Zcash и его форках (Zencash, Zclassic, Hush), а также в развертываемом обновлении Ethereum - Metropolis.