全員がXを知っているだけでは不十分だ。全員が 全員がXを知っていることを知り、さらに 全員が全員が全員がXを知っていることを知っていることを 知っている必要もある ——これはビザンチン将軍問題として知られる、 分散データ処理の古典的な難問だ。
プルーフ・オブ・ワークチェーンはビザンチン将軍問題の解決策だ。その文脈で言い換えてみよう。
何人かのビザンチン将軍がそれぞれコンピューターを持っており、王の Wi-Fi をブルートフォースで攻撃したいと考えている。パスワードの文字数はわかっている。ネットワークを刺激してパケットを発生させたら、限られた時間内にパスワードを破ってログを消去しなければならない。さもなければ発見されて面倒なことになる。彼らは過半数が同時に攻撃した場合にのみ、十分な速さで破れるだけの CPU パワーしか持っていない。
攻撃の時刻がいつかは特に重要ではなく、全員が一致していることだけが重要だ。やる気のある者が時刻を発表し、最初に聞こえた時刻が公式の攻撃時刻となることに決まっている。問題は、ネットワークが瞬時ではないことだ。2人の将軍がほぼ同時に異なる攻撃時刻を発表すると、ある者は片方を先に聞き、別の者はもう片方を先に聞くことになる。
彼らはこの問題を解くためにプルーフ・オブ・ワークチェーンを使う。各将軍は、最初に聞こえた攻撃時刻を受け取ると、その攻撃時刻をハッシュに含む極めて困難なプルーフ・オブ・ワーク問題を、自分のコンピューターに解かせる。プルーフ・オブ・ワークは非常に困難で、全員が同時に取り組んでも誰か一人が解を見つけるまでに 10分かかる見込みだ。誰か一人がプルーフ・オブ・ワークを見つけたら、彼はそれをネットワークにブロードキャストし、全員が現在のプルーフ・オブ・ワーク計算を、自分が取り組んでいるハッシュにそのプルーフ・オブ・ワークを含める形に切り替える。もし違う攻撃時刻に取り組んでいた者がいれば、こちらに切り替える。なぜなら、こちらのプルーフ・オブ・ワークチェーンの方が今は長いからだ。
2時間後には、ある一つの攻撃時刻が 12個のプルーフ・オブ・ワークによってハッシュされたチェーンになっているはずだ。どの将軍も、プルーフ・オブ・ワークチェーンの困難度を検証するだけで、そこに費やされた 1時間あたりの並列 CPU パワーを推定でき、決められた時間内にこれだけのプルーフ・オブ・ワークを生み出すには過半数のコンピューターが必要だったと見て取れる。プルーフ・オブ・ワークはまさに彼らがそれに取り組んだ証拠なので、全員がそれを見ていたはずだ。プルーフ・オブ・ワークチェーンに表れた CPU パワーがパスワード解読に十分であれば、合意された時刻に安全に攻撃できる。
プルーフ・オブ・ワークチェーンが、あなたが質問したすべての同期化、分散データベース、グローバルビューの問題を解決する方法だ。