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

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

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

jp.wsj.com

つらいですね。

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

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

test

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

Address: 19eA3hUfKRt7aZymavdQFXg5EZ6KCVKxr8 | Blockchain Explorer

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

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

satoshi

Address: 1xm4vFerV3pSgvBFkyzLgT1Ew3HQYrS1V | Blockchain Explorer

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

bitcoin

Address: 18VkRiDhFu2Z17AvtpU3vL2LbTXDzCvDVo | Blockchain Explorer

4件ありますね。

hello

Address: 1MmqjDhakEfJd9r5BoDhPApCpA75Em17GA | Blockchain Explorer

またありました。

1

Address: 1Dt8ty59tU9LkrXG2ocWeSzKFAY8fu6jga | Blockchain Explorer

ありますね。

php

Address: 1A8SghdcrWbpvynHYz8XERzeEDTDj3oyaZ | Blockchain Explorer

ありませんでした。

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