ビットコインや仮想通貨を支える「ブロックチェーン」の仕組み

ビットコインを始めとする仮想通貨にある程度興味がある方ならば、「ブロックチェーン」という単語を一度は耳にしたことがあるかと思います。

ブロックチェーンはビットコインのみならず、様々な仮想通貨に採用されており、改ざんを防止するうえで非常に優れています。

さらに、ブロックチェーンは仮想通貨以外の分野にも活用できるものとして、今様々な業界から注目を集めています。これからの時代は、ブロックチェーンに対する理解なしに生き抜いていくのは非常に難しくなっていくことでしょう。もちろん、技術者でない限り細かいところまで理解する必要はないですが、概要ぐらいは知っておきたいものです。

今回はブロックチェーンがどのようなものなのか、我々の生活をどのように変えるものなのかを、余すことなく説明いたします。

ブロックチェーンの正体は帳簿

ブロックチェーンとは、ネットワーク上で発生した個々の取引(トランザクション)を幾つかまとめたもの(ブロック)を連続的につなげたもので、誕生から現在までの取引がすべて記録された帳簿です。1つのブロックの中には通常、100~1000ぐらいのトランザクションが格納されています。

トランザクションとは

  • AさんがBさんに50コイン支払った
  • AさんがCさんに10コイン支払った
  • CさんがBさんに5コイン支払った
  • CさんがEさんに25コイン支払った
  • FさんがDさんに40コイン支払った

のような送金記録のことです。

ブロックは時間とともに生成されていきます。例えば、ビットコインの場合は概ね10分に1つのブロックが生成されるように設計されています。この10分間の間に取引が多ければ、それだけ1ブロック内のトランザクション数は多くなります。

生成された最新のブロックは、1つ前のブロックに接続されます。これが繰り返されることによって、ブロックチェーンはどんどん長くなっていきます。これは伸び続けることはあっても、縮むことはありません。このように、増え続ける(もしくは減り続ける)性質を単調性と言います。

ブロックチェーン上のすべてのブロックのトランザクションを確認すれば、現在誰が何コイン持っているのかがわかります。ビットコインにもこの技術が使われているため、今現在誰が何BTCを持っているかが完璧に管理されるわけです。

ブロックチェーンは世界中のコンピュータに分散管理される

紙ベースの帳簿、あるいは企業が保管する自社のデジタル帳簿などは通常多くても数箇所程度にしか分散されません。しかし、ブロックチェーンは世界中のコンピュータに分散して保管されます。

コンピュータ上のデータはすべて同じでなければならないため、相互にブロックの中身が同じであることに合意しつつ、新たにブロックを繋げていきます。

こんな面倒なことをしないでも、中央のサーバーでデータを管理すれば良いのではないかと思われるかもしれませんが、1箇所にデータを集めた場合、そこがハッキングされるとデータが簡単に改ざんされてしまいます。また、そのサーバーが故障した場合、大事なデータが失われてしまう可能性があります。

一方、ブロックチェーンは世界中に分散して保管されているため、一部のデータが改ざんされても残りのデータが正しいままなのですぐにわかります。また、一部のコンピュータが故障しても、残りのコンピュータに同じブロックチェーンがあるため、データの障害にも強いといえます。

ブロックの中身はトランザクションだけではない

各ブロックにはトランザクションとは別に、ハッシュ値ノンスという数値も格納されています。ハッシュ値とノンスをまとめた部分をヘッダもしくはヘッダーと言います。

ハッシュ値とは、元データに対してハッシュ関数という計算方法を実行することにより得られる、一定の長さのデータです。ハッシュ関数にもとづいて計算すると、元データとは違うハッシュ値が出てきます。原則として、元データはなんでも構いません。

ハッシュ値の大きな特徴としては、以下の2点が挙げられます。

  • 元データからハッシュ値を計算するのは簡単だが、ハッシュ値から元データを計算するのが非常に難しい(一方向性がある)
  • 元データが少しでも変換されると、最終的なハッシュ値がまるで別のものになるため、改ざんに気づきやすい

