ブロックチェーンとは

仮想通貨の中核技術
ブロックチェーンとは、ビットコインを始めとする仮想通貨(暗号通貨)を実現するための中核となっている技術です。前回「仮想通貨って何?」で説明したように、ビットコインがこれまでの通貨(法定通貨や電子マネーなど)と大きく異なる点は、
- 中央管理者が存在せず、特定の国や企業にも依存しない
- 取引の仲介も必要なく、相手と直接取引を行う
- 国境を超えた取引も簡単
といったことでした。このようなことを実現しているのがブロックチェーンという技術になります。仮想通貨への投資や、仮想通貨を実際に使い始めるにあたって、ブロックチェーンの仕組みを理解することは必ずしも必要ではないかもしれませんが、しくみを理解することで、よりその可能性を実感できることでしょう。ここではブロックチェーンについて、少し掘り下げて説明していきます。
ブロックチェーンのしくみ
ブロックチェーンには、P2P、ハッシュ、デジタル署名といった技術が使われています。これらのひとつひとつは、特に目新しいものではありません。これら既存の技術に加え、取引データの改ざんを極めて難しくするしくみ(Proof of Work)や参加者にモチベーションを与える仕組み(マイニング報酬)などが組み合わさり、中央管理者を必要としない、自律的に稼働するシステムが考案されました。
P2P ネットワーク
ブロックチェーンは、「分散型台帳」とも呼ばれるように、従来のクライアント・サーバー型のネットワークではなく、Pear to Pear(= P2P)という分散型のネットワークで構成されています。
P2Pネットワークでは、中央のサーバーがデータベースを管理するのではなく、基本的にネットワークの各参加者それぞれが管理します。クライアント・サーバー型ネットワークでは中央のサーバーが障害にあうとシステムが停止してしまいますが、P2P 型ではひとつのサーバーがダウンしてもデータが分散管理されているため、システム全体としては影響を受けにくいのです。
ブロックチェーンの動作の流れ
ブロックチェーンの動作の流れについて、その代表格であるビットコインを例に、見ていきましょう。
まず、「誰が誰にいくら送金した」といった取引情報(= トランザクション)は、送金者が送金を行うアドレスの秘密鍵で署名を施すことによって、正当なもの(そのアドレスのもの)であることが証明されます(もちろん、この署名云々といったことはウォレットがバックグラウンドで自動的にやってくれるので、普段は意識する必要はありません)。送金する人がこのトランザクションを P2P ネットワークに流すと、そのトランザクションはすぐに世界中のマイナーに伝えられます。
マイナーとは、トランザクションを受け取り、分散型台帳に記録する作業を行うノード(= ネットワーク参加者)のことです。一定のコンピューターリソースがあれば、誰でもマイナーとして参加できます。マイナーが取引データの承認作業を行うと、その報酬としてビットコインが自動的に支払われます。この報酬はビットコインの新規発行であり、ビットコインが稼働を始めた最初のブロックの 50 BTC からおよそ4年ごとに半減していくようになっています。現時点(2018年8月)では 12.5 BTC です。
※ビットコインには発行上限があり、2140年に総発行量2100万BTCに到達した以降は新規発行は 0 となります。このようにビットコインは有限であることから、新規発行が行われる「ブロックの承認作業」は金の採掘になぞらえて「マイニング」と呼ばれます。そしてマイニングを行う参加者を「マイナー」と呼びます。
トランザクションを受け取ったマイナーは、それを承認する作業(ブロックチェーンに組み入れる作業)を行います。ブロックチェーンでは複数のトランザクション(数百~数千件)をまとめてひとつのブロックを生成しますが、これはおよそ10分間隔で行われ、生成されたブロックは時系列に繋がっていきます。このとき、前のブロックのハッシュが生成中のブロックの一部として含まれます。ハッシュとは、データを暗号化して一定の長さの値で表現したもので、例えば「0000000000000002a7bbd25a417c0374cc55261021e8a9ca74442b01284f0569」といった値になります。元のデータの内容が少しでも違うと、全く別の値が生成されます。このため、いったん生成されたブロックの内容を改ざんすると、ハッシュ値も再計算する必要があります。
生成中のブロックのハッシュは次のブロックの一部として含まれることになります。つまり、先端のブロックに含まれるハッシュは、それまで積み上げられてきたすべてのデータの内容を表現しているものと言えます。
このハッシュ値には、「先頭に 0 が●個以上並ばなければならない」といったような、ある条件が課されています。その条件を満たすハッシュを生成するため、調整用のパラメータの値を見つけ、ブロックの要素として含むようになっています。このパラメータの値を「ナンス値」と呼びます。
ハッシュには、不可逆(生成されたものから元のデータを算出することが出来ない)という性質があります。そのため、条件を満たすハッシュを生成するためには、ナンス値を片っ端から試して当該ブロックのハッシュを生成し、それが条件を満たしているか調べる、という作業を延々と繰り返すしかありません。これが、マイニングと呼ばれる作業です。マイニングには膨大な計算量が必要になります。年々コンピュータの計算速度は上がっていきますが、求めるハッシュ値の「条件」の難易度もマイニングの状況に応じて自動で調整されるため、常におおよそ一定の間隔で採掘が行われるようになっています。(ビットコインではおよそ10分間の計算が必要になるよう調整されます)
条件を満たすナンス値を最初に見つけたマイナーには、ビットコインの報酬が支払われ、そのマイナーが生成したブロックが承認済みブロックとしてブロックチェーンの先端に加えられます。このように、ブロックの生成は世界中のマイナーが競争して生成する仕組みとなっています。
長いチェーンが支持される
まれに、複数のマイナーがほぼ同時に採掘に成功することがあります。この場合、先頭に追加されたブロックの内容が異なり、ブロックチェーンが枝分かれした状態となります。このような場合でも、「長いチェーンを正当なものとみなす」というルールがあり、しばらく枝分かれした状態が続いても、チェーンの長さに差が出た時点で長いほうのチェーンがメインチェーンとして合意されます。
改ざんは事実上不可能
いったん生成されたブロックデータを改ざんするには、それ以降のブロックのナンス値の計算をすべてやり直す必要があり、これには膨大な計算量が必要となります。それに加え、改ざんしたチェーンを本物のチェーンに置き換えるためには、現在進行中の本物のチェーンの計算を追い越し、より長いチェーンを作る必要があります。これにはほかの全てのマイナーの計算速度を大きく上回る必要があるため、事実上不可能とされています。
以上が、ブロックチェーンの動作の大まかなしくみです。「仮想通貨って何?」でも少し触れましたが、このしくみは通貨としてだけでなく、取引、契約、各種証明、投票、保険などさまざまなことに応用が可能です。ビットコインは、ブロックチェーンの「通貨」としての最初の応用に過ぎないのです。
パブリックチェーンとプライベートチェーン
ブロックチェーンは「パブリックチェーン」と「プライベートチェーン」に大きく分けられます。パブリックチェーンでは不特定のノードが取引の承認を行うマイナーとして参加できますが、プライベートチェーンは取引の承認作業は特定のノードが行います。
上で説明してきたのはパブリックチェーンのほうです。ビットコインもパブリックチェーンであり、一般的に「ブロックチェーン」と言えばパブリックチェーンのことを指します。パブリックチェーンでは特定の国や組織の影響を受けない、自律的に動作する「非中央集権的」な運用が可能です。悪意のある参加者がいても不正が極めて難しくなるよう、マイニング(Proof of Work)のしくみが取り入れられています。マイニングは言わば、「信用を作り出す仕組み」と言えます。
一方プライベートチェーンは中央管理者が存在し、管理者あるいは管理者に任命されたノードが取引の承認を行います。承認を行うノードははじめから信用されており、そのためパブリックチェーンで行われるようなマイニングは必要なく、取引の承認も圧倒的に早いです。
その代わり、パブリックチェーンの持つ「特定の国や組織に依存しない」という自律的、非中央集権的なプラットフォームの持つメリットはありません。
どちらにも、メリット・デメリットがあり、用途や目的によって今後使い分けがされていくと考えられます。