すべての取引が記録された「仮想的な台帳」
2008年にサトシ・ナカモトの論文「Bitcoin:A Peer-to-Peer Electronic Cash System」によって発表されたビットコイン(Bitcoin)には、「ブロックチェーン」のもととなるアイデアが盛り込まれていました。
最初は、ビットコインを実現するための技術という位置づけだったブロックチェーンですが、現在では暗号通貨にとどまらず様々な領域への活用が進められています。
ブロックチェーンは、「分散化」という特徴を持っていると冒頭で述べましたが、あくまで抽象化した概念ですので、ここからは、より具体的にブロックチェーンを解説していきたいと思います。ブロックチェーンは、分散型取引台帳(Distributed Ledger)とも呼ばれるとおり、「すべての取引(トランザクション)が記録された仮想的な台帳」です。
ここで言う、すべての取引とは、世界中で行われたビットコインの取引のことです。ビットコインは、2009年から稼働していますが、その時から現在までの取引の内容がブロックチェーンには記録されています。
取引の内容とは、「2017年1月15日12時00分に、AというアドレスからBというアドレスへ0.5BTCが送金されました」といったものです。取引は、送金された時間順に10分単位で別々のブロックの中に記録されます。
ブロックとは、取引の内容を書いた紙を入れておく箱だと思ってください。ブロックの中には、10分間の間に行われた取引の内容が詰まっています。
そのブロックを時系列順に並べて、お互いをつないだものがブロックチェーンです。
電車の車両がつながっているのを想像してみてください。つまり、1車両目が2017年1月15日12時00分から12時10分の間の取引だとすると、2車両目は2017年1月15日12時10分から12時20分の間の取引、3車両目は2017年1月15日12時20分から12時30分の間の取引……というように取引の内容が時系列で連なっているのです。
ブロックにも番号が振られており、この番号が先ほどの例でいうと車両番号に当たります。それを「ブロックの高さ(Height)」と呼びます。
小さい番号のついている過去の取引をまとめたブロックほど前に、大きい番号のついた最新の取引ほど後ろに連なっていきます。
ブロックは時系列になっており、間に別のブロックが入ることはありません。必ず、その時の最新のブロックが一番うしろに追加されていきます。
このように取引内容のデータを約10分単位でいくつものブロックに分け、時系列順に連ねたものがブロックチェーンです。
ブロックチェーンの維持に不可欠な「ノード」の存在
次に分散型とはどういうことでしょうか。「分散型(Decentraized)」と対置されるのが、「集中型(Centralized)」ないし「中央集権型」という言葉です。
従来のサービスでは、そのほとんどが集中型のシステムで成り立っています。たとえば、Facebookではユーザーの投稿や写真はすべていったんFacebookの管理するサーバーにアップロードされ、そのサーバー内のデータをFacebookユーザーが参照することで、すべてのユーザーが同じデータを閲覧(えつらん)できるようになっています。
しかし、中央集権的な情報の管理の仕方のため、前章(※書籍参照)で述べたような、中央集権特有の問題を抱えています。
一方でブロックチェーンでは、複数のノードと呼ばれる人たちが同じ取引データ(ブロックチェーン)を分散して保有します。ノードとは、ブロックチェーンネットワークの維持に不可欠な存在であり、取引データの塊であるブロックチェーンを、自己の保有するコンピュータサーバー内で保有します。
複数のノードがブロックチェーンを保有しているため、ひとつのノードのブロックチェーンが消えてしまったとしても、他のノードが同じデータを持っていてネットワークとして維持することが可能です。
これがもし中央管理者によって一括管理されていると、中央管理者が保有しているデータが紛失してしまうことで、すべてのデータが失われてしまいます。分散型であれば、同じブロックチェーンを複数のノードが保有することで、別のノードが持つデータから復元が可能なのです。
つまり、ノードがいるからこそブロックチェーンのデータは失われずに保存されており、ノードがゼロにならない限り、データが完全に紛失することはありません。
[図表]中央管理型から分散型のブロックチェーンへ
取引記録がブロックとして記録される「マイニング」
次に、取引内容のデータをブロックに入れ、そのブロックをブロックチェーンの最後尾に追加するという、一連のプロセスについてです。
このプロセスを、「マイニング」または承認作業と呼んでいます。このマイニングについては、詳しくは後述しますが、マイニングによって取引記録がブロックとして記録され、ブロックチェーンに絶えず追加され続けています。
前述したノードであれば誰でもこのマイニングに参加することが可能で、マイニングに参加するノードを「マイナー」と呼んでいます。
マイナーが、ひとつ以上存在すればブロックチェーンへのデータの追加は絶えず継続されます。つまりマイナーがいるからこそ、ブロックチェーンのデータが常に更新されるのです。
したがって、マイナーが少ない場合には、データ改ざんなどに対するセキュリティ面が不十分となる場合があります。
さて、ここまでブロックチェーンについて簡単に説明しました。
ブロックチェーンとは、ビットコインの取引内容を約10分単位でブロックとして小分けにして記録し、それらを時系列順に連ねていったものです。
そしてさらに、複数のノードが同じブロックチェーンのバックアップを分散して保有しているため、データが紛失することはありません。
より、詳細について見ていきましょう。