Рейтинг:1

zkSNARKS - не может понять использование полинома для проверки некоторого условия

флаг et

Из блогпоста Виталика Бутерина - Примерное введение в то, как возможны zk-SNARK

Из подтемы «Сравнение полинома с самим собой» я понял до сих пор

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

Однако я не могу понять, как он использует это для проверки некоторых условий.

Это та часть, которую мне трудно понять

если у нас есть многочлен, который кодирует числа Фибоначчи (так что через $F(x+2) = F(x) + F(x+1)$ через $х = $ { $0, 1, ..., 98$}), то я могу убедить вас, что $F$ действительно удовлетворяет этому условию, доказывая, что многочлен $P(x) = F(x+2) - F(x+1) - F(x)$ равен нулю в этом диапазоне, давая вам частное $H(x) = \frac {F(x+2) - F(x+1) - F(x)}{Z(x)}$ куда $Z(x) = (x - 0) * (x - 1) ... (x - 98)$

Во-первых, я не понимаю, что он имеет в виду, говоря «дать вам частное» — что именно он собирается дать верификатору и как проверяющий это проверит?

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

Если многочлен $П(х)$ (думайте об этом как о функции, которая принимает ввод $х$ и возвращает результат оценки) оценивается как нуль для определенных входных значений для $х$ (очень простой пример может быть $х=х_1, х_2, х_3$), то, как указано в первом цитируемом отрывке вопроса, $П(х)$ будет кратным полиному низшей степени $Z(х)$ что равно нулю для этих входных значений для $х$ (вот это будет $Z(х)=(х-х_1)(х-х_2)(х-х_3)$). Это означает, что если $П(х)$ делится на $Z(х)$, частное (назовем его $Ч(х)$) по-прежнему будет полиномом. Доказательство вычисляет $Ч(х)$ фактически выполняя деление, а именно $P(x)/Z(x)$, и это $Ч(х)$ отправляется от Доказывающего к Верификатору в качестве «Доказательства». Затем Верификатор подтверждает, что продукт $Ч(х)$ и $Z(х)$ действительно равно $П(х)$, и если это так, Верификатор принимает доказательство. Верификатор также должен подтвердить, что $Ч(х)$ на самом деле является многочленом, а не функцией какого-либо другого типа (например, это не должна быть рациональная функция, которая представляет собой нетривиальную дробь с полиномиальными числителем и знаменателем). На практике это в значительной степени подтверждается по умолчанию из-за того, как Prover общается или вычисляет $Ч(х)$. Например, если протокол требует, чтобы доказывающая сторона отправляла коэффициенты $Ч(х)$, то очевидно, что это многочлен. Или, если протокол требует, чтобы прувер вычислял $Ч(г)$ для секретного значения $г$ (означающий, что $Ч(х)$ оценивается в $х=г$), то доказывающему будет предоставлена ​​«Общая ссылочная строка», которая включает кодировки (например, в показателе степени генератора группы в дружественной к спариванию группе) степеней $г$ до высшей степени (например, ${г^{г}, г^{г^2}, г^{г^3}, г^{г^4}, г^{г^5}}$), поэтому Доказывающий вынужден предлагать только многочлен $Ч(х)$ (оценивается в $х=г$) со степенью до этой высшей степени (в этом простом примере 5).

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

значит даст $Ч(х)$, так что верификатор может вычислить $Н(х)*Z(х)$ и убедитесь, что он равен $F(x+2) = F(x) + F(x+1)$. Для многочленов это очевидно, потому что все, что мы сделали, это разделили, а затем умножили на одно и то же ($Z(х)$), возвращаясь к исходному многочлену. Однако если мы вычислим все эти многочлены в случайной точке $х=с$, то все приведенные выше уравнения остаются в силе, но теперь мы просто умножаем и проверяем равенство чисел. Вот откуда берется лаконичность SNARK.

Таким образом, доказывающий может предоставить $Ч(с)$ а также $F(s), F(s+2), F(s+1)$, и верификатор может (предварительно) вычислить $ Z (с) $, а затем использовать равенство $F(s+2) - F(s) - F(s+1) = H(s)*Z(s)$ чтобы убедиться, что все совпадает. Это основано на том, что два многочлена степени меньше или равной $n$ можно договориться максимум $n$ точек (по лемме Шварца-Циппеля).Итак, это вероятностное доказательство равенства.

Однако нам нужно пойти дальше, потому что, очевидно, если мы знаем $s$, мы можем подделать значения, которые будут проверены. Поэтому вместо этого мы оцениваем все полиномы по зашифрованному значению. $Е(с)$ с использованием гомоморфного шифрования.

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

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