P2Pジャンケンは分解すると、以下の3つのフェーズに切れます。 ジャンケングループの形成 ジャンケン 勝敗の確認 1.では、ジャンケンをするメンバを集めて、確定します。きっかけを作る人をジャンケンリーダと呼ぶことにします。ジャンケンメンバを集める方法は不問とします。メンバの確定ですが、これは、paxos(分散合意アルゴリズム)を使うことでできます。ジャンケンリーダがpaxosにおけるリーダとして機能します。 2.で、実際にジャンケンをしますが、開始のかけ声は誰がかけてもよく、かけ声の合意をpaxosで行います。かけ声の合意のあと、メンバはそれぞれジャンケンの手を決めます。ジャンケンの手は決定後、逆算されないようノイズとなるデータを足してhash値を計算し、そのhash値とノイズデータのhash値の2つをメンバと共有します。その後、手が出そろったことをpaxosを使って合意します。 3.で勝