信用の仕組みを変える「ブロックチェーン」を人に説明できますか

「ブロックチェーン」というキーワードが登場してしばらくたちますが、それがどのような仕組みで成り立っていて、どのように私たちの社会を変えるのかと聞かれて、正しく説明できる人は多くないでしょう。ITコンサルタントの水野操氏が、できる限り平易に説明してくれました。

ブロックチェーンの最大の特徴とは

ブロックチェーンのイメージは、ほぼビットコインなどの仮想通貨と重なっているかもしれない。実際、ブロックチェーンが世に出てきたのは2008年のリーマンショック直後で、サトシ・ナカモトなる人物が論文で発表した。

この論文に書かれていた内容がまさにビットコインを実現するシステムだったので、「ブロックチェーン=ビットコイン」といってもあながち外してはいない。

しかし、経済産業省の調査によると、ブロックチェーンに影響を受けうる潜在的な市場規模は67兆円にものぼるとされている。通貨やポイントなど、権利関係の証明、シェアリングサービス、サプライチェーンの実現やプロセスの自動化など、その用途は多岐にわたる。予測によれば、市場規模が大きいのは信用できるサプライチェーンの実現とプロセスの自動化だ。

革新的ともいえるブロックチェーンについて、その仕組みをイチから説明していこう。まず伝えたいのは、ブロックチェーンには次のような特徴があることだ。

中央集権的な管理者がいない

現在私たちが使用しているシステムには運用者がおり、その運用者が管理するシステム上でデータベースを管理し、取引を記録していく。たとえば、銀行であれば銀行が責任を持って、お金のやり取りを記録する。

ITを活用したウーバー(Uber)やエアビーアンドビー(Airbnb)などのようなサービスでも、実際に自動車を運転している人や宿泊施設を運営している人ではなく、そのサービスを運営する会社がシステムやデータベース、取引の仕組みを整備している。

つまり「エアビーアンドビーだから」「ウーバーだから」、あるいはちゃんとした金融機関だからとプラットフォームの管理者を信用することで、自分が取引相手そのものについての情報を持っていなくても信用できるのだ。

ところが、ブロックチェーンはどこかの組織が一カ所で管理しているわけではない。そのブロックチェーンに参加している世界各地のノードと呼ばれるコンピューター上で動いているのだ。

そのメリットとして、ノードのひとつやふたつが壊れても他のノードが機能するので問題ないということがある。これによってシステムの冗長化(障害に備えて予備装置がある状態)が実現できるので、壊れない堅固なシステムを構築するのと同じことになる。

二つのシステム

参加者に制限がない(誰でも参加可能)

参加者が限定されるブロックチェーンが存在するものの、厳密にいうとそれはブロックチェーンの定義から外れるともいわれている。基本的には、ブロックチェーンはパブリックなもので誰でも参加でき、参加者がみんなで監視して記録する仕組みになっている。したがって、ブロックチェーンの参加者は誰でも、その取引を確認することができる。

改ざんが困難で仕組み自体が信用を担保する

ブロックチェーンはその仕組み上、記録されている内容の改ざんが非常に困難である。理論的には可能だが、改ざんを実行するには非常に大きな計算のためのエネルギーが必要であるため、事実上改ざんができないということになる。

これは非常に大きな意味を持つ。従来の仕組みであれば、たとえば銀行が取引内容の正当性を保証する。あるいは契約書などでは、契約の当事者が、その内容にウソがないことを日本であれば印鑑をついて保証する。

新しい取引に誰もが慎重になるのは、その相手が信用できるかどうかを知るすべがないからだ。ブロックチェーンの場合、記録が改ざんできないことが仕組みによって保証されている。

匿名性が保持される

矛盾することをいうようだが、ブロックチェーンには透明性とともに匿名性がある。仮想通貨の送金などの例をとれば、どのウォレットからどのウォレットに送金されたのか、その金額はいくらなのかということがブロックチェーンに記録されていく。その取引の内容はすべてオープンなので誰もが見ることができる。

それと匿名性は矛盾しない。というのも、ウォレットに個人情報は記載されておらず、意図的にウォレットと個人情報を別途結びつけない限り、それがどの個人のものなのかを知る術がない。仮想通貨での最近の取引を考えると、ウォレットと個人情報が結びついていることは必須といえる。

一方で、たとえばあるブロックチェーンの履歴書のようなものであれば、ネットワーク上のあらゆる人たちに見えてしまうのも問題だろう。そこで、必要な相手に必要な情報だけを見せるという選択的な開示も考えられる。

分散型システムなのでトラブルに強い

中央集権的な管理者がいないというブロックチェーンのひとつ目の特徴について、さらに考えてみよう。これまでのシステムではどこかのホストコンピューターに中心となるデータベースがあるが、情報がすべてそこに格納されているわけではない。

たとえば銀行の取引を考えてみよう。銀行につながっているさまざまなシステムがその銀行が管理するコンピューターにアクセスする。そのコンピューターは取引の情報を処理して、たとえばAさんがBさんに10000円送金したのであれば、Aさんの口座からBさんの口座に資金が移り、その情報や日時などの処理に必要な情報をデータベースに記録していく。

