分散した情報管理を行う「ブロックチェーン」
ビットコイン(Bitcoin)は、2008年にナカモトサトシと名乗る人物によって書かれた論文「Bitcoin: A Peer-to-Peer Electronic CashSystem」がもととなっています。その後、有志による開発が行われ、2009年より運用が開始されました。しかし、ナカモトサトシが何者かは未だにわかっていません。
ビットコインとは、中央管理を行う機関なしにP2Pという技術を用いて低コストの送金を可能にした世界で初めての暗号通貨(仮想通貨)です。このビットコインを支えているのが、Proof of Work(Pow)という全く新しい概念と、従来の暗号化技術を組み合わせたブロックチェーン技術です。
また、ビットコインとはプログラミングによって作成されたソフトウェアですので、みなさんが使っているアプリやWEBサービスと同じように、日々アップデートが行われています。今まで機能が拡張されていく通貨はこの世に存在しませんでしたが、社会の状況に合わせて変化していけるというのも、ビットコインをはじめとする暗号通貨のメリットのひとつでしょう。
ブロックチェーンとは、よく分散型の公開台帳と表現されます。これでは意味が全くわからないので、1つずつかいつまんで説明していきます。まず、ブロックチェーンという名前の由来ですが、これは文字通りブロックが鎖のように連なっているところから、と言われています。
このブロックの1つ1つが取引の情報となっています。それらが取引の数だけ連なって記録されているので、台帳というわけです。これでブロックチェーンがどういったものかイメージしやすくなったと思います。
では次に分散型というのはどういうことかというと、従来の銀行などの金融機関では、こういった取引台帳はその取引を扱う金融機関だけが所有し、大切に保管しています。しかし、特定の管理主体がすべての情報を1カ所で管理する(中央集権管理)と、その管理主体の不備によるリスクやクラッキングといった第三者からの攻撃のリスクに常にさらされることとなります。
しかし、分散した情報管理を行うことのできるブロックチェーンの場合は記録の維持を特定の管理主体が行うのではなく、P2Pと呼ばれるネットワークの集合体が行います。P2Pとは、中央のコンピューターにあたるサーバーが存在せず、個々のコンピューターが互いに対等の立場で、直接インターネットを通して接続し、データのやり取りを行うネットワークです。このP2Pに参加しているコンピューターを「ノード」と呼びます。
ビットコインのネットワークに参加しているノードの数は、ビットコインネットワーク内のノード数を計測しているサイト「BITNODES」によると、世界中で5000以上存在しています(2016年10月現在)。その全ノードが、個々に最新の取引記録を、同期して共有することで、記録の維持を行っています。そのため、全てのノードが同時に機能を停止しない限りは、記録を維持し続けることになります。
暗号通貨のセキュリティの要「プルーフ・オブ・ワーク」
P2Pネットワークにより、記録が安全に維持されつづけることは理解していただけたと思います。次に重要なのは、その記録されるブロックの内容が、何者かによって改ざんされないのかという問題です。
P2Pネットワークにおいては、ネットワークに参加しているノードのうちの1つが代表してブロックを生成し、それを他のノードが正しいか確認するという作業を行います。しかし、代表のノードが嘘の情報でブロックを作成し、他のノードにもそれが嘘とわからないように操作する可能性があります。これを防いでいる仕組みが、プルーフ・オブ・ワーク(Proof of Work、PoW)です。
まずPoWを説明する前に、ブロックチェーンのそれぞれのブロックの中身について触れておきます。ブロックはタイムスタンプと、前のブロックの取引情報を要約したハッシュ値、過去約10分間の世界中のビットコインの取引内容で構成されています。先ほど、ブロックの生成は、ネットワーク内の1つのノードが代表して行うと述べました。ブロックの生成には、ナンスと呼ばれる「ある数」を必要とします。
ここでは難しい説明は省きますが、ブロックの生成には、ナンスが必要であり、その数字を1番最初に見つけたノードが代表者になれると理解してください。また、このナンスという値を見つける効率的な方法はなく、総当たりで数字を計算していくしかないため、膨大な計算が必要になります。ネットワークの参加者にこの非常に難解な計算をさせる仕組みこそが、PoWです。そして、ブロックの生成を代表して行ったノードには報酬が支払われます。
ではどのようにしてこのPoWによって改ざんが防げるのかというと、まず取引記録に記録されたブロックAを改ざんしようとすると、そのブロックに対応していたナンスの値も変わってしまいます。改ざんしたブロックをネットワークのノードに正しいと認識させるためには、改ざんしたブロックに対応するナンスを計算し直す必要があります。
しかし、ブロックAの取引内容が変更されると、その次のブロックBに取引内容が格納されているので、ブロックBのナンスもまた変わってしまいます。そのため、またブロックBのナンスを計算し直すという作業を、次のブロックも、そしてまた次のブロックもと最新のブロックになるまで繰り返していく必要があります。
これを行い最新のブロックまでたどり着くには、ネットワークに参加する全ノードの51%以上に当たるマシンパワーが必要になりますが、これは現実的ではないことと、それならばネットワークに参加するノードのひとつとしてブロック生成を行い報酬を得るほうが、経済合理性の観点からも妥当だと設計されているのです。
そのため、改ざんを行うことが困難かつ行う者はいないのです。このようにして、ビットコインおよび暗号通貨は、セキュリティを担保しているのです。