いちばん要らないのは、電子メールやスパムを通すための少しばかりのビットバックスを作るために、使える計算資源をすべて燃やし、電気を食い、二酸化炭素を出すように設計された仕組みを、インターネット中に配ることだ。
この問題の技術的な行き着く先を考えてみるのは面白い。地球規模のプルーフ・オブ・ワークの仕組みは、本質的にかなりのエネルギーを消費するのだろうか? それとも、そういう仕組みでもほどほどのエネルギー消費で済むような計算のやり方があるのだろうか?
この問題は計算の熱力学にかかわる。論理的に可逆な変換は、いくらでも小さなエネルギーの散逸で行えることが、昔から知られている。だから注目は、不可逆な変換、とりわけビットの消去を伴う変換に向けられる。1ビットを消去すると、およそkTのエネルギーが散逸する。kはボルツマン定数、Tは温度だ。
肝心なのは、POWの仕組みが本質的に、論理的に不可逆な遷移を大量に伴い、ビットを消去してエネルギーを散逸させるのかどうかだ。それとも、POWトークンは可逆な論理だけで作れるのだろうか?
一つ言えるのは、どんなアルゴリズムも、原理的には出力の大きさを除いて可逆にできるということだ。可逆な論理で計算し、逆戻りのための余分なビットをたくさん作りながら答えまで進む。そこで出力を写し取る。それから計算を逆にたどり、余分なビットをすべて消費して元の値まで戻る。不可逆だったのは、出力を保存した一歩だけだ。ただ、ここで話しているような大きな計算では、これは実際的でない。余分なビットの数が、計算の大きさをはるかに上回ってしまうからだ。
ビットコインやHashcashのような仕組みで使われるハッシュの衝突(厳密には衝突ではなく、先頭に0のビットがたくさん並ぶハッシュ値の原像を探すこと)は、本質的に不可逆に見える。アルゴリズムはふつう、カウンターの値を含む原像を用意し、ハッシュを計算し、カウンターを増やして、望みの性質を持つハッシュが見つかるまで繰り返す。ハッシュ関数そのものも、ふつうは本質的に不可逆な遷移を多く使う。論理的な不可逆性は、ハッシュ関数の定義上の要件だからだ。前の段落の技を使ってハッシュを計算する途中の手順のコストを消せたとしても、繰り返しのたびに出力の結果を消去する必要は残り、エネルギーが散逸する。今使われている典型的なPOWの仕組みは、数百万回から数十億回の繰り返しを要し、これは将来さらに増えるだろうから、散逸はかなりの量になりうる。
ハッシュを論理的に可逆な関数に置き換えれば、途中のビットの数を減らせ、逆戻りの技を使う必要もなくなるかもしれない。原像と像の両方の決まった位置に、いくつかのビットが含まれることを求めればいい。ただ、それでも同じような探索のアルゴリズムが要るように思えるので、途中の結果を消去するたびに散逸が起きる。
この考えを少し変えれば、うまくいくかもしれない。論理的に可逆な関数そのものをとても遅くしておく。たとえば、ラウンドの数を非常に多くできるようにする。そうすれば、あるPOWの手間の水準に対して、当たりの結果が出るまでに要る繰り返しは比較的少なくて済む。これで散逸は減る。ただし検証は遅くなり、POWの検証は作成よりずっと頻繁に行われるので、そちらへあまり傾けるわけにはいかない。
もう一つ考えたのは、ハッシュの衝突のようなランダムなPOWではなく、決定的なPOWを使うことだ。「時限コミットメント」やそれに関わる暗号の研究で、未知のRSAの法のもとで2乗を繰り返すと、非常に多くの回数の2乗が行われたことを、比較的簡潔に、すばやく検証できる形で証明でき、しかも結果の証明書を作るのに近道がないことが示されている。大まかに言えば、法のもとでの2乗は論理的に可逆で、理論上は平方根を計算できる。だが実際には、ハッシュの計算と同じく、法のもとでの2乗を論理的に可逆な操作で計算すると、余分なビットが大量に出る。1回の2乗の余分なビットを上で触れた技で消費できたとしても、POWには非常に多くの2乗が要るので、一つ一つの2乗の一時的な結果は消去せざるをえない。だから全体の散逸は、ハッシュの計算と同じようなものになりそうだ。
(それに、決定的なPOWがビットコインのような用途にうまく合うかははっきりしない。いちばん速いコンピューターの持ち主がすべてのPOWの競争に勝ち、力を持ちすぎてしまうかもしれない。)
というわけで、ジョンの投げかけた疑問は開いたままだ。論理的に可逆な計算だけで組み立てられるPOWの仕組みはあるのだろうか? その計算は本質的に時間がかかるものでなければならないが、正しさの証明書は短く、すばやく検証できなければならない。
ハル・フィニー