個人的なまとめとしてビットコインについて記載する。
等にも詳しくのっており、また、
にも記載があるため、詳細を知りたい方はそちらをご参照されたし。
bitcoinの前に、通貨として機能する媒体の必要要件を記載する。
<必要要件>
- 数量化可能
- 受け渡し=移動(通信)可能
- 改ざん、成りすまし、結果の否認が不可能
- 2重譲渡防止。*1
現在の紙の通貨はこれらを満たしている。現物の紙幣は数量化可能であるし、受け渡し可能である。また、その場で決済するため、成りすましや結果の否認も不可能。そして、1枚の紙幣を2人に渡すことはできないので、2重譲渡も不可能である。(改ざんは紙幣の偽造がありうる。)
小切手は銀行が監視することで、これらを防止している。
クレジットカードや電子マネー等も銀行がこれらを監視することで、上記を満たしている。
さて、以上からわかることは、貨幣も小切手もクレジットカードも「管理主体」が存在していることである。そして、それは「管理主体」への信用に支えられている。
【bitcoin】
bitcoinがこれらと一線を画すのは、「管理主体」が不在ということである。
それではどのように必要条件を満たすのか。
bitcoinは以下の機能を持っている。
<bitcoinの機能>
2、取引をP2Pネットワークで維持するブロックチェーンに記録する。
3、ブロックチェーン改ざん防止のため、プルーフ・オブ・ワークの計算を課す。
電子媒体は、必要条件1,2を満たす。電子署名は必要条件3のうち、改ざんの一部以外を満たす。残りは、改ざんと必要条件4である。
改ざんの一部というのは、「莫大な計算能力をもつ、改ざん者」がいた場合に、改ざんが可能となるからである。これについては、後述するが、bitcoinの機能3によって対応している。
必要条件4については、bitcoinの機能2によって対応している。
「ブロックチェーン」(Block Chain; ブロック鎖)は、それぞれの「ブロック」(Block)を持つ。それぞれのブロックは、多数のトランザクションと、あとで説明する「ナンス」(Nonce)と呼ばれる特別な値、そして直前のブロックのハッシュを持っている。「ブロック」に含まれた取引のみを「正しい取引」と認めることにする。そして、ネットワーク全体で「唯一のブロックの鎖」を持つようにする。これによって、一貫した取引履歴を全体が共有できる、というのがブロックチェーンのコンセプトである。
これが、2重譲渡問題をクリアしている理由は、ある時点において、あるビットコインの所有者は一人しか存在せず、この記録がだれにもみられる形で存在し、書き換えが出来ないようになっているからである。
(Bitcoinの仕組み - ビットコインの仕組み:Bitcoinを技術的に徹底解説!より。一部改変)
さて、ブロック自体の作成は以下のように行われる。
この力技がbitcoinの機能3のプルーフ・オブ・ワークの部分にあたる。これによって改ざんを防いでいる。方式は以下のとおりである。まず、ハッシュ関数自体は一方向関数と言われており引数から結果を求めるのは簡単だが、結果から引数を求めることは難しいという性質を持った関数である。そのため、ナンス値からハッシュ値を求めるのは小さい計算コストで可能であるが、ナンス値からハッシュ値を求めるのは多くの計算リソースが必要となる。ブロックはハッシュ値、ナンス値、取引が含まれている必要があるため、このナンス値を求めるのに、計算コストがかかる。 一方で、ナンス値のチェックについては、簡単に行うことが可能であるので、正しい取引がブロックとして形成されるのを承認するのは比較的容易になる。
また、ある時点の取引を改ざんしようとすると、その後のブロックすべてのナンス値について計算する必要がある。P2Pネットワークで常にブロックは更新され続けており、ネットワークよりも早く計算を行うことも困難である。これによって改ざんが防がれる。(中本論文の10章にその可能性について検討がなされている。)
さらに、bitcoinには、改ざん防止のインセンティブとして、ブロックのナンス値を最も早く発見した人に、bitcoinが付与される。これによって、計算量を多く持つ主体は、改ざんよりもブロックの生成をした方が有利になる。またそれによって、bitcoinの取引コスト(主に電気代)が賄われる。
残る問題
一方で、発見者が複数でた場合などは、ブロックが分岐してしまうという問題が残る。分岐したブロックを両方しよう可能であれば、2重使用となる。これを防ぐために、次に伸びたブロックをしようするという方式がとられており、これによって、各人は一つのブロックチェーンを持つことになる。
以上。