11

仮想サイコロに応じてユーザーにさまざまな結果を与える Web サイトがあります。私の乱数が正直であると信頼してもらいたいので、自分のコードで乱数を決定する代わりに (懐疑的なユーザーにとっては、操作できるブラック ボックスです)、他のメカニズムを考え出します。

1 つの考えとしては、信頼できる Web サイト (政府など) を参照することです。この Web サイトには、時間の経過とともに変化する公的に観測可能な乱数が含まれています。次に、「0 から 9 までの数字に基づいて結果を決定します。この数字は [url] の 10 秒後の数字になります」と言うことができます。

助言がありますか?

4

1 に答える 1

4

私はこのサイトを自分で使用します。数種類の番号の公開匿名 URL と、それらを監視するリアルタイム ページがあります。

16 進数

2進数

また、ランダム性の原因の科学的説明への参照、およびその実際的なデモンストレーション (サイコロに特化したものも含む) への参照も含まれています。

コードから、上記の番号の URL を取得できます。

検証可能性が重要な場合の代替

まったく別のアプローチ: 締め切りが来たら、Stack Overflowの質問ページなど、外部で制御されたトラフィックの多いインタラクティブなサイトのホームページを取得します。ページを保存し、その MD5 または SHA1 ハッシュを取得して、そこからロールを導き出します。

その後、次のことができます。

  • スナップショット時の状態でページを表示して、HTML が機能していることを確認します
  • 真正性を検証するためのタイムスタンプでいっぱいの HTML ソースと、ほぼ 1 秒単位での取得時間
  • それに基づいて、人々が自分でハッシュを検証できるようにします
  • 特定の新しいハッシュ値をトリガーするために SO のようなサイトで何を変更する必要があるかを予測することは数学的に不可能であるため、値のランダム性を保証します

生成された MD5 ハッシュを知っているジェフが故意に古いページを繰り返すなど、このシステムを改ざんしようとする試みは、サイトのリアルタイム性によって簡単に暴かれます。 t 最近のスナップショットの時点まで。

于 2013-05-15T13:46:42.023 に答える