やじうまPC Watch

ゲームボーイは毎秒0.8ハッシュでビットコインをマイニングできる

 レトロゲーム機を取り上げているstacksmashingのチャンネルで、ゲームボーイでビットコインをマイニングするという面白い試みが紹介されている。

 「マイニング」というと、高速GPUでないと処理できないようなイメージがあるのだが、その中身と仕組みは至ってシンプル。取引データがブロックのなかに格納されていて、それがハッシュ関数によって暗号化されている。そのハッシュ関数を総当りして、約10分に1回更新されるターゲットの値と比較、より値が小さければ解答を見いだしたとされ、ビットコインが報酬として得られるわけだ。

 今回の試みでは、PCのマイニングソフトからゲームボーイに対しマイニングを指示。ゲームボーイ側で処理するのは、76バイトのブロックデータとターゲットの値を受け取り、ハッシュ値を生成してターゲット値と比較。それより小さければ報酬を受け取るよう指示をホストのPCに出し、そうでなければNonceを増やして再度ハッシュ生成/比較を行なう作業だ。

 ゲームボーイとのデータのやり取りにはRaspberry Pi Picoが使われた。PicoのGPIOを使ってゲームボーイの対戦用ポートと通信を行ない、ゲームボーイ用に開発されたハッシュ生成/比較ソフトで処理を行なう。なお、PicoのGPIOは3.3V駆動だが、ゲームボーイの通信用ポートは5V駆動であるため、レベルシフト回路などが必要となる。通信はSPIが使われているのだが、これにはPico用のサンプルコードを用いた。

 さらに、ゲームボーイに対してマイニングを行なうよう指示するソフトはntgbtminerと呼ばれるものを利用しているが、これはメインとなるマイニングプログラム部が容易にゲームボーイマイニング用に置き換えられるためだとしている。

 試みは見事に成功し、ゲームボーイでマイニングが開始された。最終的に気になる速度だが、毎秒0.8ハッシュ(0.8H/s)だ。ちなみに近代的なマイニングASICの速度は毎秒100テラハッシュ(TH/s)なので、その実用性は推して知るべしだ。

【14時30分訂正】記事初出時、タイトルのハッシュレートが誤っておりました。お詫びして訂正します。