「二重支払い」とは?仮想通貨の欠陥?


仮想通貨(暗号資産)の問題の1つとして、二重支払い問題があります。

二重支払いが生じると仮想通貨の信用にかかわるため、これはとても深刻な問題です。

ここでは、二重支払いについて詳しく解説します。

二重支払いとは?

二重支払いとは、同じ仮想通貨を二重に送金取引で用いることを言います。つまり、一度使われた仮想通貨をもう一度使うことを言います。

例えば、AさんからBさんに1BTCを支払う取引データがあったとします。これをAさんからBさんとCさんに1BTCを支払った、と改ざんすることが二重支払いに該当します。

二重支払いが生じるとどうなるの?

二重支払いが可能になると、例えば、自分に支払う取引を複製することで大量に仮想通貨を複製することができるようになります。

もしこのような事態が他の取引参加者に知られることとなると、該当する仮想通貨を誰も信用しなくなるため、最悪の場合はその仮想通貨自体の価値が0となってしまいます。

ビットコインの二重支払いの防止策!

ビットコインは以下の2つの技術でこの二重払い問題を解決しています。

ブロックチェーン

ビットコインなどの仮想通貨は一般的にブロックチェーン技術を用いています。

ブロックチェーン技術とは、改ざんできないようにデータベース化する技術のことです。取引データや所有者の情報を取引の参加者全員に公開されているため、一般には改ざんしても不正が簡単にわかるようになっています。

プルーフ・オブ・ワーク

PoW(プルーフ・オブ・ワーク)とは、取引の承認を行う作業のことで、計算量を要する問題を最初に解いたコンピュータが承認する権利を得ます。

また、この承認が正しいのかどうかを検証するため、他の計算者にも発表することでそれが正しいのかどうかを判断してもらう、ということが行われています。

この計算作業に参加したコンピュータや取引を承認したコンピュータは対価として新たな仮想通貨を得ることができます。これを「マイニング」と呼んでいます。

それでも二重支払いが起きる!?

仮想通貨ではビットコインにならって前述のような対策を行っているものの、悪性をもったハッカー(クラッカー)によって二重支払いが行う攻撃が仕掛けられる可能性は0ではありません。

その代表的な攻撃方法を以下に示します。

51%攻撃

最も有名な原因として、51%攻撃が挙げられます。

51%攻撃とは、仮想通貨のマイナーの計算リソースのうち過半数を得た者が、不正な取引を承認させてしまう攻撃のことです。

詳しくはこちら(51%攻撃)をご覧ください。

実際には51%攻撃を仕掛けるためには大きな計算リソースが必要であり、成功したとしてもその仮想通貨が信用を失って価値がなくなってしまうため、攻撃者にとってほぼメリットがなく、このリスクはほぼ0だと考えられています。

ただ、過去にモナコイン、ビットコインゴールド、イーサリアムクラシックで生じたことがあるので完全に無視できるわけではありません。

トランザクションIDの書き換え

トランザクションとは取引のことを言います。

通常、仮想通貨は取引が行われるたび、データを区別するためにトランザクションIDが与えられますが、これが改ざん可能だと、同一取引が複数作成されてしまう恐れがあります。

この解決策はすでにあり、2017年8月にSegwitと呼ばれる技術で解決されています。

SegwitはトランザクションIDを計算するためのパラメータを取引データと切り離して別の場所で保存することで、書き換えを防止する技術です。詳しくはこちらを参照ください。