猿でも理解できるブロックチェーンの仕組みと革新的な技術


ブロックチェーンの近年の動向は?

デジタル通貨ビットコインは、テクノロジーによって支えられていると多くの人に知られているかと思います。また、ブロックチェーンは事業に新たなアイデンティティーを獲得しました。

今日では、IBMやマイクロソフトと言われる一流企業や金融機関は、分散型の元帳技術は安全で透明性が高く、資産の所有権をデジタルに記録し、取引のスピードを上げ、従来のコストを削減すると判ってきました。また、同時に「改ざん」など不正の可能性を下げてくれる技術としてブロックチェーンは注目されています。

「ビットコインはブロックチェーンを元に構築された最初のアプリケーション」、とマイクロソフトの金融サービス部門テクノロジー戦略ディレクターのMarley Gray氏は言います。しかし多くの企業はその基盤テクノロジーとなるブロックチェーンにチャンスを感じています。

ブロックチェーンとは何か?

そもそもブロックチェーンとは何かを紹介したいと思います。ブロックチェーンとはデジタルでの元帳の取引および分散型コンピューター・ネットワーク間での共有を可能にするデータ構造のことです。

従来の通貨管理

サーバーベースネットワーク

従来の通貨などは、中央政権=国(日本・アメリカなど)が行っており、お金を発行や制限を行い市場に出回るお金をコントロールしています。しかし、ブロックチェーンは中央政権が必要なくコンピューター・ネットワーク間での共有を可能にするデータ構造になっているのです。

ブロックチェーン

P2P

それでは、もっと詳しくブロックチェーンの仕組みを紹介したいと思います。

改ざんが不可能な分散型のデータ管理

ブロックチェーンは、代表的な暗号通貨のビットコインで生まれた技術で、取引したデータを特定のコンピュータで集中して管理するのではなく、複数のコンピュータで分散して管理する技術です。

ブロックチェーン-中央政権

集中して管理する集中管理型のシステムは、データが不正に書き換えられるなどの攻撃を受けた場合、システムを運用している会社などの管理者がバックアップデータからデータを復旧していくことになります。不正なデータを確認しそのデータを元の正しい状態に戻す作業は人の手によって実施され、復旧するまで多大な時間と労力がかかります。

ブロックチェーン-P2P

ブロックチェーンのような分散して管理する分散管理型のシステムは、同一のデータを複数のコンピュータで分散して管理しているため、一部のコンピュータが攻撃を受けた場合でも、正しいデータを管理しているコンピュータが存在している限り不正なデータを容易に判別でき、自動的にデータを復旧することができます。

正しい取引なのかは多数決の原理に近い

4c5922bf
例えば、Aさん、Bさん、Cさん、Dさんがそれぞれ持っているコンピュータ合計4台を使用して分散管理型でデータを管理しているとします。

データの内容はそれぞれのコンピュータですべて同じです。Aさんのコンピュータが攻撃を受け、データが不正になったとします。AさんのデータとBさんのデータは異なるデータになり、もちろんAさんとCさん、AさんとDさんのデータも異なります。

しかし全体としては、Bさん、Cさん、Dさんは同じで、Aさんだけが異なることになります。したがってAさんが攻撃されても、多数決でAさんだけが不正なデータを持っていると判別でき、Aさんのデータを排除してBさん、Cさん、Dさんから正しいデータをもらい、正しいデータに戻すことができます。

この様に、多数決の原理に近い働きが働くのです。一部を改ざんしたとしても、他のコンピューターが正しいデータを持っていたら不正することが出来ないようになっています。

また、分散管理型は既に存在している複数のコンピュータの資源を少しずつ使用するため、集中管理型のように、管理するための会社や組織、管理者、コンピュータ機器、維持管理費用などの資源を特別に用意する必要がありません。

分散管理型は従来の集中管理型と異なり、データ改ざんの困難性、管理者を経由しないユーザ間の直接取引、運用コストの削減による安い手数料に期待できるなどの特徴があります。

ブロックチェーンの技術