一方、ノンスはそれ自体は意味を持たないただの値です。しかしノンスには次のブロックのハッシュ値を決めるという大切な役割があります。新規ブロックのハッシュ値は前のブロックのノンスが決める、ということもできます。

また、ビットコインには、新規ブロックのハッシュ値はある値以下になっていなければならないという決まりもあります。新規ブロックのハッシュ値は前のブロックのノンスが決めますので、新規ブロックのハッシュ値をある値以下にするためには、それができるノンスを探す必要があります。

しかし、ハッシュ値には一方向性があるため、新ブロックのハッシュ値から前のブロックのノンスを求めることはできません。では、どうやって適切なノンスを探すのかというと、虱潰しに計算していくのです。具体的には

ノンスをAにしてハッシュ関数により計算を行い、適切なハッシュ値になるか調べる→ダメならノンスをBにしてハッシュ関数により計算を行い、適切なハッシュ値になるか調べる→ダメならノンスをCにしてハッシュ関数により計算を行い、適切なハッシュ値になるか調べる……というのを、ずっと繰り返すのです。つまり、莫大な計算をずーっと行うわけです。

この虱潰しの計算には概ね10分かかります。ビットコインの送金時間が10分と言われるのはそのためです。

計算を進んで行ってくれる採掘者の存在

ブロックチェーンをつなげていくためには、上記の虱潰しの計算が必要不可欠です。計算はハイスペックなパソコン1台ではとてもできず、もっと高性能で高額なコンピュータを複数用意する必要があります。これらのコンピュータをフルに動かすと、電気代も相当なものになります。

普通に考えれば、こんな面白くないうえにお金もかかる計算を進んでやってくれる人などいるはずもありません。しかし、ビットコイン(あるいはブロックチェーンを採用している他の仮想通貨)には、その計算をしてくれる人がいます。

進んで計算をしてくれる彼らは「採掘者(マイナー)」と呼ばれます。計算のことは「採掘」といいます。

実は、ビットコインや多くの仮想通貨には「一番最初に適切なノンスを求めた人に、新規発行分の仮想通貨をプレゼントする」という仕組みがあります。

コンピュータを用意したり、それを動かしたりするのにお金がかかっても、新規発行分が受け取れればトータルでプラスになるのならば、計算に挑む価値はあります。ビットコインの場合、2017年時点での新規発行分は12.5BTC≒500万円です。

ただ、最近は競争激化によって、電気代金が安い中国などで組織的に採掘に励んでもなかなか大きく稼げないことも多いようです。

ではビットコインはいずれまともにブロックが繋げられなくなるかというとそうともいえません。稼げず撤退する人が増えれば競争は緩和され、稼げるようになって人が戻ってくるからです。

ブロックチェーンが分岐してもすぐに1つに戻る

上記の仕組みがある限り、基本的にブロックチェーンは一本のままずーっと伸びていきます。しかし、極稀にイレギュラーが発生し、ブロックチェーンが分岐してしまう(前のブロックに2つ以上のブロックが追加されてしまう)ことがあります。

このような事態に対する対策として、ビットコインは「分岐したポイントからより長いほうのブロックチェーンを正しいブロックチェーンであると認める」というルールを採用しています。

この仕組があるため、仮に攻撃者が悪意を持ってブロックチェーンを伸ばそうとしても、悪意のないユーザー(新規発行分のビットコインを得たいユーザー)の計算資源よりも多い限りは攻撃者がブロックチェーンを乗っ取ることはまず不可能です。

意図的な分岐を起こすことがある

ブロックチェーンで予期せずブロックチェーンが分岐してしまっても、上記の方法ですぐに一本に戻ります。しかし、場合によってはユーザー同士が合意した上で意図的に分岐を起こすケースもあります。そして、その分岐の片方に新しいルールを追加すると、両方の分岐が有効になります。

両方の分岐に互換性はありません。例えば、ビットコインは2017年8月1日にこの意図的な分岐を起こし、一方の分岐は「ビットコイン」、もう一方の分岐は「ビットコインキャッシュ」として扱われるようになりました。両者は全く別の通貨です。

意図的な分岐が起こされた理由は、ブロックのサイズを増やすためです。ブロックサイズが増えたほうがビットコインキャッシュです。

