Я читаю это объяснение zkSnarks, написанное Максимом Петкусом - http://www.petkus.info/papers/WhyAndHowZkSnarkWorks.pdf
Мой вопрос касается раздела 4.6.1.
Настраивать
- построить соответствующий полином операнда $л(х)$ с соответствующими коэффициентами
- выборка случайная $\альфа$ и $s$
- установить ключ проверки с зашифрованным $л(с)$ и это "сдвинутая" пара: $ (г ^ {л (с)}, г ^ {{\ альфа} л (с)}) $
- установить ключ подтверждения: $(г^{\альфа})$
1) Я сделаю первый шаг описанной выше настройки.
построить соответствующий полином операнда $л(х)$ с соответствующими коэффициентами
Мы все еще находимся в той части текста, где все $л(х)$ находятся $а$. Мы еще не достигли версии 4.6.2, где рассматривается случай, когда из 3 $л(х)$, 2 соток $а$ а 3-й это $д$.
Итак, если я создам 3 точки с одинаковыми буквами, это будет выглядеть примерно так
$а * х = r1$
$а * у = г2$
$а * г = г2$
С реальными цифрами можно
$2 * 2 = 4$
$2 * 3 = 6$
$2 * 4 = 8$
Итак, 3 $л$ очки $[(1, 2), (2, 2), (3,2)]$
Если я сделаю интерполяцию Лагранжа по этим трем точкам, это даст мне $л(х) = 2$.
Если вместо этого я использую $а = 1$, тогда $л(х)$ полученные от Лангранжа всегда будут $л(х) = 1$, т. е. Лагранж всегда будет давать мне $л(х) = а$
Поэтому я не могу понять, как добраться до $л$ многочлен, который выглядит как в 4.6.1 с $а=1$ и $л$ многочлен $x^2 - 3x + 3$. я не говорю $x^2 - 3x + 3$ не подходит к делу - $л = 1$ в $x \in {1,2}$ - это подходит к делу, но я никогда не получу $л$ многочлен, похожий на полином Лагранжа, я всегда получаю $л(х) = а$.
2) Далее идет 3-й шаг настройки - т.е.
установить ключ проверки с зашифрованным $л(с)$ и это "сдвинутая" пара: $ (г ^ {л (с)}, г ^ {{\ альфа} л (с)}) $
Во всех наших протоколах до сих пор мы всегда использовали $л(х)$ в качестве промежуточного шага - т.е. прувер никогда не вычисляет $Е(л(х=s))$ & передает его верификатору. Он всегда использует $л(х)$ строить $ч(х)$ - т.е. $h(x) = \frac {l(x) * r(x) - o(x)}{t(x)}$
Итак, я немного смущен этим шагом настройки здесь? Доказывающий теперь передает шифрование промежуточных материалов ($л(х)$) верификатору вместо $Е(ч)$? - верификатор просто необходим $Е(ч)$ & $Е(р)$ и он проверяет доказательство, проверяя $E(p) = E(h)^t$ - поэтому мне не ясно, как обеспечить $ (г ^ {л (с)}, г ^ {{\ альфа} л (с)}) $ подходит для достижения этого последнего шага?