ビットコイン・インスティテュート

Re: ビットコインP2P電子キャッシュ論文

ジェームズ・A・ドナルドの投稿(2008年11月13日06:16 UTC)

全員がXを知っているだけでは足りない。全員が「全員がXを知っている」ことを知り、さらに「全員が、全員がXを知っていることを知っている」ことを知る必要もある。これは、ビザンチン将軍問題と同じく、分散データ処理の古典的な難問だ。

PoWチェーンは、ビザンチン将軍問題の解決策だ。その文脈で言い換えてみよう。

何人かのビザンチン将軍が、それぞれコンピューターを持っていて、王のWi-Fiを、パスワードの総当たりで攻撃したい。パスワードの文字数は分かっている。ネットワークを刺激してパケットを発生させたら、限られた時間内にパスワードを破ってログを消去しなければならない。さもなければ発見されて面倒なことになる。過半数が同時に攻撃したときだけ、間に合うだけのCPUパワーがある。

攻撃の時刻がいつかは特に重要ではなく、全員が一致していることだけが重要だ。やる気のある者が時刻を発表し、最初に聞こえた時刻が公式の攻撃時刻となることに決まっている。問題は、ネットワークが一瞬では届かないことだ。二人の将軍がほぼ同時に別々の攻撃時刻を告げると、一方を先に聞く者と、もう一方を先に聞く者が出る。

そこで、プルーフ・オブ・ワークのチェーンを使う。各将軍は、最初に聞いた攻撃時刻を受け取ると、その時刻をハッシュに含めた、きわめて難しいプルーフ・オブ・ワークの問題をコンピューターに解かせる。全員で一斉に取り組んでも、誰かが解を見つけるまで10分はかかる難しさだ。将軍の一人が解を見つけると、それをネットワークに流す。全員が、いま解いている問題を、その解をハッシュに含めたものに切り替える。別の攻撃時刻で解いていた者も、こちらに乗り換える。こちらのチェーンのほうが長くなったからだ。

2時間後には、一つの攻撃時刻が、12個のプルーフ・オブ・ワークのチェーンでハッシュされているはずだ。どの将軍も、チェーンの難易度を確かめるだけで、1時間あたりどれだけのCPUパワーが並行して注がれたかを見積もれる。決められた時間にそれだけの計算を積むには、過半数のコンピューターが必要だったはずだと分かる。プルーフ・オブ・ワークはまさに将軍たちがそれに取り組んだ証拠なので、全員がそれを見ていたはずだ。プルーフ・オブ・ワークチェーンに表れたCPUパワーがパスワード解読に十分であれば、合意された時刻に安全に攻撃できる。

尋ねられた同期、分散データベース、全体で一致した見え方の問題は、どれもプルーフ・オブ・ワークチェーンで解ける。