Рейтинг:2

Зафиксируйте вывод проверяемых случайных функций

флаг jp

Постановка задачи следующая. Предположим, что существует публичный ввод $х$ и доказывающий оценивает $y \gets VRF_{sk}(x)$, но доказывающая сторона не хочет раскрывать вывод $у$. Мой вопрос в том, можно ли позволить испытателю опубликовать обязательство $у$, сказать $com_y$, затем доказывает, что зафиксированное значение $com_y$ правильно генерируется путем оценки VRF с использованием секретного ключа $ск$ и общественный вклад $х$?

Я ценю вашу помощь.

Chris Peikert avatar
флаг in
Какие ограничения есть на $com_y$? Мы всегда можем определить $com_y=0$, что тривиально доказать, что оно «правильное».
Chenghong avatar
флаг jp
@ChrisPeikert, спасибо за комментарий, это действительно хороший момент. Однако я не особо задумывался об ограничениях для $com_y$. На самом деле, я читал статью (LegoSNARK) https://eprint.iacr.org/2019/142, посвященную zksnark «коммит-и-доказательство».Они могут подтверждать утверждения о приверженных ценностях. Поэтому мне было интересно, можем ли мы сделать то же самое для VRF?
Chris Peikert avatar
флаг in
Это доказательства о ценностях «внутри» обязательства $com_y$, а не о самом $com_y$. В настройке VRF обратите внимание, что сам открытый ключ VRF является обязательством перед выходом функции $y$ (и даже всеми выводами сразу!), потому что можно доказать правильность $y$ обычным способом. Но это по своей сути требует раскрытия $y$.
Рейтинг:1
флаг es

Для упрощения ECVRF, описанный в черновик-irtf-cfrg-vrf-02 будет использовать пару ключей $(х, Y=xG)$ и принять вход $\альфа$. Он вернется $P = xH$, куда $H = H_p(Y \mathbin\|\alpha)$, а также основанное на Шнорре доказательство дискретно-логарифмической эквивалентности (DLeq), демонстрирующее, что $P$ использует один и тот же закрытый ключ $х$ с $Y$ на генераторных точках $Ч$ и $G$ соответственно. Таким образом, это доказывает, что $P$ был правильно рассчитан как $xH$. $H_p()$ означает создание хэша, приводящего к точке EC, что в связанном документе называется $\texttt{ECVRF_hash_to_curve}$. $G$ относится к известной базовой точке кривой.

модифицированный $\texttt{ECVRF_prove}$ Функция может быть создана для целей создания обязательства. Он выберет единый случайный фактор ослепления $b$, и вернется $B = bG$ и $P' = х(Н+В)$ вместо $P = xH$. Он вернет доказательство DLeq, которое продемонстрирует, что $P'$ использует один и тот же закрытый ключ $х$ с $Y$ на генераторных точках $(Н+В)$ и $G$ соответственно, и таким образом доказать, что $P'$ был рассчитан, как и ожидалось.

модифицированный $\texttt{ECVRF_verify}$ функция может быть создана для проверки обязательства. Это займет $В$ в качестве дополнительного аргумента, чтобы можно было проверить, работает ли доказательство DLeq с генератором $(Н+В)$ вместо $Ч$.

После этой модифицированной проверки верификатор точно знает, что $P' = x(H+B) = xH + xB$. С $х$ является закрытым, верификатор не может вычислить $xB$ для определения зафиксированной стоимости $xH$. Это также означает, что проверяющий не может попытаться выяснить, является ли это обязательством перед каким-либо конкретным $xH$ стоимость.

Доказывающий может открыть обязательство, раскрывая $xB$ и предоставление DLeq доказательства того, что $xB$ и $Y$ использовать один и тот же закрытый ключ $х$ на генераторных точках $В$ и $G$ соответственно. Поскольку проверяющий точно знает, что $P'==x(H+B)$, а также точно знает, что $xB$ вычисляется правильно (благодаря доказательству DLeq), проверяющий точно знает, что правильное значение $xH$ можно рассчитать как $P'-xB$.

$xH$ значение, которое было зафиксировано, будет идентично $xH$ значение, которое было бы получено исходным немодифицированным $\texttt{ECVRF_prove}$ функция.

Обратите внимание, что после того, как обязательство открыто, верификатор может использовать только измененное $\texttt{ECVRF_verify}$ функция проверки правильности значения $xH$ был предоставлен. Если по какой-либо причине проверяющему требуется отдельное доказательство, которое можно использовать с исходным неизмененным $\texttt{ECVRF_verify}$ функция, это дополнительное доказательство может быть предоставлено доказывающей стороной одновременно с открытием обязательства.

Chenghong avatar
флаг jp
Я ценю ваш отличный ответ, это действительно помогает. Я попытаюсь сделать некоторый анализ сам, основываясь на вашем решении.
knaccc avatar
флаг es
@Ченхун, нет проблем. Мне было бы очень интересно, если бы вы могли предоставить некоторый контекст относительно того, как эти обязательства могут быть более полезными, чем простое обязательство хеширования, для которого вместо этого предоставляется доказательство правильности позже, когда оно открывается доказывающим.

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

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