前回は、ビットコインで取引がどう表されているかを説明しました。
今回は、今まで紹介してきた取引の仕組みだけでは解決できない問題点について触れていきます。
第一回から読みたい方はこちらからどうぞ。
取引の作り方を前回説明しました。これで取引ができるようになり、取引の履歴を作れるようになったので、お金として機能しそうです。
しかし、今まで説明した取引の仕組みだけでは、以下の2点問題が発生してしまいます。
- 二重支払い問題
- 取引の改ざん問題
今回は、これらがどういう問題か説明します。
二重支払い問題
二重支払い問題について説明します。
Aさん(図の左側の黒い人)が100円を持っているとします。送金者であるAさんにこれを送金する権利がありますので、Aさんが取引を作成します。
Aさんは、Aさんの100円をBさんに払う取引を作成します。それを確認したBさんは、Aさんにチョコレートを渡します。
一方で、Aさんは、Cさんにも100円払う取引を作成できます。それを確認したCさんは、Aさんにりんごを渡します。
ちょっと待ってください。Aさんは、もともと100円しか持っていないのに、200円分の支払いをしています。これはおかしいですね。
今まで説明してきた「Aさんに送金する権利がある」という仕組みだけだと、「Aさんが100円を持っている」という状態から、Aさんが自由に複数の取引を作成できてしまいます。
どちらの支払いが正しいのでしょうか。最初に取引したBさんのものが正しく見えますが、取引には「いつ」という時間情報が入っていないので、どちらが正しいか見分けることができないのです。(仮に取引情報に時間を含めても、Aさんが悪意を持っていれば、両方の取引に同じ時間を設定できてしまうので、信用できない)
このような問題を二重支払い問題といいます。
取引の改ざん問題
次に、取引の改ざん問題について説明します。
例えば、AさんはBさんへ100円支払い、チョコレートをもらったとします。
その後、Aさんがその取引データを削除し、なかったことにできるとしたらどうでしょう。Aさんの100円は支払われなかったことになり、Bさんからチョコレートをただで奪ったことになります。
当然、このようなことはあってはならないですよね。
このように、誰かの好きなように取引を書き換えたり削除できる問題を取引の改ざん問題といいます。
取引の承認
取引に直接関わる2者だけの仕組みでは、二重支払いや取引の改ざんができてしまうことがわかりました。
現実の通貨での銀行振込では、これを防ぐために、銀行などの信用のある第三者がチェックしています。つまり、コンピュータの仕組みではなく、社会の仕組みによって信用を担保しているというわけです。
ビットコインのすごいところは、このような社会的に信用できる第三者がいないなかでも、これらの不正がないことを保証する仕組みを発明したところです。
次回:取引の承認の仕組み
二重支払い問題と取引の改ざん問題について、解説しました。
次回は、これらを解決するための取引の承認の仕組みであるブロックチェーンとProof of Workについて解説します。