ナンスとは、一度だけ使用される数値のことです。マイニングにおいては、マイナーがブロックヘッダーのハッシュ値を計算する際に変更する変数です。ヘッダーには、前のブロックのハッシュ値、タイムスタンプ、マークルルート、難易度ターゲット、そしてナンスが含まれています。マイナーは、結果として得られるハッシュ値がターゲットを下回るまで、さまざまなナンス値を試します。近道はありません。有効なナンスを見つける唯一の方法は、1秒間に数十億回も試行錯誤を繰り返すことです。最初に有効なナンスを見つけたマイナーが、ブロックをブロードキャストする権利を得ます。
ビットコインのnonceフィールドは32ビットで、約40億通りの値を取ることができます。これは多いように思えますが、最新のASICはnonce領域をすぐに使い果たしてしまいます。そうなると、マイナーはタイムスタンプやコインベーストランザクションなど、ブロックヘッダーの他の部分を変更して最初からやり直します。そうすることで、新しいnonceのセットを試すことができるのです。nonceは小さな数値ですが、非常に重要な役割を担っています。プルーフ・オブ・ワークを可能にし、マイナーが同じハッシュを再利用することを防ぎます。nonceがなければ、有効なブロックをランダム化することは不可能です。
ナンスに関する事実
- ビットコインの32ビットフィールド - 約40億通りの値が可能
- マイナーによって有効なハッシュを見つけるために変更されました
- すぐに疲弊したマイナーたちは、他のヘッダーフィールドを調整する。
- 秘密ではない――当選したナンスはブロック内で公開される
ナンスはセキュリティ機能ではありません。ハッシュ値を予測不可能にし、作業内容を検証可能にするための仕組みです。
Comments
No comments yet. Be the first to share a thought.
Leave a comment