Рейтинг:0

zkSNARKs: настройка полинома с одним переменным операндом

флаг et

Я читаю это объяснение 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$ - поэтому мне не ясно, как обеспечить $ (г ^ {л (с)}, г ^ {{\ альфа} л (с)}) $ подходит для достижения этого последнего шага?

Рейтинг:1
флаг ru

Для полиномиальной конструкции вместо использования Лагранжа начните с рассмотрения нетривиального полинома, который равен 0 в заданных точках, например. $х=1$, $х=2$ и $х=3$. Естественный выбор это $(х-1)(х-2)(х-3)=х^3-6х^2+11х-6$. Мы преобразуем это в многочлен, который оценивается как 1 в трех точках, добавляя 1, т.е. $х^3-6х^2+11х-5$. Затем мы можем умножить это, чтобы получить любое значение $а$. Мы могли бы, конечно, просто добавить $а$ к нашему исходному многочлену.

Что касается передачи информации, в доказательстве операции необходимо проверить несколько фактов, как описано в разделе 4.4, и поэтому необходимы несколько значений. Как мы видим в разделе 4.4, в четырех проверках должно быть сделано и в общей сложности семь входов для этих проверок должны быть предоставлены в дополнение к значениям $г$и $г^\альфа$.

флаг et
Большое тебе спасибо

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.