コードとプログラム
鍵の探索を走らせるコードはすべて公開されています。以下のリポジトリは、探索を実行するもの — グラフィックカード、プロセッサ、スマートフォン、ブラウザ — ごとに分類し、それらを支えるツールを添えてあります。
- リポジトリ
- 23
- カテゴリ
- 5
- スター
- 353
GPU 5
同じ探索を CUDA カーネルの中で走らせます。最速の経路で、CPU が数分かける量を NVIDIA のカードは 1 秒で試します。
- cacagpu チャレンジの秘密鍵を GPU で探索します。secp256k1、SHA-256、RIPEMD-160 のすべてが CUDA カーネル内で動き、Go が探索を制御します。
- cacachavecuda Cacachave の CUDA 移植版。鍵範囲の走査をグラフィックカード上で実行します。
- words-breaker-gpu BIP-39 の 12 語の並び順を、既知のアドレスが導出されるまで GPU 上で順列を試して復元します。
- sha256gpu SHA-256 の CUDA 実装 — 公開鍵からアドレスへ至る 2 つのハッシュのうち 1 つ目です。
- ripemd-160cuda RIPEMD-160 の CUDA 実装 — アドレスへ至る道の 2 つ目のハッシュです。
CPU 10
プロセッサ上で動く探索プログラム。複数の言語で書かれ、グラフィックカードは不要です。GPU に進む前にアルゴリズムを理解する場所でもあります。
- btcgo Go 版の探索プログラム。1 から 160 のウォレットを選ぶと範囲を読み込み、アドレスに一致するまで鍵を試します。
- cacachave AlbertoBSD の keyhunt の翻訳版。secp256k1 曲線を使うあらゆるコインの鍵を、アドレス・hash160・公開鍵から探索します。
- btcfind-optimized btc-finder を速度重視で書き直したもの。同じ探索を、鍵あたりはるかに少ない CPU 時間で行います。
- btc-finder Node.js による最初のコード。探索の仕組みを内側から示すために書かれました。ここから始めるのが一番です。
- btcc 純粋な C で書かれた探索プログラム。コンパイラ以外の依存はありません。
- btc-finder-using-c 鍵の生成を C++ のネイティブモジュールに任せた btc-finder の派生版。速度のためです。
- btcgoai AI の助けを借りて書かれた Go の探索プログラム。探索ルーチンのテストとベンチマークを備えています。
- btc-random 範囲を順に走査せず、その中の点を無作為に引きます — btc-finder v0.4 のランダム戦略です。
- words-breaker BIP-39 の 12 語の並び順を、既知のアドレスが導出されるまで CPU 上で順列を試して復元します。
- btc163 マスク探索。一部がすでに分かっている鍵の、未知の桁だけを埋めます。
スマートフォン 1
すでにポケットにある端末で走る探索。
ブラウザ 1
インストール不要の探索。タブを開けば始まります。
ツール 6
探索を支え、検証するもの — 範囲、鍵、シードフレーズ、確率。
- bitcoin-tools 確率計算機、範囲ジェネレータ、パズル一覧を備えた Web アプリ。
- bip39tools BIP-39 用スクリプト。シードフレーズからの秘密鍵、チェックサム計算、新規ウォレット生成。
- btc-wif 16 進数の鍵から WIF 形式の鍵をオフラインで生成します。
- btc-start btc-finder が走査を開始するために使う初期値を生成します。
- btcpythonscripts 単体の Python スクリプト。秘密鍵からの公開鍵と、プール作業。
- coinmonk ブラウザで動く BIP-39 計算機。インデックスを単語に変換し、それぞれの近傍語を表示します。
これは選抜したリストです。ここに載るのはチャレンジに関係するリポジトリだけです。その他すべてを含むプロフィール全体は github.com/lmajowka にあります。