それが公正であると確信できる宝くじ


27

(これがよく知られている場合は申し訳ありません。)エージェントjが確率p iでアイテムを取得できるように、エージェントのいずれかにアイテムを渡したいと思います。すべてのエージェント(およびすべてのオブザーバー)がランダム描画が実際に公正であると確信できるようにするための暗号化(またはその他の)ツールはありますか?kjpi


1
エージェントは .. p kを知ることができますか?p0pk
マイクサミュエル

回答:


19

私が問題を正しく理解しているなら、それはコインを公​​開することに相当するように思えます。ビットコミットメントを想定している場合、これを行う方法はたくさんあるようです。1つの例は、各当事者が0からk 1の間のランダムな整数を生成し、ビットコミットメントを使用してそのビット文字列に公的にコミットすることです。その後、各エージェントがコミットすると、全員が秘密の整数を公開します。勝ったエージェントは、kを法とする整数の合計によってインデックス付けされたエージェントです。エージェントが1人でも正直であれば、フリップはランダムでなければなりません。kk1k

もちろん、これに関する1つの問題は、ビットコミットメントが必要なことです。ビットコミットメントの情報理論的スキームは、古典的コンピューティングと量子コンピューティングの両方で不可能です(ただし、エイドリアンケントは最近、相対性理論を利用したスキームを提案しました)。ただし、安全なビットコミットメントは、計算上の仮定で実現できます。


2
このアプローチの私の問題は、多くの外部のオブザーバーに公平性を説得したい場合、それぞれが少しコミットしなければならず、それぞれがコミットメントの証拠を明らかにする必要があることです。証拠を公開しないオブザーバーの一部を無視することはできません。なぜなら、公開する最後のオブザーバーは、証拠を公開するかどうかを決定することで宝くじの結果を操作できるからです。
ズバンアンブラス

1
@ user8067:相互作用がなくても、少なくとも1人の当事者が正直であることを信じることができないと思います。これを言う理由は、その時点で参加している全員の陰謀によって最初のランダム性が実際に事前に決定されている場合、プロセス全体がランダムでなく決定論的であるためです。ただし、問題を解決するにはプロセスをランダムにする必要があるため、これが最善の方法と思われます。
ジョーフィッツシモンズ

2
私はそれが可能であると確信していません。
ジョーフィッツシモンズ

2
@RickyDemer:質問には、ここで適用可能な敵対モデルを伝えるのに十分な情報がありません。ギルがそれが何であるかを正確に教えてくれたなら、特定のスキームが彼の要件を満たしているかどうかを証明する方が簡単でしょう。しかし、そうは言っても、ギルが私たちの答えが彼のニーズを満たしているかどうかをチェックできる以上のことは間違いありません。
ジョーフィッツシモンズ

2
@RickyDemer:この場合の明らかなモデルが何であるかは、私にはまったくわかりません。それはセットアップに強く依存し、デフォルトの仮定がどうあるべきかは明らかではありません。私の答えとレフの両方が間違っているように、投票して演技を始めるのは少し大変です。アダムの答えで指摘されている警告を明示的に含めていません。私は答えを編集していないことに注意してください。ギルからの情報がなければ、敵対モデルについて推測するのは理にかなっていないので、できるだけ一般的なままにします(ビットコミットメントは非マリアル性である必要があります)。
ジョーフィッツシモンズ

15

他のユーザーがほのめかしているように、これは暗号学でよく研究されている問題です。これは「コインフリッピング」と呼ばれ、マルチパーティ計算の特殊なケースです。

実際にどのプロトコルがジョブを実行するかは、コンテキストに大きく依存します。

  • 「スタンドアロン」設定では、プレーヤーは他のプロトコル(または実際、外部とのやり取り)に同時に関与することなく、プロトコルを単独で実行します。これについては、Oded Goldreichの教科書「Foundations of Cryptography」(第2巻、私が思うに)に素晴らしく徹底した扱いがあります。

