bitcoin 採掘


今から bitcoin を掘っても遅いと思うが、試してみた。

技術的な背景

bitcoin は、ブロックチェーンと呼ばれる改竄できない(困難な?)データを P2P ネットワークでシェアしている仕組みのようである。

ブロックチェーン自体は、前のブロックのデータを使って、次のブロックのデータを作る、ということで、新しくないように思える。契約書の割印のようなもので、そのページのデータを書き換えようとすると、前のページを差し替える必要がある、といったものだろうか・・・

改竄できないデータを作るために、sha256 ハッシュを二回使って、先頭がいくつかの 0 となるようなデータを探し出させるような、計算量を必要とする仕組みになっているようだ。

昔はソフトウェアでも掘れていたが、計算量の増大に伴い、GPU に、それでも遅いので、ASIC で採掘するのが主流。

python で試掘

技術的な解説など山のようにあると思うので、前置きはこのくらいにして、掘れるわけはないと思うが、python で掘ってみることにした。
python だと、pyminer というのがある。

このソフトを使うには、 bitcoind が必要とのこと。bitcoind のセットアップ方法は色々書かれているが、試してみたところ、ちょっと試すにしても、最初のダウンロード時間が長すぎて(1日経っても終わらない・・・)挫折。また、getwork rpc プロトコルが廃止されていて pyminer.py は使えない。。。

試行錯誤の末、辿り着いた結論は、slushpoolに登録して Stratum Mining Proxy を使うこと。

python setup.py install して mining_proxy.py を実行すれば、pyminer.py が実行できるようになった。mining_proxy.py には何か引数が必要かもしれないが、よくわからない。とりあえず、-cu と -cp を付けておいたが未検証だ。

pyminer 自体は、nonce を 0 から順に試しているだけなので、そのままでは全く使えないだろう。
pyminer を魔改造して遊んでみては?

参考

  • slushpool は長らく pool を運営しているようで、ドキュメントがわかりやすいように思えた。