ビットコインにブロックチェーンという技術が使われていることは有名ですが、ブロックチェーンがどのような技術なのかまでを詳しく知っている方はあまり多くないのではないでしょうか。
ブロックチェーンがどのような技術なのかを理解しなくてもビットコインは売買できますが、ブロックチェーンの仕組みを知れば、将来がもっと明るいものに思えてきます。
ブロックチェーンはビットコインを始めとする仮想通貨のみならず、物流や医療などにも素晴らしい影響を与える可能性を秘めているのです。
今回の記事ではブロックチェーンがどのようなものなのか、ブロックチェーンを使って何ができるのかを極力わかりやすく解説していきます。
ブロックチェーンとは「複数人が書き込める家計簿のようなもの」
ブロックチェーンを一言で言うと「電子的な台帳」です。台帳とは簡単に言えば、取引を記録するためのノートです。
家庭で使う家計簿や企業の帳簿みたいなものですが、家計簿や帳簿は自分(自社)が行った取引だけが記録されるのに対して、ブロックチェーンには複数の人が行った取引が記録されるという違いがあります。
例えばビットコインのブロックチェーンには、世界中の個人や法人が行ったビットコインの取引がすべて記録されます。
また、家計簿や帳簿は原則としてその所有者のみが書き込め、1ヶ所にしか存在しないのに対して、ブロックチェーンはネットワークに参加できるものならば誰でも書き込むチャンスがあり、なおかつ世界中のコンピューターに分散されて複数存在するという違いがあります。
ブロックチェーンの中でも、世界中の誰にでも書き込むチャンスがあるものを「パブリックチェーン」、限られた人のみに書き込むチャンスがあるものを「プライベートチェーン」といいます。
台帳を分散保存するメリット
台帳を分散保存する一番のメリットは、システムを構築するための費用がほぼかからないことです。
特定の企業や自治体などが管理する中央管理型のシステムは、その構築に莫大な費用がかかります。
また、そこに記録された台帳が改ざんされた場合、その企業がバックアップをすることになりますが、それには多大な時間と労力がかかります。
一方、ブロックチェーンのように台帳を分散して保存すれば、システムの構築に特定の個人や法人が莫大な費用をかけることはなくなります。
また、台帳が一部だけ改ざんされても、残りの大部分の正しいデータから迅速にデータを復旧できます。
コンピューターが相互に台帳を監視しているので、不正はすぐに発見されます。ブロックチェーンが更新された場合は迅速に同期が行われます。
なお、どのデータが正しいかの判断は基本的には多数決で行います。
ブロックチェーンを不正に書き換えるためには、少なくとも半数の台帳をすべて書き換えなければなりません。
現在、ビットコインのブロックチェーンは5000台以上のコンピューターに保存されており、この半数を、正しいデータが書き込まれるスピードを上回るように不正に書き換えるのは極めて難しいといえます。
ビットコインが先か、ブロックチェーンが先か?
ビットコインは2008年11月にナカモトサトシなる謎の人物(国籍、性別、本名、年齢など一切不明)が公開した論文を元に構想されたものです。
その構想を実現するために生まれたのがブロックチェーンです。
つまり、時系列的に言えば、まずビットコインのアイデアが生まれ、その後それを実現するためにブロックチェーンが作られたということになります。
しかし、ブロックチェーンはビットコイン以外にも様々な分野での活用が期待できる技術です。
ビットコインはブロックチェーンなしには機能しませんが、ブロックチェーンはビットコインがなくても有用なものなのです。
ブロックチェーンは「ブロック」を「チェーン」で繋いだもの
ブロックチェーンは台帳ですが、一つ一つの取引が最初から最後まで直接ズラッと書き込まれているわけではありません。
ブロックチェーンではまず、幾つかの個別取引(トランザクション)をまとめて1セットにします。
個別取引をまとめたものを「ブロック」と言います。ビットコインの場合、現在は1つのブロックに100個程度~数千個程度のトランザクションが記録されています。
そして、そのブロックをほぼ一定のペースで作成して、時系列順につなげていきます。
ブロックをチェーンのようにつなげていくので、ブロックチェーンという呼び名がついたのです。
こんな面倒なことをしないでも個別取引を直接書き込めばいいのでは、と思われるかもしれませんが、それをするとある不都合が発生します。
ブロックチェーンは世界中の複数のコンピューターに分散保存されているため、更新が行われるたびに正確に同期を取らなくてはなりません。
この正確に同期を取る行為は「マイニング」もしくは「合意形成」と呼ばれます。
マイニングとは、簡単に言えば「次に書き込むべき、正しい情報を決めるための作業」のことです。
故意や過失によって間違ったデータが書き込まれると困るため、マイニングにはある程度の時間を要します。
仮に大量の個別取引を直接書き込もうとすると、その1つ1つ全てにマイニングをしなければならなくなってしまい、システムに負荷がかかります。
複数の個別取引を1つのブロックにまとめればマイニングの回数が減らせ、システムに掛かる負荷も小さくできるのです。
ブロックの中身はトランザクションだけではない
次に、個別のブロックの中身を見ていきましょう。
ブロックには前述の通り複数の個別取引が入っているのですが、それ以外にも「ハッシュ」「ノンス」という2つの数値データも格納されています(他にも「タイムスタンプ」や「技術情報」などが入っているのですが、重要なものではないためここでは無視します)。
そして、ここで重要になってくるのがハッシュ関数です。
ハッシュ関数は「文字列を一定の桁数の数字に変換するための数式」
ハッシュ関数とは、あるデータを与えると、特定のルールに従って全く別の、一定の桁数の値に変換してくれる関数(数式)のことです。
ハッシュ関数にはいくつか種類がありますが、例えばビットコインの場合は「SHA-256」というハッシュ関数を採用しています。SHA-256は、ありとあらゆる文字列を64桁に変換します。
SHA-256でいくつか文字列を変換してみます。
元データ | 変換後データ |
---|---|
こんにちは。 | 439E44A82B28F76C2661E4E65537F0F3963DF49BEAED16276F0938471F86A7D2 |
こんにちは | 125AEADF27B0459B8760C13A3D80912DFA8A81A68261906F60D87F4A0268646C |
こんにちわ。 | A16E459F193654D0B90B6C743FBFD4FEB577127EDF4B6CAE5AFDA5A79BF2BBC6 |
こんにちわ | F2D8A962C68276C632AF108003686993EEE754D70B0D310743822F93544C8E61 |
似たような文字列をいくつか変換してみましたが、変換後のデータは全く別物になっていることがわかります。
入れたデータが少し異なるだけで変換後のデータが全く別物になるというのも、ハッシュ関数の大きな特徴です。
見方を変えれば、変換後のデータから、変換前のデータは導けない、ということでもあります。
総当りで正しいハッシュ値を導こう
ブロックチェーンにブロックを新しくつなげたい(マイニングをしたい)場合は、まず「ブロックに入れたい複数の個別取引」「適当なハッシュ」を用意します。
そして、この2つの値をまとめてハッシュ関数で変換してノンスを導き出します。
ただし、ノンスはなんでもいいというわけではありません。例えばビットコインの場合は、ノンスは必ず最初の16桁が0にならなければいけないというルールがあります。
ビットコインにおけるマイニングとは、「最初の16桁が必ず0になるノンスを作れるような、適当なハッシュを探し出す行為」だと思っていただければだいたい間違いありません。
最初に適切なハッシュを見つけた人には、ご褒美として新規発行+手数料分のビットコインが与えられます。
しかし、前述の通り、変換後のデータ(ノンス)から変換前のデータ(ハッシュ)を導くことはできません。
ではどうやって適当なハッシュ値を求めるのかというと、総当たり的に計算するのです。
このハッシュ値ではノンスが適当なものにならない、ではこのハッシュ値ならどうか……というのを、ただひたすらに繰り返すのです。
マイニングを成功させるには計算能力の高いコンピューターが必要だということをご存じの方は多いかと思いますが、その理由はこれです。
計算能力が高いほど総当り的な計算を短時間でできるので、最初に正しいハッシュを見つける可能性が高くなるのです。
計算が同時に終了した場合はどうなるの?
マイニングは世界で同時に行われているため、偶然ほぼ同じタイミングで新しいブロックが生成されることがあります。この場合、ブロックチェーンが2つに分岐してしまいます。
このようなことが起きた場合は、原則として「長い方を正しいブロックチェーンとして扱う」ということになっています。
一時的にブロックチェーンが2つに分岐してしまっても、最終的には同じ取引情報を共有できる仕組みになっています。
なお、ビットコインの場合は、10分に1回計算が終わる(新しいブロックが生成される)ように設計されています。
パブリックブロックとプライベートチェーン
ブロックチェーンは大きく、パブリックチェーンとプライベートチェーンに分類できます。
両者の違いはいくつかありますが、一番大きな違いはマイニングに誰でも参加できるか否か、というところです。
誰でも参加できるのならばパブリックチェーン、特定の組織の人だけが参加できるのならばプライベートチェーンです。
また、パブリックチェーンの取引記録は全世界に公開されますが、プライベートチェーンの場合は公開されたりされなかったりとまちまちです。
例えばビットコインのブロックチェーンは、マイニングには誰で参加できるパブリックチェーンです。
一方、銀行などの金融機関は、自社だけがマイニングができるプライベートチェーンの導入に力を入れています。どちらにもそれぞれメリットとデメリットがあり、向いている用途が違います。
マイニング報酬について
ビットコインのようなパブリックチェーンの場合、マイニング報酬は必要不可欠です。
何のメリットもないのにもかかわらず、わざわざ高額・高性能なコンピューターを何台も買って、莫大な電気代を払ってマイニングをしようとする人はいないからです。
一方、プライベートチェーンの場合、マイニング報酬は必要ありません。プライベートチェーンは組織内でのみ運用され、マイニング参加者(マイナー)はその組織から報酬をもらっているからです。
ブロックチェーンの安全性について
パブリックチェーンは誰でもマイニングに参加できます。
誰でも参加できるということは、悪意ある人間も参加できるということでもあります。パブリックブロックチェーンにも悪意ある参加者を弾く仕組みはいくつかありますが、危険は残ります。
一方、プライベートブロックチェーンは特定の人間、信頼できる人間しかマイニングに参加できないので、ブロックチェーンの安全性が保たれます。
取引承認スピードについて
パブリックチェーンの場合、正しいハッシュ値を計算させることによって悪意あるマイナーの参加を防いでいますが、この代償として取引時間は長くなります。
一方、プライベートブロックチェーンの場合は、最初から信頼できる人間しかマイニングに参加できないので、取引の承認は迅速に完結します。
取引の透明性について
パブリックチェーンの取引は全世界に公開されます。そのため、取引の透明性は非常に高く、不正を発見するのも容易です。
一方、プライベートチェーンは取引が公開されないことが多く、取引の透明性が確保されていません。外部からは見えない所で何か不正が行われていても発見されないリスクがあります。
コストについて
パブリックチェーンは世界中のコンピューターにデータを分散し保存するため、最初に高いコストを支払ってシステムを用意したり、その後高い維持費用を払って管理したりする必要がありません。
一方、プライベートチェーンは開始コストが大きいので、ある程度の資金力がある銀行などでないと用意に始められないという欠点があります。
ビットコインのブロックサイズが足りない!?
ブロックチェーンのブロックにはサイズの上限があります。
例えばビットコインのブロックの上限は1MBです。
一方、ビットコインのブロックチェーンのブロックは、おおむね10分に1回のペースで新しく作られます。
10分の間に100の個別取引があれば100個の取引が入れられますし、1000の取引があれば1000個の取引が入れられます。
ビットコインが今日のように普及する以前は、10分辺りに行われる取引の数=1つのブロックに入れられる取引の数が少なかったので、ブロックサイズの上限が1MBでも特に問題にはなりませんでした。
しかし、ビットコインの知名度が高まり、多くの人が取引をするようになると、次第に問題視されるようになります。
ブロックに入らない取引が大きくなると、送金に本来よりも時間がかかるようになる、送金要求が承認されない、早く承認されるために取引手数料をたくさん支払う必要が生まれる、などの問題が発生します。
これらをまとめてビットコインのスケーラビリティ問題といいます。
ビットコインのブロックチェーンのスケーラビリティを解決する方法は、大きく分けて2つありました。
1つは「個別取引1つあたりのデータサイズを小さくする」という方法、もう一つは「ブロックサイズの上限を大きくする」というものです。
前者を「Segwit」、後者を「Unlimited」といいます。
Segwitの特徴
Segwitは2017年8月にビットコインに実装されました。
ブロックチェーンにSegwitを導入することによって、約60%データサイズを圧縮できます。
データサイズを圧縮すればそれだけブロックに入れられる個別取引データの数が多くなるので、スケーラビリティ問題は解決、あるいは緩和されます。
Segwitのメリットは、トランザクション展性というもう一つの問題を解決できることです。
トランザクション展性とは、個別取引を区別するために付けられるIDが悪意あるユーザーによって変更されてしまう脆弱性のことです。
Segwitを導入すれば、この問題は解決できます。日本発のアルトコインであるモナコインは、Segwitを世界で初めて導入し、この危険を回避しました。
一方、Segwitのデメリットは、マイニングをするマイナーからの賛同を得づらいことです。Segwitをすると、マイナーはこれまで使っていたマイニング用のコンピューターが使えなくなる可能性があります。
せっかく高い費用をかけて導入したコンピューターが使えなくなってしまっては困るので、マイナーは当然反対します。
開発側がそれを無視してSegwitを導入すると、マイナーの数自体が大幅に減り、ますます送金に時間がかかりかねないという問題がありました。
Unlimitedの特徴
ブロックサイズの上限を大きくすれば、1つのブロックに入れられる個別取引データの数は多くなります。Segwitと違ってブロックサイズ事態を大きくするので、効果はより高いです。
しかし、Unlimitedには問題もあります。ブロックサイズの上限を大きくするというのは、個別取引のサイズを小さくするのと比べてさらに大きなアップデートです。
これを行うと意図しない問題が発生するリスクがあります。Segwitがマイナーからの反発を招きやすいのに対して、Unlimitedは開発者からの反発を招きやすい解決方法であるといえます。
ブロックチェーンの将来性
ブロックチェーンは誕生してからまだ10年程度の新しい技術ですが、将来的にさまざまな分野に良い影響を与える可能性が極めて高い優れた技術です。
現状、ブロックチェーン=仮想通貨というイメージが強いですが、将来は物流、医療など幅広い分野に進出すると考えられています。
ブロックチェーンは、台帳を複数のコンピューターで監視することによって、改ざんを防ぐシステムであるともいえます。
このシステムは、利用者保護の観点からある程度の規制を加えなければならない金融分野よりも、サービス提供者の間で比較的自由な応用ができる非金融分野にこそ適性のあるシステムです。
ユナイテッド・パーセル・サービス(UPS)
アメリカの大手物流企業であるユナイテッド・パーセル・サービス(UPS)社は、トラック運送や船舶運送に焦点を当てた事業組合である「ブロックチェーンアライアンス」に参加しています。
ウォルマート社
アメリカのウォルマート社は独自のブロックチェーン技術の開発に乗り出しています。
物流業者や小売店が重視するのは、物がどこから流れてきたのか、つまり「取引の透明性」です。
どこから来たのかわからないような物を運んだり、消費者に売ったりする訳にはいきません。密輸品を運ばされたり、安全性のわからない食肉を食べさせられたりしてはたまったものではありません。
ブロックチェーンを利用すれば、そのものがどこから来て、どこへと運ばれたかは明快になります。
ビットコインの場合は支払いが個別の取引としてブロックにまとめられますが、物流の場合は者の流れが個別の取引としてブロックにまとめられます。
このような仕組みが運用されれば、今よりもさらに安全安心な物流が期待できます。
医療分野での活用
もう一つ、ブロックチェーンの活用が期待される分野が医療です。
医療現場では現在、従来は紙で管理していたさまざまな情報を電子データで保存する取り組みが勧められています。電子カルテなどはその最たるものです。
しかし、このデータの電子化は、医療データを入手しやすくした反面、データ入力に時間が取られるという弊害も生み出してしまいました。
医療知識を持つ医師が、データ入力の事務員とかしてしまっているのです。
時間をかけて電子化したデータも異なる医療機関同士で共有されることは少なく、効率的な運用がなされているとはいえません。
ブロックチェーンは、このような問題を解決する可能性を秘めています。
ありとあらゆる医療行為(血液検査、レントゲン撮影、薬の処方など)を個別取引とみなし、それらをブロックにまとめてチェーンとして繋いでいきます。
マイニングは医療関係者が行います。この台帳を医療機関同士で共有すれば、医師1人あたりのデータ入力時間は減りますし、おくすり手帳も必要なくなります。
これ以外にも著作権保護など、多くの分野での活躍が期待されています。
まとめ
- ブロックチェーンは複数の人が書き込める台帳のようなもの
- ブロックチェーンは世界中のコンピューターに分散保存されるため安全
- ブロックチェーンは多数の個別取引が入ったブロックをつなげたものである
- 個別取引が増えるとブロック容量の不足が起こる可能性がある
- ブロック容量が不足した場合は、個別取引のサイズを小さくするか、ブロック用量事態を大きくするのが一般的な解決策
- ブロックチェーンの技術は非金融分野でも活用できるものであり、特に物流や医療の分野での活用が期待されている
ブロックチェーンは将来的には仮想通貨のみならず、われわれの生活に深く根ざしたサービスを支える技術になる可能性が非常に高いです。
それは新たなビジネスチャンスを生み出すことにもつながります。将来に備えて、今のうちからしっかりと学んでおきましょう。