Рейтинг:2

Доказательство диапазона для элементов в обязательстве Vector Pedersen

флаг ru

Если я построю векторное обязательство Педерсена $c = a_1G_1 + a_2G_2 + ... + a_nG_n$ с произвольным скалярным вектором $(а_1, а_2, ..., а_n)$ и групповые элементы $(G_1, G_2, ..., G_n)$, можно ли создать доказательство диапазона, доказывающее, что каждый элемент в этом обязательстве неотрицательный?

Я понимаю, что можно создать доказательство дальности с помощью Bulletproofs для таких случаев, как $c=aG+bH$, но возможно ли также создать доказательство диапазона для векторов, подобных приведенному выше?

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

Ваше векторное обязательство не имеет ослепляющего фактора, то есть оно не скрывает, относятся ли два разных обязательства к одному и тому же списку $a_i$ составные части. В зависимости от характера $a_i$ компонентов, также может быть возможно провести перебор обязательств, чтобы определить компоненты, которые оно представляет.

Мы можем легко исправить это, добавив ослепляющий фактор. $b$:

$C = a_0G_0 + a_1G_1 + ... + a_{n-1}G_{n-1} + bH$

Мы хотим показать, что каждый компонент $a_i$ является положительным целым числом, меньшим, чем $2^s$.

Для этого мы создаем и объявляем $(n\cdot с)$ обязательства, каждое из которых имеет свой равномерно случайный ослепляющий фактор $b_{i,j}$, куда $0\leq i <n$ и $0\leq j <s$. Каждое обязательство $C_{i,j}$ рассчитывается как $C_{i,j} = (z_{i,j}\cdot 2^j)G_i + b_{i,j}H$, куда $z_{i,j}$ является $0$ или же $1$ и представляет $j$й бит компонента $a_i$.

Верификатор может вычислить $C'=\сумма C_{i,j}$. Мы можем продемонстрировать, что $С$ представляет тот же список $a_i$ компоненты как $С'$ путем предоставления подписи для открытого ключа $(С-С')$ на базовой точке $Ч$. Закрытый ключ для точки $(С-С')$ будет значение $b-\сумма b_{i,j}$.

Теперь мы продемонстрировали две вещи: $С$ является приверженность тому же списку компонентов, что и $С'$, и что каждый компонент $a_i$ создается в виде списка не более $s$ бит (и, следовательно, должно быть положительным целым числом).

Остается лишь продемонстрировать, что каждое из заявленных обязательств $C_{i,j}$ действительно является обязательством $0$ или к $2^jG_i$.

Это может быть достигнуто с помощью любого типа кольцевой подписи, которая подтверждает закрытый ключ для любого $C_{i,j}$ или же $(C_{i,j} - 2^jG_i)$ на базовой точке $Ч$ известен. Для этого вы можете использовать пуленепробиваемые или более простые для понимания кольцевые подписи Борромео.

флаг ru
Чем. Я понимаю. В этом случае размер доказательства для всех обязательств $C_{i, j}$ будет $O (\log (n \cdot s))$ с Bulletproofs?
knaccc avatar
флаг es
@ShigeyukiAzuchi Я не эксперт по пуленепробиваемости, у меня есть только опыт реализации кольцевых подписей на основе Шнорра. Может усложнять или не усложнять то, что задействовано несколько базовых точек $G_i$.

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

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