Рейтинг:1

Доказательство знания постоянного дискретного логарифма в билинейной настройке

флаг cn

Рассмотрим пару $\mathbb{e}: \mathbb{G}_1\times \mathbb{G}_2\longrightarrow \mathbb{G}_T$ с генераторами $g_1$, $g_2$ за $\mathbb{G}_1$, $\mathbb{G}_2$ соответственно. Группы $\mathbb{G}_1$, $\mathbb{G}_2$, $\mathbb{G}_T$ имеют некоторый простой порядок $р$.

Для люка $s$, позволять $[g_1,g_1^s,\cdots,g_1^{s^N}], [g_2,g_2^s,\cdots,g_2^{s^N}]$ быть общей строкой ссылки (хотя для некоторых схем Snarks и полиномиальных обязательств параметр public не содержит $g_2^{s^i}$ за $i\geq 2$).

Данные элементы $a,b\in\mathbb{G}_1$, я хотел бы доказать в ЗК, что я знаю константу (в отличие от многочлена большей степени) $\альфа$ такой, что $ а ^ {\ альфа} = б $. Каков наиболее эффективный способ сделать это?

Пара идей, которые у меня были:

Идея 1:

  1. Для случайно сгенерированного элемента $a_2\in\mathbb{G}_2$ (вызов), Доказывающий отправляет элемент $b_2:= a_2^{\alpha}$.

  2. Verifier выполняет проверку сопряжения $\mathbb{e}(a,b_2) = \mathbb{e}(a_2,b)$

Идея 2

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

  2. Доказывающий отправляет элемент $b_2:= g_2^{s^N\cdot\alpha}$ (что невозможно, если $\альфа = f(s)$ для некоторого непостоянного полинома $ф(Х)$).

  3. Верификатор проверяет доказательство, отправленное на шаге 1.

  4. Verifier выполняет проверку сопряжения $\mathbb{e}(a,b_2) = \mathbb{e}(b,g_2^{s^N}) $

Существуют ли более эффективные протоколы, которые выполняли бы эту работу? Мне не особенно нравится идея полагаться на алгоритм хеширования, который генерирует случайные элементы группы. $\mathbb{G}_2$ как вызовы.

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

Я не думаю, что какая-либо из этих идей является нулевым знанием, так как я не понимаю, как верификатор сможет производить достоверные стенограммы без сотрудничества с доказывающим.

С другой стороны, если мы просто выполним протокол Шнорра для $\mathbb G_1$ без использования билинейной структуры, казалось бы, это работает. Есть ли причина, по которой это неприемлемо?

Mathdropout avatar
флаг cn
Спасибо. Вы правы, протокол Шнорра должен работать без каких-либо модификаций. Я думал, что в протоколе будет пробел, потому что фактор ослепления, выбранный доказывающим, может быть непостоянным полиномом. Но если полином $\gamma\cdot f(X) + c(X)$ является константой для фиксированного ослепляющего полинома $c(X)$ и случайно сгенерированного вызова $\gamma$, то из этого следует, что полином $ f(X)$ постоянна. Нет необходимости в парах или общих справочных строках.

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

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