このノートは、北京大学のXiao Zhen氏による公開コース「ブロックチェーン技術と応用」の7番目のレッスンに相当します。
0. 序文
このセクションでは、シャオ氏がビットコインのマイニング難易度の調整アルゴリズムを紹介しました。
1. 定義
ビットコインのマイニングアルゴリズムでは、簿記の権利を得るために、ブロックヘッダーのハッシュ値が目標値よりも小さい「適切な」ブロックヘッダーを見つける必要があります(下図を参照)。
[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-X1Em0qjo-1677069663198) (https://gitee.com/yu88888//myimage/) raw/master/master/ image-20211014200454670.png)]
マイニング難易度の調整とは、出力空間全体におけるターゲット空間の割合を調整することです。
2. 難易度を調整する理由は何ですか?
システム全体の計算能力は常に向上しているため、難易度が同じであれば、ブロックの生成時間はどんどん短くなり、多くの問題が発生します。
たとえば、ブロック生成時間とネットワーク遅延が短いため、多くのノードが同時に目標値を計算し、短期間に簿記権を取得することになり、多くのフォークが発生し、セキュリティにとって良くありません。システム。
注:ビットコインの 10 分のブロック生成速度は必ずしも最適ではありません。他のブロック生成速度のパブリック チェーンも存在します。たとえば、イーサリアムのブロック生成速度は 15 秒ですが、これが高速である理由、Ghostプロトコルのため。
3. 難易度の調整方法
- 時間: ビットコインのプロトコルに従って、2016 ブロック (約 14 日) ごとに調整されます。
- 式:
[外部リンク画像の転送に失敗しました。ソース サイトには盗難防止リンク メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-TOaax3Ht-1677069663199)(https://gitee.com/yu88888/) /myimage/raw/master/ master/image-20211014200435933.png)]
式の右端の部分の上部は実際の時間を示し、下部は予想時間を示します。
実際の時間はこの調整の時間であり、最後の調整からの時間の長さです。予想される時間は、予想される規制に従って 2016 年のブロックの長さです (2 つのブロックごとに 10 分ずつ区切られます)。
したがって、今回の調整での実際の時間が予想時間よりも長ければ難易度は下がり、そうでなければ難易度は高くなります。