もともとのビットコインのブロックのサイズは1MBです。ビットコインが開発された当初はほとんど誰も取引をしていなかったので、1つのブロックに入れられるトランザクション数が少なく、この程度のサイズでも問題なく運用ができていました。

しかし、ビットコインが普及し、取引量が増えると、1つのブロックに入れられるトランザクションの数も右肩上がりで増えていきました。

その結果、本来10分で終了するはずの送金に何時間もかかるようになったり、送金エラーが発生したりするようになりました。これはまずいということで、一部のユーザー(主に採掘者)はブロックサイズを大きくしようという運動を起こしました。

一方、ビットコインのプロトコルを制作するコア開発者は、ブロックサイズはそのままで1トランザクションあたりのサイズを小さくする、Segwit技術を導入することによって問題の解決を図るべき、と提案しました。

しかし、Segwitはビットコインのマイニングを有利に行うために欠かせない「ASICBoost」という技術に対応していなかっため、採掘者はこれに反発しました。

ブロックサイズ拡大派の採掘者と、Segwit導入派のコア開発者。通常、このような対立が起こった場合は話し合いを重ね、それでもダメなら最終的な判断は中央管理者が下すのが普通ですが、ビットコインには中央管理者が居ないため、ルールを決めて全員に従わせる、ということができません。

そこでどちらの意見も取り入れ、片方はSegwitを導入するビットコイン、もう片方はブロックサイズを8MBまで拡大するビットコインキャッシュとする事になったのです。

POWとPOSとPOI

前述の、「最も早く適切なノンスを導いた人に新規発行分の仮想通貨を与える」という仕組みをProof of work(POW)といいます。

この仕組みのもとでは、採掘に必要なハードウェアや電気代などを支払える財力のある人ほど、新規発行分のビットコインを得られる可能性が高くなります。

つまり、法定通貨を持っている人ほど、仮想通貨もたくさん持てるという仕組みになっているのです。加えて、この仕組では大量の電気を食うことになるため、環境にも優しくありません。

この問題を避けるため生み出されたのがProof of Stake(POS)という仕組みです。これはPeercoinという仮想通貨で初めて導入されたもので、計算能力ではなく、その時点での仮想通貨の保有量が多い人に優先的に採掘の権利が与えられるシステムです。

この仕組みならば、採掘者は採掘をするために大量のコンピュータを保有する必要も、大量の電気代を払う必要もないので、余りお金がない人でも参戦できますし、環境負荷も少なくて済みます。

一方、この仕組のもとでは仮想通貨を大量に保有している人のほうが有利になるため、仮想通貨を使う(減らす)人が減ってしまい、せっかくの仮想通貨の便利さがユーザーに享受されにくくなるという欠点もあります。

この問題を解決するために作られたのが、Proof of Inportance(POS)という仕組みです。これはNEMという仮想通貨で初めて導入されたもので、その仮想通貨を取り扱うシステム内での貢献度に採掘の権利が与えられるシステムです(NEMでは新規発行作業を採掘=マイニングではなくハーベスティングと言います)。

貢献度、というと曖昧に聞こえてしまうかもしれませんが、貢献度は概ね「保有するコインの量」「取引量」の2つで決まります。保有するコインの量が絡むという点ではPOSと同じですが、POIはそれに加えて取引量も考慮されます。

保有するコインの量があまり多くなくても、NEMで頻繁に取引した場合は、ハーベスティングの権利が与えられるのです。POWやPOSと比べると、貧富の差を少なくする平等な仕組みであるといえます。

実は意外と古いブロックチェーンの歴史

ここまで見ていただいて、ブロックチェーンが優秀な技術であることはお分かりいただけたかと思いますが、実はブロックチェーンという技術に対する構想は1990年台から存在するものでした。

1990年には、暗号学のトップカンファレンス「CRYPTO」において、ベル通信研究会社のスチュアート・ハバー(Stuart Haber)とW.スコット・ストロネット(W. Scott Stornett)氏が発表した論文に、ブロックチェーンの構想が見られます。

