Принцип работы технологии zk-SNARK заключается в том, что доказательство о владении определённой информацией производится без раскрытия самой информации. 5 При этом взаимодействие между проверяющим и доказывающим минимально. 5
Протокол zk-SNARK состоит из трёх алгоритмов: 5
- G — генератор ключей, А — параметр безопасности, C — функция от публичного значения x (например, факт совершения транзакции) и секретного значения w (то, что нужно доказать, например сумма транзакции). 5 G получает на вход А и C. 5 Затем производится генерация общедоступных ключей: доказательного ключа pk и ключа проверки vk. 5
- P использует в качестве входных данных проверяющий ключ pk, случайный х (общедоступный) и значение w, которое требует доказательства без его раскрытия. 5 Алгоритм P создаёт доказательство prf=P(pk, x, w). 5
- Верификатор V принимает ключ доказательства, значение x и доказательство prf, а затем возвращает True или False. 5
Для построения доказательств нулевого знания с помощью zk-SNARK необходим набор открытых параметров, а также создание криптографических ключей. 1