目次
- ブロックチェーンを理解する
- ダブル支出に対処する
- 仕事の証明と「マイニング」
暗号通貨の開発者の主な懸念の1つは、二重支出の問題です。 これは、個人がその暗号通貨のバランスを複数回使うことの発生率を指し、支出記録と利用可能な暗号通貨の量とその分配方法との間に事実上不均衡を生み出します。
ダブル支出の問題は、現金にはない問題です。 サンドイッチの代金を10ドルで支払い、その請求書をサンドイッチのメーカーに引き渡す場合、別の場所で同じ10ドルを使うことはできません。 ただし、ビットコインなどのデジタル通貨を使用したトランザクションは、完全にデジタルで発生します。 これは、同じBTCが1人の所有者によって複数回使用されるように、トランザクションの詳細をコピーして再ブロードキャストすることができることを意味します。 以下では、暗号通貨の開発者が二重支出が発生しないことを保証する方法を調べます。
重要なポイント
- デジタル通貨の概念で発生する技術的な問題は、誰かがデジタルマネーを複製し、2つ以上の場所で同時に使うことができる能力です。この「二重支出」問題は、ビットコインなどのブロックチェーンベースの暗号通貨で防止されていますプルーフオブワーク(PoW)として知られるコンセンサスメカニズムを使用します。このPoWは、ブロックチェーンの台帳上の過去のトランザクションの忠実度を確保するだけでなく、二重支出を検出および防止する「マイナー」の分散ネットワークによって実行されます。 。
ブロックチェーンを理解する
ビットコインのようなデジタル通貨を支えるブロックチェーンは、それ自体での二重支出を防ぐことができません。 むしろ、関連する暗号通貨に関係するさまざまなトランザクションはすべてブロックチェーンにポストされ、そこで確認プロセスによって個別に検証および保護されます。 ビットコインおよび他の多くの暗号通貨の場合、この方法で確認されたトランザクションは不可逆的になります。 それらは公開され、永続的に維持されます。
ビットコインは、二重支出の問題を解決した最初の主要なデジタル通貨でした。 この確認メカニズムを実装し、共通のユニバーサル台帳システムを維持することでそうしました。 このようにして、ビットコインブロックチェーンは、2009年の暗号通貨の設立にさかのぼるタイムスタンプ付きトランザクションの記録を保持します。
ビットコインの用語では、「ブロック」は永続的に記録されたデータのファイルです。 最近の取引はすべて、取引所の株式取引台帳のようにブロックに書き込まれます。 ブロックからの情報は、数分ごとに元帳に追加されます。 ネットワーク上のすべてのノードは、ブロックチェーン台帳のコピーを保持しています。 ユーザーは、ビットコインのブロックチェーンをナビゲートし、数量のみでトランザクションを確認できます。 取引における買い手と売り手の身元に関する詳細は、高レベルの暗号化によって保護されます。これにより、元帳が外部ソースによる改ざんから保護されます。 ブロックチェーン元帳が更新されると、すべてのビットコインウォレットも更新されます。
ダブル支出に対処する
1つのBTCがあり、2つの別々のトランザクションで2回使用しようとしているとします。 同じBTCを2つのビットコインウォレットアドレスに送信することで、これを試みることができます。 これらのトランザクションは両方とも未確認のトランザクションのプールに入ります。 最初のトランザクションは、確認メカニズムによって承認され、その後のブロックで検証されます。 ただし、2番目のトランザクションは確認プロセスによって無効と認識され、検証されません。 確認のために両方のトランザクションがプールから同時にプルされた場合、確認の数が最も多いトランザクションがブロックチェーンに含まれ、他方は破棄されます。
これは効果的に二重支出の問題を扱っていますが、問題がないわけではありません。 たとえば、2番目の(失敗した)トランザクションの受信者は、トランザクション自体に失敗することはありませんが、その人は予想したビットコインを受け取りません。 多くの商人は、トランザクションの少なくとも6つの確認を待ちます(つまり、トランザクションの6つの後続ブロックが問題のトランザクションの後にブロックチェーンに追加されたことを意味します)。 この時点で、商人はトランザクションが有効であると安全に想定できます。
このシステムには、二重支出攻撃が発生する可能性のある他の脆弱性が残っています。 たとえば、攻撃者が何らかの形でネットワークの能力の少なくとも51%を制御できる場合、攻撃者は二重の支出を行うことができます。 攻撃者がなんらかの方法でこのような計算能力を制御できた場合、攻撃者はトランザクションを逆転させ、個別のプライベートブロックチェーンを作成できます。 ただし、ビットコインの急速な成長により、この種の攻撃は不可能であることが事実上保証されています。 (詳細については、これら5つのビットコイン詐欺に注意してください)
仕事の証明と「マイニング」の説明
それでは、もう少し技術的な話をしましょう。 ユーザーが実際に二重に使用しようとするなどの改ざんを検出する方法は、ハッシュ、仕事の証明(PoW)として機能する数字の長い文字列を使用することです。 ハッシュ関数(ビットコインはSHA-256を使用)を介して特定のデータセットを配置すると、1つのハッシュのみが生成されます。 ただし、「なだれ効果」により、元のデータの任意の部分にわずかな変更を加えても、まったく認識できないハッシュになります。 元のデータセットのサイズに関係なく、特定の関数によって生成されるハッシュは同じ長さになります。 ハッシュは一方向の関数です。ハッシュを生成したデータが元のデータと一致することを確認するためだけに、元のデータの取得には使用できません。
一連のビットコイントランザクションのハッシュを生成することは、現代のコンピューターにとっては些細なことなので、プロセスを「作業」に変えるために、ビットコインネットワークは特定のレベルの「難易度」を設定します。 この設定は、新しいブロックが「マイニング」されるように調整されます-有効なハッシュを生成してブロックチェーンに追加されます-約10分ごと。 難易度の設定は、ハッシュの「ターゲット」を確立することによって達成されます。ターゲットが低いほど、有効なハッシュのセットが小さくなり、ハッシュの生成が難しくなります。 実際には、これはゼロの長い文字列で始まるハッシュを意味します。たとえば、ブロック#429818のハッシュは000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8dです。 このブロックには、前のブロックのヘッダーだけでなく、1, 000ビットコインをわずかに超える2, 012のトランザクションが含まれています。 ユーザーが1つのトランザクション量を0.0001ビットコイン変更した場合、結果のハッシュは認識できず、ネットワークは詐欺を拒否します。
特定のデータセットは1つのハッシュしか生成できないので、マイナーはターゲットの下でハッシュを生成することをどのように確認しますか? ノンス(「1回使用した番号」)と呼ばれる整数を追加することにより、入力を変更します。 有効なハッシュが見つかると、ネットワークにブロードキャストされ、ブロックチェーンにブロックが追加されます。
マイニングは競争力のあるプロセスですが、人種というよりは宝くじです。 平均して、誰かが10分ごとに受け入れ可能な仕事の証明を生成しますが、それが誰になるかは誰でも推測します。 鉱夫は一緒にプールして、鉱業ブロックの可能性を高めます。これにより、取引手数料が発生し、限られた期間、新しく作成されたビットコインの報酬が発生します。
作業の証明により、ブロックチェーンのあらゆる側面を変更することは非常に困難になります。そのような変更には、後続のすべてのブロックの再マイニングが必要になるためです。 また、ハッシュ関数を完了するために必要な機械と電力は高価であるため、ユーザーまたはユーザーのプールがネットワークの計算能力を独占することを困難にします。