ビットコイン・ブロックチェーンが改竄される日はいつか?
今のところ量子コンピュータの実用化を除き、ビットコインの秘密鍵が盗まれたり、ブロックチェーンが書き換えられる心配はなさそうに見えます。ビットコインの送金には電子署名と言われる暗号技術が使われており、また、ブロックチェーンが書き換えられないための仕組みにハッシュ関数と言われる暗号技術が使われています。
ビットコインで使われるハッシュ関数はSHA256と言われるもので、どんな入力を選んでもこのハッシュ関数を通すことで256ビットのデータを出力します。そのため2^256+1種類の入力を選べば、1つは同じ出力結果になりますが、実際にはその半分の2^128種類の入力でかなり高い確率で同じ出力結果が得られます。これゆえにSHA256は128ビット安全性があるなどと言われたりします。
ビットコインのブロックチェーンは10分に1回ブロックが発掘されるようにできており、その発掘のためにハッシュ関数を使ってあるパズルを解く必要があります。このパズルを効率よく解く方法は現状存在しておらず、無作為にしかパズルを解くことができないようになっています。そこでこのパズルを解くための専用マシンをASICと呼ぶのですが、このマシンは毎秒100テラハッシュの処理性能でパズルを解くことができます(マシンは約30万円、参考サイトはここ)。この数字はイメージしにくいと思うので、現在1ブロック発掘するのに必要な計算量と比較してみます。このサイトによると、10000万テラハッシュとなっています。先ほどのマシン100万台を10分間稼動させて1ブロックが発掘できる計算になります。なんとなくイメージがついたかなと思います。この発掘するのに要した作業のことをPoW (Proof of Work)などと呼びます。
ビットコインのブロックチェーンは2009年からこのハッシュパズルを解いてはブロックを積み上げてきました。そして、これまでの累積発掘作業(累積PoW)の記録を以下のようにツイートしている方がいました。
Previous such events:
— Pieter Wuille (@pwuille) June 4, 2020
2^91, Aug 2019
2^90, Nov 2018
2^89, Jun 2018
2^88, Jan 2018
2^87, Aug 2017
2^86, Feb 2017
2^85, Jul 2016
2^84, Jan 2016
2^83, Jun 2015
2^82, Jan 2015
2^81, Oct 2014
2^80, Aug 2014
2^79, Jun 2014
2^78, Apr 2014
2^77, Mar 2014
2^76, Jan 2014
2^75, Dec 2013
上記のデータではイメージしにくいので、図にしてみました(次回の2^93は現状の10000万テラハッシュと仮定して計算しています)。2015年以降、徐々に累積PoWの間隔が広がっているのが分かります。この間隔が広がっていると何が良いかというと、ビットコインが使っているSHA256は128ビット安全性だったことを思い出してください。言い換えると128ビットに達すると安全じゃなくなります。以下のグラフは2^93までですが、これが2^128に達するのが何年かが分かればビットコインの安全性もいつまで保たれるか分かるわけです。
では次に、同じハッシュレートで2^100までをマップした図を見てみましょう。2^100に達するのは2400年を越えているのが分かりますね笑。もともと指数関数的に増加するので当たり前なのですが、こうやって図にすると分かりやすいです。ということで、2^128に達するのはいつになるのでしょうか笑。
ただし、これは現状のハッシュレートのまま計算しているので正確ではありません。これまでのハッシュレートの推移を見てみましょう(引用元サイト)。ハッシュレートも指数関数的に???増加していそうですね、たぶん。
では、今のハッシュレートを100倍と仮定して計算してみると、以下の図のようになりました。2^100には2024年の中ごろとなっています。ただし、2^99との時間差がかなりあることが見てとれます。指数関数的にパズルの探索時間は増えるので、2^101の計算に要する時間も増加します。
最後に、ハッシュレートが3年周期で10倍ずつ増加する仮定で計算してみました。この仮定だと128ビットに到達するの2032年ごろになります。
今のビットコインのハッシュ関数は128ビット安全性があるとはいえ、ハッシュレートの増加によって耐性期間が変ってきます。またIPAから公開されている資料(参照元のPDF資料はここ)でも、2030年までが使用推奨期間とされています。
いずれにせよビットコインのハッシュ関数のアップデートに関しての議論もそろそろ出てくるかもしれません(既にBIPにあがってるのかも)。