Как создать публично видимое, доказуемо случайное семя заранее? - PullRequest
0 голосов
/ 28 мая 2019

Представьте, что вы ведете дискуссию с n участниками и хотите разделить их пополам случайным образом.

Это можно сделать, создав список участников, случайным образом перетасовав этот список, а затем заставив первых n / 2 участников участвовать в дебатах в команде.

Однако, если бы эти дебаты были особенно важны, мы бы хотели, чтобы созданные нами команды были доказуемо случайными, так, чтобы они были публично видны. Мы хотим показать, что команды, которые мы создали, не являются прямым результатом каких-либо человеческих решений. Есть ли способ сделать это?

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

1 Ответ

0 голосов
/ 28 мая 2019

Вы можете думать о проверяемых случайных числах , которые являются случайными числами, сгенерированными с использованием данных, которые будут раскрыты вместе со всей информацией, необходимой для их проверки.Насколько мне известно, наиболее эффективное использование проверяемых случайных чисел на практике встречается в процедуре отбора в Комитет по назначениям Целевой группы по инженерным проблемам интернета (или NomCom для краткости).RFC 3797 описывает эту процедуру выбора, а также то, как работает проверяемый случайный выбор в целом.

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

  • Ленстра, А.К., Весоловский, Б. «Случайный зоопарк: ленивец, единорог и trx», 2015 г. (до того, как концепция была придумана).
  • Boneh, D., Bonneau, J., et al.«Проверяемые функции задержки», 2018.
...