Hot Chips 26において、CoinTerraは「Goldstrike 1」と呼ぶビットコインのマイニング用のプロセサを発表した。
ビットコインでの支払いは、インターネットで「Miner(採掘者)」と呼ばれるグループにブロードキャストされ、その取引の正当性が確認されてビットコインのブロックに追記されることで完了する。この追記は誰でもできるわけではなく、ある仕事に成功した人だけが行うことができる。
それはブロックのデータに「Nonce(ナンス)」と呼ぶ値を付け加えてSHA-256という関数でハッシュを計算し、256bitのハッシュ値の最初に規定の数のゼロのビットが並ぶようなナンス(次の図のn)の値を見つけるという仕事である。SHA-256は1方向関数と呼ばれ、入力データからハッシュ値を計算するのは簡単であるが、あるハッシュ値を持つ元データを見つけるうまい方法はなく、しらみつぶしに探していくしかない。このため、ナンスの値を変えながら、ひたすらハッシュの値を計算するという作業が必要になる。
ビットコインの採掘には、ひたすらSha-256ハッシュ関数を計算し、条件に合うnを見つける(出典:この記事のすべての図はHot Chips 26におけるCoinTerraのBarkatullah氏の発表スライドの抜粋である) |
条件を満たすナンスを見つけると、その値とともに取引の内容を追加して公表する。そして、最初に追記に成功した採掘者にはビットコインで報酬が支払われるので、効率よく採掘に成功すれば儲かることになる。
Goldstrike 1チップは120台のハッシュエンジンを持ち、128段の入力FIFOからデータを供給し、計算したハッシュ値を128段の出力FIFOに格納する。ハッシュエンジンは32bitにナンスを順に調べるので、入力FIFOは384bitの入力データを232サイクルごとに供給する。この処理は計算量は多いが、入力は少ないので4ピンのSPIポートでデータを供給している。
個々のハッシュエンジンは、2つの並列のパイプを持ち、カウンタからのナンスを付けくわえたハッシュを行い、その結果を第2ラウンドのハッシュを行い、条件に合った結果が得られたらコンパレータで選択して出力を出す。
SHA-256では64回の繰り返しで1つのハッシュを行うのであるが、Goldstrike 1では64ステージを備え、ループをアンロールしてパイプライン的に処理を行って高速化している。
最初のスライドに書かれたようにSHA256(SH256(m||n)と2重にハッシュを計算する必要があるので、ラウンド1とラウンド2が設けられている。
コンプレッサとメッセージのステージは、基本的にはSHA-256の規格をハードウェアにマッピングしたものとなっている。
Goldstrike 1はGlobal Foundries(GF)の28nm HPPプロセスで製造され、11×11の領域の中心をトップレベルの制御ブロックにあて、残りの120領域に120個のハッシュエンジンを配置している。
そして、37.5mm角のパッケージにこのチップを4個搭載している。電源電圧は0.7Vと低いが1.05GHzのクロックで動作し、500Gハッシュ/秒を超える性能を持つ。ピン数は1296とのことであるが、信号ピンは殆ど無いので、大部分は電源とグランドピンであると思われる。
しかし、大量のハッシュエンジンを搭載し、ほとんどフルに動くので消費電力は多く、水冷のコールドプレートを付けてプロセサを冷却している。4個のパッケージを搭載するTerraMinerは、合計16個のGoldstrike 1を使っている。
CoinTerraは、Goldstrike 1 LSIとTerraMinerアプライアンスの販売を行っている。同社のWebサイトによると、2Tハッシュ/秒のマシンは5999ドルとなっている。また、これらのハードウェアの販売に加えて、データセンターに大量のTerraMinerを設置し、1年、あるいは2年の契約で、最低200Gハッシュ/秒から、最大1Pハッシュまでの能力でマイニングを請け負うというビジネスも行っている。
マイニングサービスの費用以上に、マイニングで儲かるなら、他人に貸さないで自分でマイニングをやった方が良さそうであるが、十分にビットコインを採掘できるかどうかには不確実性があり、ビットコインのレートも変動するので、確実に実マネーの収入が得られるハードの販売やサービス契約というビジネス形態をとっていると思われる。