それがいかに微妙かを示すために、使用するコミットメントスキームが順応性がある場合、別のレスポンダーが提案する「誰もがランダムな値をコミットする」プロトコルは安全ではありません。脆弱性のないコミットメントスキームは安全なプロトコルを提供しますが、設計が少し複雑です。

  • 参加者が他の同時プロトコルに関与している設定では、構成可能なプロトコルが必要です。コンポーザビリティにはさまざまな概念がありますが、ユニバーサルコンポーザビリティと呼ばれる最も強力なものには、追加のセットアップの前提条件が必要です(たとえば、PKIまたはすべての関係者に見えるがそれらのいずれにも制御できない共通のランダム文字列)。残念ながら、私はこのトピックのアクセシブルな扱いを知りません。しかし、普遍的な構成可能性または脆弱性のないコミットメントに関する最近の論文を参照することは、開始するのに適した場所です。

1
「すべての関係者に表示されるが、いずれの関係者も制御できない共通のランダムな文字列」は、まさに生成したいものです。
ズバンアンブルス

1
そして、どういうわけかその問題を一度解決した後、普遍的に構成可能 もう一度解決します(任意の回数)。

UCのコミットメントは、登録済み公開キーのセットアップ(PKIよりも強い仮定)とマルチストリングのセットアップ(一般的なランダム文字列よりも弱い仮定)で知られていると思います。

2
Adamのサイトへようこそ!
ギルカライ

11

注:以下のコメントをお読みください。このプロトコルには問題があるようです。


pj

{0,1}bb

任意のエージェントは、自分のベクトルを一様にランダムに選択することにより、選択した乱数が一様にランダムに来たことを確認できます。オブザーバーが納得するためには、少なくとも1人のエージェントがプロトコルに従っていることを信頼する必要がありますが、もし誰も従わなかった場合、公正な宝くじを最初から望んでいなかったと思います。


すみません、レヴ、私はちょうどあなたの答えに気づきました。私が答えを書き始めたとき、ここには何もありませんでしたが、私たち二人は非常に似た答えを思いついたようです。
ジョーフィッツシモンズ

心配ない!正しい軌道に乗っているようです。
レフReyzin

はい、実際にはコインの反転のコンテキストでこれに関する多くの論文があると思いますが、それに基づいて適切な答えを与えるほど十分にその文献を本当に知りません。
ジョーフィッツシモンズ

7
私が知っている最初の参照は次のとおりです。M。Blum。電話でコインフリッピング。CRYPTO 1981:11-15。dm.ing.unibs.it/giuzzi/corsi/Support/papers-cryptography/から
ライアンウィリアムズ

4
標準的なビットコミットメントスキーム(ハッシュなど)を使用する場合、標準的な攻撃があります。アリスが最初に行く2つのパーティ、アリスとボブの場合を考えてみましょう。アリスがコミットメントをブロードキャストした後、ボブはそれをコピーできます。アリスが彼女のコミットメントを開いた後、ボブは今彼の同じを開くことができます。ランダムなベクトルが等しくなったため、ゼロにxorします。ボブは最終値を強制的にゼロにすることができました。これは公平性の要件の矛盾です。
DW

-3

受動的なオブザーバーは、図面がステージングされていないことを確認できません。擬似ランダムプロセスへの入力を選択して、目的の結果を得ることができます。

ただし、オブザーバーがランダムであることがわかっている乱数を提供でき、他のエージェントが入力を後で変更しないことを確認できる場合(入力で自分の効果を補償できるため)、結果が実際にランダムであると確信できます。

これには、数学的に安全であることが証明されていないコミットメントスキームが必要ですが、実際にはセキュアハッシュ(SHA3など)を使用して実現できます。

この例を考えてみましょう:

ここに画像の説明を入力してください

実装例を作成しました。ここでライブで見ることができます:https : //mrogalski.eu/cl/またはGitHubのソースを確認しください。


1
これは、Joeの回答ですでに指摘されています。
カヴェ

1
グラフィックのイラストはとても素敵です!
ギルカライ14

3
グラフィックは非常にきれいですが、あなたの答えには既存の答えにないものは何も含まれていません。
デビッドリチャービー14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.