「ビットコインのP2Pネットワークは世界最大のコンピュータ」なのか?

「ビットコインのネットワークは世界最大のスーパーコンピュータである」という「ものの言い方」があります。これは正しいのかどうかを検討するため世界最速のスーパーコンピュータの能力と比較してみました。その結果、「2重のSHA-256ハッシュ計算」という特定の計算能力については、ビットコインのP2Pネットワークは世界で最も強力なコンピュータであると考えて良さそうです。

ビットコインのネットワークの計算能力は2011年6月に当時の世界最速コンピュータである日本の「京」の実測性能8.2P(ペタ)FLOPS)を上回りました(注1)。2013年後半以降にはTOP500合計値、つまり世界最速スーパーコンピュータ500台が束になった性能を大きく引き離しています。現時点のビットコインのネットワークは、世界最速スーパーコンピュータに比べておよそ8万倍の計算能力を持っていると考えられます。

以下、その検討過程を説明していきます。

ハッシュパワーとスーパーコン性能を比較する前提

仮想通貨ビットコインを動かしているP2P(Peer-to-Peer)ネットワークは、PoW(Proof of Work)と呼ぶ計算競争を常に行っています。その計算能力の合計を「ハッシュパワー」と呼んでいます。ハッシュパワーの指標は「1秒間に2重のSHA-256ハッシュ計算を何回実行できるか」、単位はhash/s(ハッシュ/秒)です。

一方、スーパーコンピュータの計算能力の指標は「1秒間に何回、浮動小数点演算ができるか」、その単位はFLOPS(Floating-point Operations Per Second)です。スーパーコンピュータのランキング「TOP500」では、倍精度浮動小数点数の行列/ベクトル演算の性能を測るLINPACKベンチマークの結果で比較しています。

ここでhash/sとFLOPSをどう比較するかが問題になります。整数のハッシュ計算と、倍精度浮動小数点の行列/ベクトル演算は本来違う種類の計算です。比較するには、なんらかの基準で単位を換算する必要があります。

そのための基準としてまず検討したのはQuoraのポスト(How to convert mflop/s to mhash/s?)を出典とする「700Mhash/s が 5340GFLOPSに相当する」との仮定です。ただし、このQuoraポストの議論はかなりラフなので、異論もたくさん出てきそうです。

ここでは「GPU(Graphics Processing Unit)マイニング」の実測値を使って比較してみます。ビットコインのブロックのマイニング(採掘)は、今では高性能のASIC(専用の半導体)に置き換えられていますが、一時期はGPUによるマイニングが盛んでした。Bitcoin Wikiに記録されているデータの中から、良い性能を示すサンプルとしてATI5970が叩きだした「863.4Mhash/s」という性能値に注目します(出典はBitcoin Wikiです)。GPUは単精度と倍精度の性能に大きな開きがあるので、ここでは単精度の演算性能に注目することにします。ATI5970の単精度の性能値(カタログ値)として4640GFLOPSという数字を使います(性能値の出典はWikipediaです)。

図1 ビットコインのハッシュパワーと世界最速スーパーコンピュータの比較
縦軸は指数表記で、1E+15はP(ペタ)FLOPS、1E+18はE(エクサ)FLOPSを示す。
折れ線グラフはハッシュパワー。青丸で示されているのは、スーパーコンピュータのランキング「TOP500」の上位500位までの性能の合計値。ハッシュパワーの性能値は、Blockchain.infoのデータに基づき、本文中に記した仮定に基づきFLOPS換算した。
片対数グラフなのに急なカーブを描いていることは、ビットコインのハッシュパワーが激しく上昇し続けてきたことを示す。

図1で示したハッシュパワーは、Blockchain.infoによるハッシュパワー統計値を「4640GFLOPSが863.4Mhash/sに相当する」という仮定に基づきFLOPSに換算してプロットしたものです。

一方、スーパーコンピュータの性能ではTOP500と呼ぶランキングが公表されています。この数字は前述のLINPACKベンチマークで測定した実測値(Rmax)と、理論値(Rpeak)が公表されています。

ここでも議論の余地があります。先のハッシュパワーとFLOPSの換算は「GPUの単精度の計算能力のカタログ値(理論値)」で比較しています。一方、スーパーコンピュータの性能値は倍精度の浮動小数点演算の能力です。そこで、公平を期すには「理論値(Rpeak)の2倍」(単精度と倍精度の性能を比較しているので)で比較した方がいいのかもしれません(これを「立場1」と呼ぶことにします)。

別の考え方として、ビットコインのハッシュパワーは何千台ものノードから構成するP2Pネットワーク全体の能力なので、スーパーコンピュータの計算能力も多数のコンピュータの能力を足した数値、つまりTOP500 #sum(TOP500の合計値)で見た方がいいかもしれません(これを「立場2」と呼ぶことにします)。

今回、グラフ上では立場2を採用し、TOP500のサイトで公表されている「TOP500 #sum」の値を採用して図1にプロットしています。この値は、1位から500位までのスーパーコンピュータのRmaxの合計値です(なお「立場1」の観点からは「Rpeakの2倍の合計値」で比較した方がより公平かもしれません)。

2017年2月のビットコインの計算能力は3.75エクサハッシュ/秒