この方式では、システムが正常に動いている場合はまったく問題ないが、一度障害などが起きてアクセスができなくなると、送金ができない、自分のお金が引き出せないなどのかなり大きな問題になってしまう。

一方、ブロックチェーンによる分散型のシステムの場合には、ネットワーク上の複数のコンピューター(ノード)が分散して同じ情報を持っている。それぞれのノードは、ブロックチェーンをそのノードを構成するコンピューター上で保存する。だから、ノードがひとつやふたつダウンしても、ブロックチェーンを保持しているネットワーク上の他のノードは問題なく取引を続けることが可能だ。

それゆえ、システムダウンへの対策は仕組み的にもとても強固だといえる。さらに、同じ情報が分散しているということは改ざん自体にも強い対策になる。仮にあるノードがデータを改ざんできたとしても、後述するようにブロックチェーン自体に改ざんに対する強い対策が施されているし、単純に考えてもネットワーク上の他のノードのデータをすべて書き換えることは現実的ではない。

改ざんが困難な理由

ブロックチェーンの基本的な仕組み

それでは、ブロックチェーンがどのように機能しているのか、その基本的な仕組みについて簡単に説明していこう。

ブロックチェーンは取引が分散型台帳に記録されており、どこかで集中管理されているわけではないことは説明した。この取引の記録の流れを簡単に考えてみよう。

まず従来型の記録はこうだ(ここでは、あえて送金の記録が紙で管理されていることにする)。信用のおけるある機関で管理されている一冊の台帳に取引が記録されている。たとえばお金の送金に関してであれば、「○○銀行のAさんの口座から10000円が△△銀行のBさんの口座に5月16日の11:35に送金された」というような取引の記録が残される。その台帳を管理している銀行などの機関が送金の記録の信頼性を担保する。

ブロックチェーンを使ったビットコインの場合はどうだろうか。基本的に記録されている内容は同じとする。「AさんのアドレスからBさんのアドレスに0・01BTCが11:35に送金された」という内容である。ただ、それが紙ではなくてブロックと呼ばれる入れ物の中に記録されることになる。

この入れ物は10分単位で取引を記録していて、たとえば先ほどの取引は11:30から11:40の入れ物に記録される。この10分ごとの入れ物が時系列に連なっているものがブロックチェーンということになる。そして、このブロックは必ずきちんと時系列に並んでいて、新しくつくられたブロックは必ず列の最後尾に追加される。既存のブロックの間に差し込まれるということはない。

格納されたブロック

取引を記録するトランザクションの仕組み

このように連なったブロックチェーンが書き換えられてしまうことはないのだろうか。疑問に思うのは当然だが、ブロックチェーンには改ざんがされないような仕組みが組み込まれている。

ブロックには取引の記録だけではく、「ハッシュ値」と「ナンス」と呼ばれるものが書き込まれている。ハッシュ値とは、ひとことでいえばあるデータにハッシュ関数と呼ばれる関数を用いて導き出したアルファベットと数値の文字列のことで、人間にとっては何の意味もない文字の羅列にすぎない。

このハッシュ値の特徴として、異なる情報から生成されるハッシュ値が同じになることがほぼないということがある。だから、たとえば総金額がもともと0・01BTCだったものを、0・015BTCと書き換えるとまったく異なるハッシュ値になってしまう。

つまり、ブロックの中身を書き換えた場合、そのブロックのハッシュ値自体が変わってしまうのだ。

あるブロック(入れ物のフタ)が閉じられると、次のブロックが生成されて直前のブロックとチェーンでつながれ、次のブロックでは新たな取引情報とともに前のブロックのハッシュ値を求める。しかしビットコインの場合、このハッシュ値をそのまま使うわけではなく、頭に15桁のゼロを付加するのがルールだ。

このゼロを求めるのに必要なのがナンスと呼ばれる値。実はマイニングとはこのナンスを求める作業であり、このナンス値が正しいときにだけ台帳に取引情報が書き込まれる。このナンス値を最初に探り当てた人が報酬として決められた量(2018年時点では12・5BTC)のビットコインを受け取るわけだ。

最初に探り当てられなかった他の人たちは、この数値を検証することになる。ブロックチェーンでは新たな取引が発生するごとに延々とこの作業が続き、新たなブロックが連結されていく。

ブロックチェーンのデータ構造

ブロックチェーンのデータ構造

「分岐」が起きたときのルールとは

このような仕組みから、ブロックチェーンの情報を書き換えるのは非常に困難である。たとえば、ブロックチェーンにある一年前のある時点のブロックの情報を書き換えれば、そのブロックのハッシュ値が変わってしまう。するとその次のブロックでもハッシュ値が変わってしまい、ナンス値も変わってしまう。

要するに、手を加えたあとのブロックの情報もすべて変わってしまうわけだ。手を加えたあとのすべてのブロックに対して再計算を行い、その新たな計算を他のマイナーたちのうち過半数に承認されなければならない。

