逆に、ブロック生成に時間がかかりすぎる場合は難易度が下がり、目標値(ターゲット)が引き上げられます。この目標値は一定期間ごとにリセットされます。ブロックをマイニングするには、マイナーがこの数値を下回るハッシュ値を見つける必要があります。
ここで簡単な例を使って説明します。例えば「binance」という文字列に対してSHA256ハッシュ(入力データを固定長の256ビットの文字列に変換する暗号学的ハッシュ関数)を生成したいとします。その際、特定の目標値(16進数表記で先頭に一定数のゼロが続くハッシュ値に相当)よりも小さい数値を見つける必要があります。
実際のマイニングでは、マイナーは256ビット形式で表される非常に大きな目標値よりも低いハッシュ値を見つける必要があります。説明をわかりやすくすると、以下の例を用いて解説します。「binance」に順番に数字を追加し(例:「binance1」「binance2」「binance3」)、先頭にゼロが続くハッシュ値が得られるまでハッシュ処理を繰り返す様子をイメージしてください。
この例でマイニングの仕組みがイメージしやすくなると思います。違いは、マイナーが目標値を下回る数値を見つけることを目指している点です。この目標値が低ければ低いほど、解を見つけるのは難しくなります。これが、ビットコインのマイニングに非常に多くの計算能力が必要な理由です。マイナーは、有効なハッシュを見つけるために、同じ情報を少しずつ変えながら何度もハッシュ化しています。
ビットコインは約2016ブロックごと(約2週間ごと)にマイニング難易度を調整し、平均ブロック生成時間を10分に維持しています。この調整は直近の2016ブロックの生成に要した時間に基づいています。ブロックが予想より速く生成されていれば難易度が上がり、マイニングが難しくなります。逆に遅ければ難易度が下がり、マイニングが容易になります。
マイニングは現在、専門機器を備えた大規模なマイニングファームが主導する産業レベルの活動となっています。これはネットワークでの競争と難易度の上昇を反映しています。