Рейтинг:1

zkSnarks: Почему целевой многочлен $t(s)$ должен храниться в секрете, если он известен как доказывающему, так и проверяющему?

флаг et

Я читаю это объяснение zkSnark, написанное Максимом Петкусом - http://www.petkus.info/papers/WhyAndHowZkSnarkWorks.pdf

Используемый здесь пример состоит в том, что существует многочлен степени 3, который, как известно верификатору, имеет корни 1 и 2.

  • Весь полином есть $р(х)$

  • Целевой полином $т(х) = (х-1)(х-2)$.

  • 3-й корень происходит от $ч(х)$, то есть если третий корень равен 3, то $ч(х) = (х-3)$.

  • И $р(х) = h(х). т(х)$.

Таким образом, кажется, что секрет, который доказывающий доказывает проверяющему, заключается в его знании $ч(х)$

Однако в глубине руководства, в разделе 3.6, где автор добавляет к протоколу неинтерактивность, он говорит следующее.

До этого момента у нас была интерактивная схема с нулевым разглашением. Почему что по делу? Поскольку доказательство справедливо только для исходного верификатор, никто другой (другие верификаторы) не может доверять тому же доказательству поскольку:

  • верификатор может вступить в сговор с проверяющим и раскрыть эти секретные параметры $s$, $\альфа$ что позволяет подделать доказательство, как упоминалось в примечании 3.1

  • проверяющий может сам генерировать поддельные доказательства по той же причине

  • верификатор должен хранить $\альфа$ и $т(с)$ пока все соответствующие доказательства не будут проверены, что дает дополнительную поверхность для атаки с возможным утечка секретных параметров

я понимаю как $\альфа$ является секретом и нуждается в защите, но почему $т(с)$ должна быть защищена - в интерактивной версии это было известно как доказывающему, так и верификатору, так почему же при добавлении неинтерактивности в протокол $т(с)$ вдруг станет тайной?

Рейтинг:2
флаг gb

В то время как полином $т(х)$ сама по себе известна, конкретная оценка при $s$, $т(с)$, неизвестно.

В интерактивной версии программа проверки вычисляет $г^р$ и $г^ч$ в «зашифрованном пространстве», как его называет газета, используя «зашифрованные» силы $s$.

Затем верификатор использует $т(с)$ проверить это $g^p = g^{h \cdot t(s)}$, подразумевая $p(x) = h(x) \cdot t(x)$ с высокой вероятностью.

Так как $т(х)$ известно, если $т(с)$ также был известен, $s$ можно было восстановить. Это связано с тем, что полином $т(х) - т(с)$ имеет $s$ как корень по определению. Любой алгоритм, вычисляющий корни многочленов по модулю $q$, например Кантор-Зассенхаус алгоритм, с помощью которого можно найти $s$. Таким образом, $т(с)$ должны храниться в секрете.

Для этого мы также шифруем $т(с)$ давать $ г ^ {т (с)} $, а затем используйте билинейную пару, чтобы выполнить умножение в показателе степени $г$.

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

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