ビットコミットメント
この手法が必要となる例として安全なコイン投げが挙げられる。 2人のプレイヤAliceとBobは相反する目的を持っているとする。2人はその決着をコインフリップで付けたい。 両者が物理的に同じ場所に居るのであれば以下のようにすればよい。 (1) Bobは"表"か"裏"かを宣言する。 (2) Aliceがコインを投げ、AliceとBobの両方がその結果(コインの裏表)を見て、その結果に決着を委ねる。
例を修正して、2人が電話で決着を付けようとしている場合を考える。この場合、Bobはコインの表裏を確かめられない。従って、Aliceは正直に裏表を言う必要はなく、自分に有利になるようにBobに表裏を伝えることができる。
コミットメント方式を用いる場合、以下のようにコイン投げを行う。 (1) Bobはコインの"表"か"裏"を選び、その値をコミットする。コミットメントをAliceに伝える。(2) Aliceはコインを投げ、結果をBobに伝える。(3) Bobはコミットした値をAliceに伝える。(4) Bobの値とAliceの値が一致している場合Bobの勝ちとする。そうでない場合、Aliceの勝ちとする。 さてAliceがずるをして勝とうとした場合、(2)の段階でBobのコミットメントの中身を知る必要がある。同様にBobがずるをして勝とうとした場合、(3)の段階でコミットメントの中身を書き換える必要がある。これらの行為はコミットメントが良いものであれば防げる。