何人かのビザンチン将軍が、それぞれコンピューターを持っていて、王のWi-Fiを、パスワードの総当たりで攻撃したい。パスワードの文字数は分かっている。ネットワークを刺激してパケットを発生させると、発見されないうちに侵入してログを消去するため、限られた時間内にパスワードを破らなければならない。過半数が同時に攻撃したときだけ、間に合うだけのCPUパワーがある。
攻撃がいつになるかは特に気にせず、ただ全員が一致していればよい。誰でも望む者が攻撃時刻を発表し、それを「計画」と呼ぶことにした。最初に聞こえた計画が公式の計画になる。問題はネットワークが瞬時ではないことだ。2人の将軍がほぼ同時に異なる計画を発表すると、ある者は一方を先に聞き、別の者はもう一方を先に聞くことになる。
そこで、プルーフ・オブ・ワークのチェーンを使う。各将軍は、最初に聞いた計画を受け取ると、その計画をハッシュに含む、難しいハッシュベースのプルーフ・オブ・ワーク問題をコンピューターに解かせる。プルーフ・オブ・ワークは、全員が同時に取り組んでも、誰かが解を見つけてネットワークへブロードキャストするまでに10分かかるほど難しい。解を受け取ると、全員がプルーフ・オブ・ワーク計算のハッシュを最初の解を含むように調整する。そうすれば、次のプルーフ・オブ・ワークを見つけたとき、それが最初の解の後ろに連なる。別の計画に取り組んでいた者がいれば、こちらへ切り替える。こちらのプルーフ・オブ・ワークチェーンの方が長くなったからだ。
約2時間後には、計画が12個のプルーフ・オブ・ワークのチェーンによってハッシュ化されているはずだ。各将軍は、プルーフ・オブ・ワークチェーンの難易度を検証するだけで、そこに費やされた1時間あたりの並列CPUパワーを推定し、決められた時間内にこれだけを生成するにはコンピューターの過半数が必要だったと見て取れる。少なくとも、その大半は計画を見ていたはずだ。プルーフ・オブ・ワークが、その計画に取り組んだ証拠だからである。プルーフ・オブ・ワークに表れたCPUパワーがパスワードを破るのに十分なら、合意した時刻に安全に攻撃できる。
ホーム