ブロックチェーンでは、ユーザ間でやり取りした決済情報などの取引をトランザクションと呼んでいます。そして、トランザクションをある程度まとめて”かたまり”として管理します。このかたまりのことをブロックと呼んでいます。ブロックの中に複数のトランザクションを格納していることになります。

ブロックチェーンは分散管理型の仕組みですので、トランザクションを格納したブロックを分散している複数のコンピュータで共有する必要があります。

前述の例では、Aさん、Bさん、Cさん、Dさんのそれぞれのコンピュータで同じブロックを共有し管理します。単純にブロックを各コンピュータに配っただけでは、そのブロックが正しいのか正しくないのかがわかりません。

ブロックチェーンでは、正しい取引・正しいブロックとするための方法として、ブロック同士を連携させてつなぐことによってそれを実現しています。

ブロックに人間と同じように手が2本あり、ブロック同士が手をつなぐイメージです。手のつなぎ方は、1対1で同時に複数のブロックと手をつなぐことはできません。新しいブロックが、既に正しいと認められているブロックと手をつなぐことができたら、新しいブロックは正しいブロックと認められ、複数のコンピュータに配られます。

正しいブロックと認められた新しいブロックは、さらに新しいブロックと手をつないでいくことになり、それが繰り返されるとブロックが1本の鎖のようになります。

鎖は英語でチェーンですので、その形状と状態から、ブロックチェーンと呼ばれています。ブロックチェーンでは、長いほど正しく信頼性があるとされ、一般的に6ブロック以上つながっていると、そのチェーンは信頼があるとされています。

ブロックの手のつなぎ方

ブロックは誰でも手をつなごうとすることが可能です。ただし、手をつなぐことに成功するためには、ブロック同士を連携させるための情報を計算する必要があります。

ブロックは3つの要素で成り立っています。
1つ目は、ユーザ間でやり取りした決済情報などの取引のトランザクション。
2つ目は、ブロック同士を連携させるための情報である、ハッシュ。
3つ目は、2つ目の要素のハッシュを計算するための鍵を握る、ノンスです。

ノンスは1回だけ使用する数字(Number used once: nonce)と呼ばれているデータで、ナンスと表記する場合もあります。

ブロックが手をつなぐとき、ハッシュを計算します。その計算には、手をつなぎたいブロックのハッシュ、自分のトランザクション、ノンスの3つを使用します。

ハッシュは、決められた条件を満たす必要があります。ノンス以外の要素は変更できないため、ノンスの値を変えながら、その条件を満たすまでハッシュを計算し続けます。ノンスは計算することができないため総当たり的に値を変えながら計算し続けることなり、ノンスを見つけることには多大な労力がかかります。ハッシュが条件を満たすような内容になるノンスが見つかると、ブロックは手をつなぐことに成功します。

ノンスを見つける労力と困難さが金や宝石を採掘する作業に似ているので、ブロックチェーンでは「採掘」、「マイニング」と呼んでいます。

ブロックチェーンではマイニングして新しくブロックが手をつなぐことに成功すると、その労力・作業の対価として報酬がもらえます。
この仕組みを作業証明、Proof of work(PoW)と呼んでいます。

badc6bbd-s

ハッシュの計算は誰でもできますが、複数の人や組織との競争で時間が限られ、高性能なコンピュータ資源が必要になるので、報酬をもらえる人や組織は限られています。海外では、その計算を最速にするためにスーパーコンピューターを利用して誰よりも早く、計算を行えるようにして報酬を誰よりも稼ぐ人もいるのです。

ブロックチェーンは分散管理型で、基本的に善意ある複数のコンピュータで成り立っています。
攻撃者がデータを不正に書き換えて不当に利益を得ようとしても、善意あるコンピュータが多数である限り計算能力でかなわないため、攻撃に成功する可能性はきわめて低いとされています。
攻撃に成功するほどの能力を持っているなら、正当にブロックチェーンを生成し作業証明(PoW)として報酬を得たほうが良いという議論もあります。