ビットコインのハッシュパワーの最先端はどうなっているのでしょうか。ビットコインの統計を記録した
blockchain.info
には、ハッシュパワー(推定値)の推移のデータが公表されています。記事執筆時点で過去30日の最大値は、2017年2月1日に記録した

3,750,587.467 (TH/s、テラハッシュ/秒)

です。

ここから先は、巨大な数字を扱う計算になります。このような場合、科学技術分野では通常は「仮数と指数」による表記を使います。上の数値に付いている接頭辞T(テラ)は1012(10の12乗)を意味します。そこで、上記の性能値は次のように表記できます(有効数字3桁として四捨五入しています)。

3.75×1018(hash/s)

接頭辞E(エクサ、10の18乗)を使って「毎秒3.75 エクサハッシュ」と呼ぶこともできます。

コンピュータ向けの表記では、次のようになります。

3.75e+18 (hash/s)

この数字と先の仮定に基づき、ハッシュパワーをFLOPSに変換してみます。コンピュータ向けの表記では、計算式は次のようになります(以下に出てくる式は、プログラミング言語のRuby2.1とPython3.5で計算できることを確認しています)。

3.75e+18 * 4640e+9 / 863.4e+6

この式では、先に挙げた「700Mhash/s」を700e+6、「5340GFLOPS」を5340e+9と、プログラミング言語中で使える表記に改めています。

計算結果は

2.02e+22

となります(有効数字3桁で四捨五入しています)。

この値をどう読むかですが、Z (ゼタ、10の21乗)という接頭辞を使うと

20.2 ZFLOPS相当

となります(ビットコインのネットワークが実際に浮動小数点演算をしている訳ではないので「相当」と付けています)。もっとも、ZFLOPSという単位は今まで見たことはありません。直観的にイメージしにくい数字といえます。

現時点で世界最速のスーパーコンピュータは、中国の「神威・太湖之光」(Sunway TaihuLight)です。260コアの独自開発メニーコアCPUを約4万個搭載し、合計約1000万コアの規模です。LINPACKベンチマークによる実測値Rmaxは93,014.6TFLOPS、理論値Rpeakは125,435.9TFLOPSです(2016/11時点)。対してビットコインのハッシュパワーは、

実測値Rmaxの22万倍
理論値Rpeakの16万倍
2×Rpeakの8万倍

という結果です。先の議論の「立場1」からは、世界最速コンピュータと比べるとビットコインのネットワークは8万倍のハッシュ計算の性能を持つといえます。

ビットコインのハッシュパワーが世界最速スーパーコンを上回ったのは2011年6月

計算能力が向上するスピードも重要です。前出の図1は、「スーパーコンピュータの性能向上のペース」と、「ビットコインのネットワークのハッシュパワー向上のペース」を比較する図になっています。

2011年6月に、ビットコインのネットワークの計算能力が世界最速スーパーコンピュータの単独の性能を抜き去り、さらに2013年後半からはTOP500 #sumの水準を越えて性能が向上しています。

この背景には、ビットコインのマイナー(採掘業者)が設備投資を強化したこと、それにGPUの1000倍以上のハッシュ計算能力を持つASICが普及したことが関係していると考えられます。

Blockchain.intoのデータによれば、2013年12月4日にビットコイン価格は1151ドルの高値を記録しています。その後、ビットコイン相場は世界最大のビットコイン取引所だったマウントゴックスの破綻の影響で急落しています。ハッシュパワーのグラフからは、ビットコイン価格が急上昇した時期にマイナー(採掘業者)たちが猛烈な勢いで設備投資を進め、相場が急落した後にも投資の手を緩めなかった様子が見えてきます。

図2 TOP500の性能向上曲線
世界最速コンピュータの実測性能は三角形でプロットされている。緑丸のプロットは合計値、青四角形のプロットは第500位の性能。片対数グラフなので、直線上にプロットできることは指数曲線的に性能が向上していることを示す。

一方、スーパーコンピュータの性能もほぼ指数関数的な向上を見せています。図2は「TOP500」サイトにあるスーパーコンピュータの性能向上曲線です。1993年からの推移を見ると、スーパーコンピュータの性能曲線は片対数グラフの上ではほぼ直線的にプロットされていて、指数関数的な性能向上といえます。これは大変な変化です。しかし、ビットコインのハッシュパワーはその変化をさらに上回る伸びを示しているといえます。

このような巨大な計算能力(ハッシュパワー)を持つビットコインのネットワークの能力を悪用される懸念はないのか、という意見もあるでしょう。例えば、ビットコイン自体を盗み出すことに使えないか、といった意見です。

そのような意見に対するマイナー達(つまりハッシュパワーの持ち主)の言い分は「マイナーが、自らビットコインの価値を下げる行動を取る訳がないだろう」というものです。自分たちのビジネスを破壊する行動を取るよりも、ビットコインのマイニングを正常に継続する方が経済合理性がある行動といえる訳です。このような「経済人としての人間の振る舞い」をどのように考えるかで、ビットコインへの評価は大きく変わってくるといえるでしょう。

(注1)なお、2011年6月にハッシュパワーは1桁以上の幅で向上しているため、「立場1」の観点で見ても単体のスーパーコンピュータの性能を上回っているといえます。