ブロックチェーン取引の検証方法とは?
この記事は次の言語でご利用いただけます:
ブロックチェーン取引の検証には、さまざまなコンセンサスメカニズム(合意形成アルゴリズム)が使われています。もっとも広く知られているのはProof of Work(PoW)で、これはBitcoinやLitecoinなど多くのブロックチェーンで採用されてきました。近年では、Ethereumなどが導入しているProof of Stake(PoS)などの新しい方式も普及しています。
いずれの方式でも、コンセンサスメカニズムによってネットワーク上のすべての分散ノードが同じひとつのブロックチェーン履歴に合意できるようになっています。
ハッシュ関数とは?
ハッシュ関数はブロックチェーンの中核となる暗号技術です。 これは、どんな入力データでも固定長の文字列(ハッシュ値)に変換する数学的な関数です。ハッシュは一方向性で、元のデータに戻すことはできません。
特に重要なのは、元データのたった1ビットでも変更すると、ハッシュ値全体がまったく異なるものに変わる点です。これにより、データの改ざんがネットワーク上ですぐに判明します。
簡単に言うと、新しい取引はコンセンサス(合意形成)のプロセスを通じてブロックチェーンに追加されます。つまり、ネットワークの大多数のノードがその取引を有効と認めてはじめて、記録が確定します。
マイニングの流れ:ステップごとに解説
仮想通貨ウォレットで取引を開始すると、その情報はネットワーク上のすべてのマイニングノード(またはバリデーター)にブロードキャストされ、各ノードのメモリプール(未確認取引の一時保管場所)に入ります。各ノードはこれらの未確認取引をまとめて「ドラフトブロック」を作成し、検証またはマイニングを試みます。
1. 集約とハッシュ化: ドラフトブロック内のすべての取引を暗号的にまとめ、前の(確定済み)ブロックのハッシュ値と組み合わせて新しいデータを作成します。これによりブロック同士が安全につながります。
2. パズルの解決: ノードは生成したハッシュ値をネットワークの現在のDifficulty(難易度)と比較します。ハッシュ値が目標値より小さければ、マイナーはブロックのマイニングに成功です。大きい場合は、ノンスと呼ばれる値を少しずつ変更しながら再計算を繰り返します。この作業は1秒間に何百万回も行われます。
3. ブロックのブロードキャスト: 新しいブロックのマイニングに成功したノードは、そのブロックをすべてのノードに送信します。他のマイナーはすぐに自分の作業を止め、勝者のブロックを検証し、自分のブロックチェーンに追加して次のドラフトブロックの作成を始めます。新しいブロックがネットワーク全体に反映されると、その中の全取引が正式に承認されたことになります。
簡単に言えば、新しい取引リストを作るために、検証ノードは複雑な数学的問題を総当たりで解きます。成功すると取引がブロックチェーンに記録され、ネットワークは次のブロックへ進みます。

セキュリティと二重支払い問題
これらの高度な暗号技術は、ネットワークへの攻撃を防ぐために設計されています。代表的な脅威のひとつが「二重支払い(ダブルスペンド)攻撃」です。たとえば攻撃者が自分の仮想通貨を使って取引を発信し、その後こっそりとブロックチェーンを改ざんして同じ資産を別の場所で再び使おうとするケースが考えられます。
攻撃者が改ざんしたブロックチェーンをノードに送信すると、一時的に「Aに送金されたバージョン」と「Bに送金されたバージョン」という2つの矛盾する履歴が発生します。
コンセンサスメカニズムは「最長チェーンルール」によってこの矛盾を自動的に解決します。枝分かれしたブロックチェーンを検出したノードは、常により短い枝(ブロック数や計算量が少ない方)を破棄します。二重支払いを成功させるには、攻撃者がネットワーク全体よりも速く偽ブロックを連続して生成し続けなければなりませんが、膨大な計算能力が必要なため、現実的にも経済的にも不可能です。
取引承認(コンファメーション)が重要な理由
システムは非常に安全ですが、まれに一部のノードが改ざんされたブロックを正規のものより先に受け取る可能性もあります。このリスクを排除するため、サービス事業者などは「承認数(コンファメーション)」を基準にします(取引が記録されたブロックの後に追加されたブロック数)。
新しいブロックが追加されるたびに、取引の安全性がさらに高まります。日常的な少額取引なら1〜3回の承認で十分ですが、数百万ドル規模の大きな取引では、資金の引き出し前に数十回の承認を待つことで、取引が完全に取り消せないことを確認します。
まとめると、新しい取引は分散型ネットワークによってまず検証されます。数学的パズルの難易度とネットワーク合意の要件によって、取引の改ざんは実質的に不可能となっています。