ビットコインの秘密鍵を探索する

こんにちは、@tanapro です。第2のドワンゴ Advent Calendar 2017の23日の記事です。社員じゃないですけど勝手に登録しました 😊

さて、ビットコインの話なのですが、世間では秘密鍵を紛失してしまう人が少なからずいます。最近ではこんなニュースもありました。

jp.wsj.com

つらいですね。

ビットコイン秘密鍵のパターンは2256通りあり、目的のアドレスを総当りで探索することは不可能です。地球上に存在する原子の数よりも遥かに多いです。しかし、誰かが使いそうな秘密鍵だけに絞って探索することはできます。辞書攻撃みたいなやつです。

今回はいろいろな文字列をsha256にかけ、その結果を秘密鍵としてビットコインブロックチェーンを参照したとき何が見えるのかを検証します。

test

"test"という文字列をsha256にかけ16進数にすると "9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08" となります。これを秘密鍵とした場合、公開アドレスは "19eA3hUfKRt7aZymavdQFXg5EZ6KCVKxr8" となります。

Bitcoin Address 19eA3hUfKRt7aZymavdQFXg5EZ6KCVKxr8

取引、ありましたね。残高はゼロですが、資金を入れて引き出した形跡はあります。やはりエンジニアの仕業でしょうか。

こんな感じでそれっぽい文字列をsha256にかけ、どんどん見ていきます。

satoshi

Bitcoin Address 1xm4vFerV3pSgvBFkyzLgT1Ew3HQYrS1V

取引履歴が2件あります。

bitcoin

Bitcoin Address 18VkRiDhFu2Z17AvtpU3vL2LbTXDzCvDVo

4件ありますね。

hello

Bitcoin Address 1MmqjDhakEfJd9r5BoDhPApCpA75Em17GA

またありました。

1

Bitcoin Address 1Dt8ty59tU9LkrXG2ocWeSzKFAY8fu6jga

ありますね。

php

Bitcoin Address 1A8SghdcrWbpvynHYz8XERzeEDTDj3oyaZ

ありませんでした。

皆さんも探してみてください。 (くれぐれも、こんな弱い秘密鍵は使わないように!)