二重支払いとは、仮想通貨(暗号資産)を二重に送金してしまうことです。
二重支払いは同じウォレットに二回送金をしてしまう場合と、別のウォレットに二回送金をしてしまう場合の両方を指します。ビットコイン(BTC)で例えると、A氏がB氏に1BTCを送金する際に二重支払いによって二回支払いが行われてしまう場合と、A氏の送金がB氏とC氏に1BTCずつ行われてしまう場合があります。
ビットコインはデジタル通貨であるため二重に支払われてしまう懸念があり、中央集権型の管理者が存在しないため支払いの正しさを証明することが重要であると考えられました。
そこでビットコインの二重支払いを防止するために、ブロックチェーンの仕組みとコンセンサスアルゴリズムのPoW(プルーフ・オブ・ワーク)が採用されました。ビットコインのトランザクション(取引)のデータは、書き換えることが難しく、誰もが確認することができるブロックチェーンに格納されています。ブロックチェーンは非中央集権であるため利用者がデータを共有しており、もし不正なトランザクションが行われた場合にはすぐに確認することができます。
一方PoWは、マイニングの計算によってトランザクションが正常に行われたのかを検証しブロックを生成していく仕組みです。トランザクションに不正があったことが判明すると、承認が行われず、ブロックチェーンに記録されません。こうした仕組みによって、ビットコインの二重支払いは防がれています。
なお、意図的に二重支払いを発生させて攻撃を行うものとしてリプレイアタックや51%攻撃があります。
51%攻撃とは、ブロックチェーンネットワーク上でマイニングの計算量の51%以上占めることで、不正なトランザクションを正しいトランザクションとして承認してしまうことです。現在のところ防止策や対処法はないとされています。それは、51%攻撃がマイニングやブロックチェーン自体に攻撃を仕掛けているわけではなく、マイニングの仕組みを利用して攻撃を仕掛けているため、51%攻撃を止めるためにはマイニング自体を止めるしかないためです。しかし、ビットコイン(BTC)のような利用者の多い仮想通貨では、51%攻撃は現実的には不可能に近いとされています。ブロックチェーンの51%以上を占有するほどの計算量を出すためには高性能なコンピューターを揃えるだけでも多大なコストが必要とされ、個人で行うことは難しいためです。一方で、ビットコインからハードフォークしたビットコインゴールド(BTG)などの利用者の少ない仮想通貨では、51%攻撃による被害が実際に発生しています。
読み方
にじゅうしはらい