Рейтинг:2

Можно ли проверить вычисление хеш-функции, фактически не доказывая его с нулевым разглашением?

флаг in

Позвольте мне сначала представить контекст: допустим, у нас есть оценка хеш-функции: $$ч = Н(х, у),$$ куда $х$ и $у$ являются общедоступными и частными входными данными хеш-функции $Ч$, соответственно.

Затем, если я хочу доказать кому-то, что это вычисление было выполнено правильно, фактически не раскрывая $х$, то я должен создать доказательство знаний с нулевым разглашением $\пи$ (которые можно было получить через ZKPoK общего назначения, такие как SNARKS, STARKS, ...) $х$ такой, что $ч = Н(х, у)$. До этого момента все в порядке.

Что, если я хочу, чтобы кто-то еще проверил оценку хэша, не раскрывая приватный ввод? $х$, не проходящий через ЗКПоК общего назначения; и важнее: сохранение некоторой хеш-функции характеристики такие как детерминизм, единообразие и универсальность?

Моя первая идея решить этот вопрос - найти функцию $f$ так что:

  1. $ф(х)$ могут быть обнародованы (чтобы любой мог легко проверить вычисление $H(f(x),y)$).
  2. $ф(х)$ также удовлетворяет детерминизму, единообразию и универсальности.

В самом деле, если такая функция $f$ существуют, то я мог бы просто заменить $Ч$ с $f$. Предположим, что я пытаюсь найти какое-то вычисление, которое разделяет некоторые свойства, которыми обладают хэш-функции, но гораздо более эффективно (т. е. без необходимости общих доказательств цели) проверяемо.

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

Ievgeni avatar
флаг cn
Каков статус $y$?
Bean Guy avatar
флаг in
Что вы имеете в виду под статусом?
Ievgeni avatar
флаг cn
Это общеизвестно? Или это секрет?
Bean Guy avatar
флаг in
$x$ — общедоступный ввод, а $y$ — приватный ввод.
Ievgeni avatar
флаг cn
Если $H$, $f(x)$ также общедоступны, каждый может проверить $h= H(f(x), y)$, не так ли?
Bean Guy avatar
флаг in
Именно так, но я хочу, чтобы $f(x)$ также было детерминированным вычислением, однородным и универсальным. Другими словами, мне нужно, чтобы $f(x)$ было детерминированным вычислением, которое ничего не говорит о прообразе $x$ и чтобы риск коллизий был пренебрежимо мал.
Ievgeni avatar
флаг cn
"что ничего не раскрывает" => Будьте точнее.
Bean Guy avatar
флаг in
Ничего, если я скажу, что хочу, чтобы $f(x)$ был устойчив к прообразу?
флаг us
Из вашего описания как-то звучит, что вы ищете схему обязательств, например. обязательство Педерсена.
Bean Guy avatar
флаг in
@RubenDeSmet Проблема в том, что обязательство не выглядит случайным элементом. Например, вы можете просто добавить некоторое количество нулей в конце обязательств, и тогда вы легко отличите обязательство от случайного элемента.
флаг us
я не понимаю как; стандартное обязательство Педерсена $C = xG + yH$ полностью скрывается и на самом деле неотличимо от случайного. С другой стороны; это интегрирует вашу переменную $y$ в функцию $f(x)$ и потребует, чтобы она была равномерно случайной, так что это не совсем то, что вам нужно.

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

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