Что такое Zero-Knowledge Proof

6 лет назад

Это протокол доказательства с нулевым разглашением (англ. Zero-Knowledge Proof), в криптовалютах он применяется как способ подтверждения транзакций между пользователями без раскрытия деталей выполняемого перевода.

За счет Zero-Knowledge Proof можно выполнять транзакции, при которых сторонний наблюдатель не сможет увидеть адреса отправителя, получателя и сумму перевода. В основе достижения консенсуса лежит принцип, когда проверяющий может убедиться в правдивости утверждения по косвенным признакам.

Например, неизвестный написал Бобу и представился Элис. Боб, чтобы проверить с кем общается на самом деле, отправляет зашифрованное сообщение, которое можно раскодировать только приватным ключом Элис и спрашивает, что было в послании. Если Элис настоящая, то она легко даст Бобу правильный ответ и тем самым подтвердит свою личность, при этом не раскрывая адреса, с которого вышла на связь. Теоретически, не настоящая Элис может просто угадать правильный ответ и обмануть Боба. Но Боб может повторить проверку много раз, тем самым сведя возможность обмана практически до нуля.

Первой криптовалютой, которая применила этот алгоритм, была Zcash, также он используется в ее форках. Свой вариант доказательства с нулевым разглашением под названием Bulletproofs недавно активировал проект Monero. Также ведутся работы по имплементации Zero-Knowledge Proof в блокчейн Ethereum.