ビザンチン将軍の問題は、信頼できないコミュニケーションや悪意のあるパーティーの存在下でコンセンサスを達成することを含む古典的なゲーム理論の問題です。ここでは、信頼できるサードパーティに頼ることなく、アリス、ボブ、マロリーの間のコンセンサスを達成するための一連の質問と段階的なワークフローを提示します。

各人は、匿名で自分自身を表現するために一意のコードを生成します。

アリスはコードAを生成します。
ボブはコードBを生成します
マロリーはコードを生成します。
各人はコードをハッシュし、他の2つのパーティにハッシュを送信します。

アリスはH（a）をボブとマロリーに送ります。
ボブはH（b）をアリスとマロリーに送ります。
マロリーはh（m）をアリスとボブに送ります。
一人一人が出会いの場所と時間を提案し、その提案をハッシュします。

アリスはP1（場所と時間）を提案し、H（P1）を計算します。
ボブはP2（場所と時間）を提案し、H（P2）を計算します。
MalloryはP3（場所と時間）を提案し、H（P3）を計算します。
各人は、一意のコードで暗号化された他の2つのパーティに提案ハッシュを送信します。

アリスは{h（p1）} _ aをボブとマロリーに送ります。
ボブは{h（p2）} _ bをアリスとマロリーに送ります。
マロリーは{h（p3）} _ mをアリスとボブに送ります。
一人一人が受け取った提案のハッシュを復号化します。

Alice Decrypts {h（p2）} _ bおよび{h（p3）} _ m。
Bob Decrypts {h（p1）} _ aおよび{h（p3）} _ m。
Mallory Decrypts {h（p1）} _ aおよび{h（p2）} _ b。
一人一人が独自の提案を送信し、2人は一意のコードで暗号化された他の2つの当事者に提案を受けた。

アリスは、{h（p2）} _ a、{h（p3）} _ aにボブとマロリーに送信します。
ボブはp2、{h（p1）} _ b、{h（p3）} _ bをアリスとマロリーに送信します。
マロリーは、{h（p1）} _ m、{h（p2）} _ mをアリスとボブに送信します。
一人一人が受け取った提案を復号化し、ハッシュを検証します。

アリスはp2、{h（p1）} _ b、{h（p3）} _ bを解読し、受信ハッシュに対してH（p2）を検証します。
ボブはp1、{h（p2）} _ a、{h（p3）} _ aを解読し、受信したハッシュに対してh（p1）を検証します。
MalloryはP1、{h（p2）} _ m、{h（p3）} _ mを解発し、受信ハッシュに対してH（P1）を検証します。
一人一人が提案を評価し、そのうちの1人に対して投票し、投票へのコミットメントを作成します。

アリスはP1、P2、およびP3を評価し、P1の投票を行い、C_A = H（V_A || H（A））のコミットメントを作成します。
ボブはP1、P2、およびP3を評価し、P2に投票し、コミットメントC_B = H（V_B || H（B））を作成します。
MalloryはP1、P2、およびP3を評価し、P1の投票を行い、C_M = H（V_M || H（M））のコミットメントを作成します。
一人一人が他の2つの関係者にコミットメントを送ります。

アリスはC_Aをボブとマロリーに送ります。
ボブはC_Bをアリスとマロリーに送ります。
マロリーはC_Mをアリスとボブに送ります。
各人は、他の2つの関係者に投票とユニークなコードを明らかにします。

アリスはV_AとH（A）をボブとマロリーに送ります。
ボブはV_BとH（B）をアリスとマロリーに送ります。
マロリーはV_MとH（M）をアリスとボブに送ります。
各人は、受け取った投票とコミットメントに対する一意のコードを検証します。
アリスは、V_B、H（B）、V_M、およびH（M）を使用してC_BおよびC_Mを検証します。
ボブは、V_A、H（A）、V_M、およびH（M）を使用してC_AおよびC_Mを検証します。
Malloryは、V_A、H（A）、V_B、およびH（B）を使用してC_AおよびC_Bを検証します。
各人は投票を集計し、多数票を決定します。
アリスは投票V_A、V_B、およびV_Mを集計し、多数決を決定します。
ボブは投票V_A、V_B、およびV_Mを集計し、多数決を決定します。
マロリーは、票V_A、V_B、およびV_Mを集計し、多数決を決定します。
提案に多数決がある場合、すべての当事者が会議のその場所と時間に同意します。
アリス、ボブ、マロリーは、会議の多数派の提案に同意します。
提案の間にネクタイがある場合、彼らはプロセスを繰り返すか、所定のタイブレークメカニズムを使用して、会議の場所と時間を決定することができます。
このステップバイステップのワークフローに従うことで、アリス、ボブ、マロリーは、彼らのアイデンティティを漏らしたり、信頼できるサードパーティに頼らずに、会議の場所と時間でコンセンサスを達成できます。
The Byzantine Generals Problem is a classic game theory problem involving achieving consensus in the presence of unreliable communication or malicious parties. Here, we present a series of questions and a step-by-step workflow to achieve consensus between Alice, Bob, and Mallory without relying on a trusted third party:

