Следующие выдержки были взяты со страницы доказательства с нулевым разглашением в Википедии:
В криптографии доказательство с нулевым разглашением или протокол с нулевым разглашением — это метод, с помощью которого одна сторона (доказывающая) может доказать другой стороне (проверяющей), что данное утверждение истинно, в то время как доказывающая сторона избегает передачи какой-либо дополнительной информации, кроме факт, что утверждение действительно верно. Суть доказательств с нулевым разглашением заключается в том, что доказать, что кто-то обладает знанием определенной информации, тривиально, просто раскрыв ее; задача состоит в том, чтобы доказать такое владение, не раскрывая ни самой информации, ни какой-либо дополнительной информации.
Если для доказательства утверждения требуется, чтобы доказывающий обладал некоторой секретной информацией, то проверяющий не сможет доказать это утверждение кому-либо другому, не обладая секретной информацией. Доказываемое утверждение должно включать утверждение о том, что доказывающий обладает таким знанием, но без включения или передачи самого знания в утверждение. В противном случае утверждение не будет доказано с нулевым разглашением, поскольку оно предоставляет проверяющему дополнительную информацию об утверждении к концу протокола. Доказательство знания с нулевым разглашением — это особый случай, когда утверждение состоит только из того факта, что доказывающий владеет секретной информацией.
Справка: https://en.wikipedia.org/wiki/Zero-knowledge_proof
В качестве примера предположим, что Алиса знает, что Икс является 123 и Д является 456, и Алиса хочет доказать Бобу, что Икс меньше чем Д. Следовательно, Алиса должна построить доказательство таким образом, чтобы Икс и Д не раскрываются Бобу.
Предположим, что рассматриваемый протокол ZKP реализован на основе следующих допущений:
- А может быть получено из Икс
- Б может быть получено из Д
- Икс не может быть получено из А либо Алисой, либо Бобом (Алиса может получить только А от Икс)
- Д не может быть получено из Б либо Алисой, либо Бобом (Алиса может получить только Б от Д)
А = е(Х)
В = f(Y)
А < В // правда
Теперь Боб может убедиться, что Икс действительно меньше, чем Д исключительно путем вычислений А < В
и без того, чтобы Алиса когда-либо раскрывала Икс и Д к Бобу.
Мой вопрос в том, как Боб гарантирует, что А и Б происходят от Икс и Д (и, таким образом, знать, что Алиса не злонамеренна), не зная, что Икс и Д находятся?