ナンス(nonce)が何かを友達に説明しすぎて複雑になってしまったことに気づきました。実際に意味が通じるように解説し直します。



なので、ナンスは基本的にマイナーがマイニングの過程で使う特別な数字です - ブロックを解き明かす鍵のようなものと考えてください。名前は文字通り「一度だけ使われる数字」という意味で、ビットコインのようなプルーフ・オブ・ワークのブロックチェーンが自分自身を守る仕組みの中心です。

実際に起きていることはこうです:マイナーはこのナンスの値を何度も変えながらパズルを解こうとします。ネットワークの要件を満たすハッシュ値を見つけるまで繰り返すのです。通常は先頭に一定の数のゼロが並ぶハッシュを見つけることを意味します。これは試行錯誤の繰り返しですが、それが狙いです。必要な計算作業があるからこそ、ブロックチェーンは安全に保たれています。

面白いのは、この設計の洗練さです。マイナーに正しいナンスを見つけさせるために多大な労力を要求することで、ブロックの改ざんは非常にコストがかかるものになります。もし誰かが古いブロックの一つの取引を変更したい場合、そのブロックとそれ以降のすべてのブロックのナンスを再計算し直さなければなりません。だからこそ、ブロックチェーンの不変性は実現しているのです - 不可能だからではなく、そのコストが非現実的だからです。

ビットコインの場合の流れはこうです:マイナーは保留中の取引を集めてブロックを作り、ブロックヘッダーにナンスを追加し、次にSHA-256で全体をハッシュします。そのハッシュ値が難易度の目標を満たしているか確認します。満たしていなければ、ナンスを増やして再度ハッシュします。これを勝利のハッシュが見つかるまで繰り返します。ネットワークは難易度を動的に調整して、ブロックの生成時間を一定に保ちます - マイナーが増えハッシュパワーが上がると難易度も上がり、逆に減ると難易度は下がります。

ナンスを使った暗号ソリューションは特定の攻撃手法も防ぎます。ダブルスペンドは、各取引の確認に計算作業が必要なため、ほぼ不可能になります。シビル攻撃も高コストになる - 偽のアイデンティティを大量にネットワークに流すこともマイニングコストを払わずにはできません。そしてリプレイ攻撃も、暗号プロトコルにおけるナンスの一意性の要件がそれを防ぎます。

暗号や広義の暗号技術にはさまざまなタイプのナンスがあります - セキュリティプロトコルで使われる暗号ナンス、ハッシュ関数の入力を変えるためのナンス、データの一意性を保証するプログラム的ナンスなどです。しかし、ブロックチェーンの文脈では、主にマイニング用のナンスを指します。

人々が混同しやすい点は、ナンスはハッシュと同じではないということです。ハッシュはデータから生成されるフィンガープリントのようなもので、出力です。一方、ナンスはマイナーが操作して異なるハッシュを生成するための入力変数です。両者は関係していますが、異なる概念です。

セキュリティの観点では、ナンスの脆弱性を見ると面白いです。ナンスの再利用攻撃は暗号システムを危険にさらす可能性があります。予測可能なナンスは危険で、攻撃者が操作を予測できてしまいます。古いナンス値を使った攻撃もあります。だからこそ、適切な乱数生成と、再利用されたナンスを拒否するプロトコルが重要です。

本気で暗号を理解しようとするなら、ナンス暗号が何かを理解することは、プルーフ・オブ・ワークのブロックチェーンが根本的に安全である理由をつかむ助けになります。魔法ではなく、攻撃を経済的に非合理にする高コストの計算作業なのです。これらの仕組みがどう進化していくかも注視しておくと良いでしょう。特に、Gateのようなプラットフォームでさまざまなブロックチェーンプロジェクトを追っているならなおさらです。
BTC-1.82%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • リポスト
  • 共有
コメント
コメントを追加
コメントを追加
コメントなし