Each person generates a unique code to represent themselves anonymously:

Alice generates code A.
Bob generates code B.
Mallory generates code M.
Each person hashes their code and sends the hash to the other two parties:

Alice sends H(A) to Bob and Mallory.
Bob sends H(B) to Alice and Mallory.
Mallory sends H(M) to Alice and Bob.
Each person proposes a meeting place and time and hashes that proposal:

Alice proposes P1 (place and time) and calculates H(P1).
Bob proposes P2 (place and time) and calculates H(P2).
Mallory proposes P3 (place and time) and calculates H(P3).
Each person sends their proposal hash to the other two parties encrypted with their unique code:

Alice sends {H(P1)}_A to Bob and Mallory.
Bob sends {H(P2)}_B to Alice and Mallory.
Mallory sends {H(P3)}_M to Alice and Bob.
Each person decrypts the received proposal hashes:

Alice decrypts {H(P2)}_B and {H(P3)}_M.
Bob decrypts {H(P1)}_A and {H(P3)}_M.
Mallory decrypts {H(P1)}_A and {H(P2)}_B.
Each person sends their own proposal and the two received proposal hashes to the other two parties encrypted with their unique code:

Alice sends P1, {H(P2)}_A, {H(P3)}_A to Bob and Mallory.
Bob sends P2, {H(P1)}_B, {H(P3)}_B to Alice and Mallory.
Mallory sends P3, {H(P1)}_M, {H(P2)}_M to Alice and Bob.
Each person decrypts the received proposals and verifies the hashes:

Alice decrypts P2, {H(P1)}_B, {H(P3)}_B and verifies H(P2) against the received hash.
Bob decrypts P1, {H(P2)}_A, {H(P3)}_A and verifies H(P1) against the received hash.
Mallory decrypts P1, {H(P2)}_M, {H(P3)}_M and verifies H(P1) against the received hash.
Each person evaluates the proposals and votes for one of them, creating a commitment to their vote:

Alice evaluates P1, P2, and P3, votes for P1, and creates a commitment C_A = H(V_A || H(A)).
Bob evaluates P1, P2, and P3, votes for P2, and creates a commitment C_B = H(V_B || H(B)).
Mallory evaluates P1, P2, and P3, votes for P1, and creates a commitment C_M = H(V_M || H(M)).
Each person sends their commitment to the other two parties:

Alice sends C_A to Bob and Mallory.
Bob sends C_B to Alice and Mallory.
Mallory sends C_M to Alice and Bob.
Each person reveals their vote and unique code to the other two parties:

Alice sends V_A and H(A) to Bob and Mallory.
Bob sends V_B and H(B) to Alice and Mallory.
Mallory sends V_M and H(M) to Alice and Bob.
Each person verifies the received votes and unique codes against the commitments:
Alice verifies C_B and C_M using V_B, H(B), V_M, and H(M).
Bob verifies C_A and C_M using V_A, H(A), V_M, and H(M).
Mallory verifies C_A and C_B using V_A, H(A), V_B, and H(B).
Each person tallies the votes and determines the majority vote:
Alice tallies the votes V_A, V_B, and V_M and determines the majority vote.
Bob tallies the votes V_A, V_B, and V_M and determines the majority vote.
Mallory tallies the votes V_A, V_B, and V_M and determines the majority vote.
If there is a majority vote for a proposal, all parties agree on that place and time for the meeting:
Alice, Bob, and Mallory agree on the majority-voted proposal for the meeting.
If there is a tie between the proposals, they can either repeat the process or use a predetermined tie-breaking mechanism to decide on the meeting place and time.
By following this step-by-step workflow, Alice, Bob, and Mallory can achieve consensus on a meeting place and time without divulging their identities or relying on a trusted third party.