論文内には「デジタル化された文書のハッシュ値を、信頼できる第三者がまとめて、雨の文書のハッシュ値を新たなハッシュ値と合わせて新たなハッシュ値を作り、その前後性を証明するプロトコル」に関する提案が記載されています。細かな違いはありますが、概ねブロックチェーンの考え方と同じです。

2000年には日本でNTTがハッシュ値を連鎖させるタイムスタンプビジネスを開始しており、2004年にはタイムスタンプの利用に法的な証拠性が与えられました。ビットコインはブロックチェーンを世界中に広めた立役者ではありますが、ビットコインがブロックチェーンの元祖かというと、必ずしもそうとも言えないのです。

仮想通貨以外への貢献も期待されるブロックチェーン

ブロックチェーンは仮想通貨であるビットコインによって有名になった技術ですが、仮想通貨以外への導入も期待されています。ブロックチェーンはそもそも取引データの連なりですので、仮想通貨以外の分野への応用は難しいことではありません。

ブロックチェーンと医療

フロスト&サリバンの調査「グローバルヘルスケアにおけるブロックチェーンの活用:2017年から2025年の見通し(Blockchain Technology in Global Healthcare, 2017-2025)」によれば、医療分野でブロックチェーンの活用が拡大していった場合、偽薬や基準外の医薬品などが効率的に排除できるようになり、セキュリティ面も大幅に強化され、約23兆円もコストカットができるとされています。

ビットコインでは取引の記録がトランザクションとなりますが、医療分野の場合は受診時の様々なデータ、例えば最高血圧・最低血圧、尿酸値、レントゲン撮影の画像、処方薬の一覧などがトランザクションとなります。これらのトランザクションが安全に、低コストで管理されるのです。

ブロックチェーン技術が普及すれば、今までのように異なる病院同士で互いにデータを送受信したり、おくすり手帳に書き込んだりする必要はなくなります。医療従事者の負担は減りますし、悪意あるユーザーの手による改ざんも極めて起こりづらいため、患者のプライバシーも保たれます。

北ヨーロッパにある面積約4万5000km2、人口約134万人のエストニア共和国では現在、ブロックチェーンを用いて医療データを管理する研究が行われています。

ブロックチェーンと物流

アメリカのウォルマートは、中国国内で豚肉の生産・流通経路を記録するためのブロックチェーンの開発に乗り出しています。中国国内では豚肉に限らず食品の密輸が相次いでおり、それに伴う食品の安全性に対する注目が集まっています。

食品の流れをブロックチェーンで効率的に追えるようになれば、その食品が正規のルートに乗って届いたものなのか、正規のルートに乗っていない密輸品なのかはすぐにわかります。

中国のみならず、食品の安全性に対して強い関心を持つ国は多く、こうした国々でブロックチェーンの導入が進めば、密輸業者はいずれ淘汰され、我々の食卓はより安全なものになることでしょう。

ブロックチェーンとモバイル決済

発展途上国では、モバイル決済が普及しています。モバイル決済とブロックチェーンはあまり関係ないようにも見えますが、2017年1月には世界一利用者数が多いモバイル決済アプリ「Alipay」がブロックチェーンの導入を検討していることを発表しています。

こうした技術は発展途上国よりも先進国で先に普及しそうなものですが、例えば日本、アメリカモバイル決済普及率はいずれも5%程度、ドイツは2%程度と低迷しているのに対して、中国は都市部に限れば98.3%、ケニアは国全体で76.8%と高い数字を記録しています。(中国の都市部はもはや発展途上国ではないかと思いますが)。

日米や西欧でモバイル決済が普及しない理由はいくつか考えられますが、一番大きな理由は現金やクレジットカード決済、銀行振込といった支払手段が十分普及しており、なおかつ信頼されていることでしょう。

一方、発展途上国はこうをた決済システムがあまり信頼されていません。また、発展途上国では銀行口座やクレジットカードを持てない人も少なくありません。

一方、こうした国でも最近は携帯電話が爆発的に普及しており、それがモバイル決済の普及を後押ししています。商店(売る側)としても現金を受け取って銀行に持っていくよりはモバイル決済で支払ってもらったほうがおトクなため、積極的にモバイル決済を導入しているようです。

ブロックチェーンは産業構造を変える?