そうなってはじめて、改ざんされたほうのブロックチェーンが正規のものとして認められるわけだが、その間にも既存のブロックチェーンに新たな取引がつけ加えられてどんどん長くなっていく。

ブロックチェーンでは、フォークと呼ばれる分岐が起きた場合、一番長いチェーンが採用されるルールになっているが、そのスピードに追いつくことは実質上不可能だ。

もちろん、ブロックチェーンを使えば完全に安全というわけではなく、2018年にはモナコインと呼ばれる仮想通貨でこのルールを利用したハッキングが起きている。これは、ビットコインなどに比べるとマイナーが少なく、一部のマイナーにマシンパワーを集中させやすかったこと、このコインの時価総額が上がってハッキングをかけるための十分なインセンティブがあったことという、ふたつの要因があったようだ。

しかし、現実的にはたとえばビットコインのように参加者の数が多い場合、一人のマイナーが処理能力を独占することには困難がある。少なくとも全体の51%のマイナーが正当性を検証する必要があるため、ビットコインのように参加者の多い場合はより安全だということもできる。

また、時々マイニングがほぼ同じタイミングで行われてしまい、チェーンがふたつできてしまうことがある。これをフォーク(分岐)と呼ぶが、このような場合にはいったんふたつのチェーンを両方キープしておく。たとえばマイナーAさんとマイナーBさんがほぼ同じタイミングでマイニングに成功すると、ふたつのチェーンができる。

ずっとこのままでは困ったことになるが、結果的にはこの状況はそれほど時間をかけずに収束していく。マイニングに成功しなかった残りの参加者たちは、そのマイニングを検証し正しさを証明していくことになる。

そこでAさんがより多くのマイナーを集め、多くのマイナーがAさんのブロックをメインブロックとして扱うと、Aさんのブロックが長くなっていく。こうなってしまうといくらBさんが頑張っても自分のブロックをメインのブロックにすることはできなくなってくる。

ブロックチェーンでは、分岐した場合には長いほうのブロックを正規のチェーンとするルールがあり、この場合Aさんのブロックが正しいものになるのだ。

したがって、仮に同時にふたつのブロックができたとしてもだいたい2〜3チェーンの間にひとつのチェーンに収束していくことになる。そして、Bさんのブロックに記録されていた情報は、未承認の取引として数ブロックのうちにブロックチェーンの中に取り込まれていくという仕組みがある。

チェーンの仕組み

ブロックチェーンを支える暗号技術

まだ解決していない問題がある。それは、たとえばAさんがBさんに0・01BTCを送金したという取引の記録がされたときに、本当にAさんがBさんに送金したという事実があるのかどうかということだ。

情報の送信には機密性とともに真正性が求められるが、仮想通貨の送金に限らずインターネット上で情報を送るときに使用されるのが「公開暗号鍵方式」と呼ばれるものだ。この方式では公開鍵と秘密鍵というものを使って暗号化と復号化を行う。

機密性のある情報を送る際、送信元は秘密鍵を使って内容を暗号化する。その内容を確認するには、送信元が持っている秘密鍵をもとに生成されている公開鍵を使う必要がある。公開鍵自体は送信元の人以外が持っていてよいものだが、この鍵をもっていても逆に秘密鍵を知ることができない。

一方、情報の受け手はこの公開鍵を使って暗号化された情報を復号化すると内容を確認できる。秘密鍵から公開鍵の生成はやはり先ほど説明したハッシュ関数を使用しているので、異なる秘密鍵に対して同じ公開鍵が生成される可能性はほとんどない。

ということは、たとえばAさんの秘密鍵で暗号された取引の内容は、Aさんの公開鍵でしか復号化することはできない。逆にいうとAさんの公開鍵で復号化できたものは、たしかにAさんが送ったものであることが証明できることになる。

ブロックチェーン上でのやり取りは、Aさんが先ほどの取引の記録を自分の秘密鍵で暗号化し、ネットワークに送信する(ブロードキャスト)。ネットワーク上のマイナーはその情報を受け取るとAさんの公開鍵を使って復号化する。正しく復号化できれば、その内容がたしかにAさんのものであると確認できるので、マイナーは取引の情報をブロックに記録していく。

ここで重要なのは、自分の秘密鍵の管理がとても大事だということだ。というのも、秘密鍵を他人に知られてしまうとAは自分になりすました誰かに勝手に送金されてしまいかねない。これは、通常のシステムでパスワードを破られると乗っ取られてしまうのと同じだ。

 

公開鍵暗号のイメージ

公開鍵暗号のイメージ

 

PROFILE
水野操

有限会社ニコラデザイン・アンド・テクノロジー代表取締役。mfabrica合同会社社長。1990年代のはじめから、CAD/CAE/PLMの業界に携わり、大手PLMベンダーや外資系コンサルティング会社で製造業の支援に従事。2004年にニコラデザイン・アンド・テクノロジーを設立後は、独自製品の開発の他、3Dデータを活用したビジネスの立ち上げ支援、3Dプリンター事業、シミュレーションサービスなど積極的にデジタルエンジニアリングを推進。