一般的なプロセッサは、よく書かれたプログラムを実行し、毎秒数百万の鍵をテストします。現代のグラフィックカードは数十億をテストします。この違いは、グラフィックカードが速いからではありません。実際、そのコアはプロセッサよりも遅いのです。しかし、コアが何千もあることが違いを生んでいます。
これは問題の性質によるものです。10億番目の候補をテストすることは、9億9999万番目の候補の結果に何も依存しません。各試行は他の試行とは独立しており、このような問題は、大きなコアが16個あるよりも、小さなコアが16000個ある機械にとって理想的なケースです。

グラフィックカードが実際に何を速く行っているのかを具体的に説明する価値があります。高コストな部分は有限体での算術、特にモジュラー逆数であり、大きな利点は組織のトリックから来ました。数百または数千のポイントをバッチ処理し、すべてに共有される単一の逆数を使用することです。残りの部分、つまりハッシュや比較は安価です。次のモジュールで紹介するkeyhuntやVanitySearchのようなプログラムは、このアイデアを注意深く実装したものです。
さて、誰もがする質問です:ASICはどうでしょうか?マイニング専用のチップがあるなら、鍵探索用のチップはどうしてないのでしょう?
答えは2つの部分に分かれており、どちらも興味深いです。まず、マイニング用のASICは役に立ちません。彼らは80バイトのヘッダーに対してSHA-256を計算するだけで、それ以上のことはできません。曲線上のポイントを乗算することも、モジュラー逆数を計算することもできず、ソフトウェアの更新で学習することもありません。論理はシリコンに刻まれています。
次に、secp256k1曲線専用のASICを作ることは技術的には可能ですが、経済的には困難です。チップの設計と製造には数百万ドルがかかり、1年以上かかりますが、その結果は1つのタスクにしか役立ちません。マイナーはこの投資を継続的な収入で償却しますが、特定の鍵を探している人は、チップが納品される前日に他の誰かに奪われる可能性のある一度きりの不確実な報酬しかありません。そのため、実際には、チャレンジの世界は中古で購入またはレンタルされたグラフィックカードで動いています。

これを考慮に入れると、2^40と2^70の間の距離が明確になります。40ビットは1兆の候補です。グラフィックカードは数分で解決し、ノートパソコンは数時間で解決します。50ビットはさらに1000倍です:グラフィックカードで数時間。60ビットはさらに1000倍です:数週間。70ビットはさらに1000倍で、レッスン2が計算したように、1枚のカードで6000年かかります。
この階段の形状に注目してください。70は40のほぼ2倍ではありません。70は40の10億倍です。10ビットごとに1000倍になり、10ビットの3段階が、午後の作業と組織全体を必要とする努力を分けています。

だからこそ、進歩は遅く予測可能です。ハードウェアは改善しますが、各世代で2倍または3倍の要因で改善し、2倍の要因ごとに正確に1ビットを購入します。今日のものより10倍速いカードは、境界で3ビット以上進みます。どのハードウェア世代も80ビットを簡単なものに変えることはなく、正しく選ばれた256ビットの鍵を脅かすものは何もありません。
最後の観察として、次のレッスンの準備をします。このモジュールのすべての計算は、単一の操作が最初から最後まで範囲をスキャンすることを前提としています。多くの人が同時に何も調整せずに探している場合、そのほとんどの作業は繰り返されます。同じ候補をテストする2000台のコンピュータは1台の価値しかありません。分割の組織化が、合計された努力を有用な努力に変えるのです。それが次のレッスンのテーマです。