ブロックチェーンという技術が世の中に広く浸透すると、世界の産業構造も変わると言われています。特に危険(将来業界が大幅に縮小する可能性が高い)と言われているのが、クレジットカード業界と銀行業界です。この2つは、どちらも仮想通貨に足元を救われかねません。

仮想通貨vsクレジットカード

仮想通貨が世の中に十分に普及し、クレジットカードと決済手段としての役割を奪い合うようになれば、当然クレジットカード業界はシェアを減らすことになります。

仮想通貨が普及してもクレジットカードを使う人(新しい技術に懐疑的な人など)は一定数いるのだから、多少業界が縮小することはあっても、壊滅的なダメージを受けることはないのでは?と思われるかもしれません。

しかし、それはクレジットカードを使う立場からみた場合の意見です。クレジットカードを使われる立場、つまりお店(加盟店)から見た場合は、少し事情が違います。

クレジットカード会社(国際ブランドではありません)の主な収益源は、加盟店が支払う加盟店手数料です。店側から見た場合、この加盟店手数料は馬鹿になりません。たとえば飲食店の場合、手数料は4~7%程度です。比較的低いとされている家電量販店でも1~1.5%程度です。国外送金だともっと高くなります。

これらは客に払ってもらう事はできない(手数料の分を商品代金に上乗せすることはできますが、そうすると他店より商品代金が高い店としてお客さんに忌避されることになります)ため、粗利の低い業種の店にとっては死活問題です。

一方、仮想通貨の手数料は遥かに安いです。ビットコインの場合、送金手数料はタイミングによって異なる(未承認の取引が多い時は送金手数料を多くしないと承認されづらい)ですが、通常は数円~数十円相当のビットコインを支払うだけです。

必然的に、各店舗は仮想通貨を導入しようとします。最初のうちは仮想通貨で支払ってくれる人は少ないでしょうが、例えば「仮想通貨で支払ってくれた人は値引きします」「仮想通貨で支払ってくれた人はポイント5倍」などのキャンペーンを行えば、仮想通貨で決済しようとする人は増えるはずです(そうしたキャンペーンにかかる費用を勘案しても、お店としては仮想通貨を使ってもらったほうが得です)。

すると、仮想通貨と競合するクレジットカード会社の立場は苦しくなるはずです。

仮想通貨vs銀行

決済手段が取って代わられる可能性があるという点では、銀行も同じです。銀行の主な業務は貸付業務と決済業務に分類できますが、より多く人員を割いているのは決済業務です。仮想通貨が決済手段として普及すれば、銀行の決済業務も苦しくなるはずです。

銀行が発行する仮想通貨

では、銀行が自身のビジネスを脅かす仮想通貨を目の敵にしているのかというと、意外とそうでもありません。むしろ銀行は仮想通貨の導入に積極的です。

例えば、三菱東京UFJ銀行は、独自の仮想通貨「MUFGコイン」の実証実験を2017年5月1日に開始しています。当初は役員らで実験を行い、やがて社内全体、さらには社外(顧客)へと広げていく予定です。交換比率は1円=1MUFGの固定相場制です(そのため、投資対象にはなりません)。

銀行にとって、中央管理にかかるコストは頭痛の種です。仮想通貨を使ったシステムに自ら移行することにより、これらのコストを大幅に抑制する狙いがあるものと見られます。

まとめ

  • ブロックチェーンはトランザクションをまとめたブロックを一方向に繋げたもの
  • ブロックにはトランザクションの他、ハッシュ値とノンスも含まれている
  • その性質上、ブロックのデータを改ざんするのは非常に難しい
  • ブロックチェーンが意図せず分岐してしまっても、すぐに1つに戻る
  • 意図的に分岐を起こすことも可能で、その場合前後で互換性はなくなる
  • POW,POS,POIはそれぞれ採掘の仕組みが異なる
  • ブロックチェーンは医療や物流システムを変革するポテンシャルがある
  • 一方で、クレジットカード会社や銀行は危機に立たされる可能性がある

ブロックチェーンは、仮想通貨のみならず、様々な分野での活躍が期待される優れた技術です。新たな技術への理解を深めて、21世紀を生き抜いていきましょう。