これまでの連載でビットコインが通貨・貨幣、資産となりうるということを説明してきた。本章ではビットコインを支えるテクノロジーについて紹介していきたいと思う。

とはいえ、「ビットコインの理解のために技術的な側面をどこまで遡るべきか?」は難しい問題である。普通行なわれる説明では、細部にまでは遡らない。実際、ビットコインを利用するだけであれば、こうした基礎を理解する必要はない。車を運転するのにガソリンエンジンの動作原理を知らなくてよいのと同じである。

では、どこまで説明するか、それが問題である。

ここでは、「あるもの」が価値ある通貨・貨幣・資産として成り立っているとして、多くの人が抱く基本的な疑問から出発し、
付随する問題を含め、それらの疑問・問題を、ビットコインはテクノロジーを用いてどのようにクリアしたかについて焦点を当てて説明することにする。
全てに答えることとは難しいので基本的な部分にのみ焦点を当ててみようという試みである。

予めまとめるておくと今から説明するのは大きく以下の3点である。

  • 通貨・貨幣・資産を使用したり所有したりするにあたって抱く2つの基本的な疑問

  • 通貨・貨幣・資産がデータ化することによって発生する問題

  • それらの問題をどのようなテクノロジーを用いてビットコインはクリアしたのか

2つの基本的な疑問

あるものが価値のある通貨、貨幣、あるいは資産として成り立っているとして、それを使用したり所有したりしている時、多くの人は次の2つの基本的な疑問を抱くのではなかろうか。

  • 偽造の問題:それは本物と信じてよいのか?(ex.持っているお札が偽札かもしれない)

  • 所有権の問題:その所有権が他人のものであると主張されることはないか?(ex.せっかく”金”を買ったが、それは実は盗品で他に持ち主がいた)

上記の疑問点に関して、既存の通貨はどのように対応しているか、紙幣を例にとってみよう。前者の疑問に関して、発行者は、製紙技術・印刷技術をより高度なものとすることで、常に偽造の問題と戦っている。そして、後者に関しては、物理的なお金はそもそも2箇所に存在することがないので他人が権利を主張することはないので問題にならない。

ところが、通貨や資産がデータ化され目に見えない形になったときとき、問題は変わってくるそれについて以下で説明しよう。

通貨・貨幣・資産のデータ化

データ化というとピンとこないかもしれないが、銀行に現金を入金することをイメージしてもらいたい。自分の手元にあった現金を帳簿上のデータにするのはまさにデータ化と言える。

さて、通貨や資産がデータ化されると新たにどのような問題が発生するだろうか。

まず、先程説明した「偽造の問題」は、データ化されたものに対してももちろん発生する。例えば、AさんがBさんに振り込むとして、「送金したのは確かにAさんか?」、「送金途中で金額等が書き換えられていないか?」等である。

この問題に関しては、デジタル署名などの暗号技術によって解決が図られている。

(※参考:デジタル署名についての簡単な説明はこちら

そして、第二の問題、物理的なお金では発生しなかった「所有権の問題」も発生する。自分の持っているお金は本当に自分のものかという問題である。通貨を例に取ると。同じお金を使った2重支払い・2重使用の問題のことである。例えばAさんがBさんにデータ上の1万円を送ったが、Aさんの手元にその1万円のデータが残ってしまっており、AさんはさらにCさんにも送金できてしまうという問題だ。本来、AさんがBさんに1万円を送った時点で、Aさんの帳簿からは1万円が引かれるはずだが、プログラムのミスなどで1万円が引かれなかった場合、Aさんがその1万円を再び誰かに送金できてしまうことがある。

この問題に対する解決策としては、中央集権的な組織(ex.銀行)が世界規模でお金の流れを把握し決済するというのが一般的である。例えば、AさんがBさんにお金を送金したら、銀行がきちんとAさんの銀行口座の残高を減らし、Bさんの口座の残高を増やすということである。

しかし、ここで、新たな問題が出てくる。

銀行のような中央の管理者が存在すると、政府やハッカーたちに容易に攻撃されるという問題である。例えばDDoS攻撃などで比較的容易にサーバーをダウンさせることができる。

銀行はセキュリティ対策を打つなどの方法でこの問題に対処してきた。一方でビットコインはこの問題に対しP2Pネットワークやプルーフ・オブ・ワーク(※後述)等を用いてうまく対処し、その点が革新的だったとされている。ではそれは具体的にどのようなものであったか。

以下で見ていこう。

ビットコインは上記の問題をどのように解決したか

ビットコインは、中央の管理者無しでどのように 所有権の問題(2重使用の問題)を解決したか。

一言で言うと、以下である。

「ビットコインは、P2Pネットワークによるプルーフ・オブ・ワークでブロックチェーンを維持することによって運営されている」(※参考:仮想通貨革命

具体的に見ていこう。

Peer to Peer(P2P)のネットワーク

P2Pのネットワークとは、参加するすべてのコンピュータがおなじ役割を果たすことで運営され、特定の管理者がいないネットワークのことである。通常、インターネットを利用したサービスはメールでもWebサイトでもそうだが、サービスを提供する側(サーバ)とサービスを受ける側(クライアント)が区別される。しかしP2Pのネットワークはそれとは異なる考え方で、どこにも中心がない(特定の集権化した管理主体がいない)状態で機能している。この結果、ハッカーのような悪意ある第三者が攻撃対象をしぼることができない。これにより、「中央の管理者が存在するので政府やハッカーたちに容易に攻撃される」という課題は解決される。

ブロックチェーンに取引を記録する←所有権問題と偽造問題を解決

しかし、ここで問題になるのは、中央当局や信頼できる管理者なしに、ビットコインの取引履歴を作成し、維持し、改竄を防ぐことができるのかという問題である。銀行のような管理者がいない状態で、悪意のある誰かが取引を捏造したり、書き換えたりする問題にどう対処するかという問題である。この問題に対してビットコインが使ったテクノロジーは、

P2Pネットワークで維持するブロックチェーンと、プルーフ・オブ・ワークである。

それぞれ説明していこう。

取引を記録するブロックとブロックを繋げたブロックチェーン

ブロック

ブロックとは、ビットコインの複数の取引が記録された一単位だと思ってもらえれば良い。このブロックには、

  • 過去約10分間のビットコイン取引

  • 前のブロックのハッシュ(前のブロックに格納されている内容の要約)

  • ナンス(Number used once: nonce)※後述

が格納されている。

ブロックチェーン

ブロックチェーンとは、ブロックを繋げた鎖のようなものである。前述のように各ブロックの中には一定期間の正しい取引記録等が格納されている。そしてこのブロックを繋げたものがブロックチェーンでありブロックチェーンは公開されている。(例えばこちらで見ることができる。)

取引の記録が公開されているので、誰でもその内容を見ることができ、ビットコインのやりとりの履歴、現在の所有者がわかる。現実における近いイメージは不動産の登記簿である。しかし、登記簿の管理者が国であるのに対し、ブロックチェーンは先程説明したP2Pネットワークによって機能している。どこの誰が参加しているかわからないP2Pに管理させるなど、 正気の沙汰ではないというのが本音であろう。どこの誰が取引をビットコインのデータを捏造したり、盗んだりするかわからない。例えば、正しくない取引が入っているブロックをブロックチェーンに繋げる等々。

そこで登場するのがビットコインのもうひとつの工夫、プルーフ・オブ・ワークである。

プルーフ・オブ・ワーク

プルーフ・オブ・ワークとは?

ブロックチェーンに記録された悪意の無い正常な取引が、後から無かったことにされたり、実際にはなかった取引が後から付け加えられたりすれば、ビットコインシステムは混乱し、信頼できないものとなるだろう。そこでビットコインに使用されているのがプルーフ・オブ・ワークと呼ばれるテクノロジーである。

では、このプルーフ・オブ・ワークについて説明しよう。

先程、ブロックを繋げていきブロックチェーンを作っていくと説明した。この新しいブロックの中身を正しいものだと承認することは各コンピュータで行われる。その後、そのブロックをブロックチェーンにつなげるのに先立って、各コンピュータはある作業を要求される。予め決まった正解となる数字(※上述のナンス)を総当りで見つけるという作業だ。数字を適当に入力していき、正解を引き当てるまで入力していくというくじ引きのような作業だと思ってもらえるとよい。

この作業をマイニングと呼ぶ。そしてこの作業は各コンピュータで競争して行い一番初めに正解の数字を見つけた者が勝者となる。

この競争の敗者は、ブロックの中身とナンスを再確認し、プルーフ・オブ・ワークの作業量全体の過半数以上の承認を得られればそのブロックは正式版として採用、ブロックチェーンに繋げられる。

そして、勝者となったマイナーは報酬としてビットコインをもらえる。

以上をまとめると以下のようになる。

  1. 各コンピュータがブロックの取引記録を確認して、内容が正しいと主張し

  2. どのコンピュータの主張を採用すべきかでレース(プルーフ・オブ・ワーク)を開催

  3. 最初にナンスを発見した人が勝者となり

  4. 負けた人は勝者が検証したブロックとナンスを再確認

  5. プルーフ・オブ・ワークの作業量全体の過半数の承認を得られれば、そのブロックを正式版として採用

  6. 採掘(マイニング)されたビットコインは、勝利したコンピュータに付与される

※参考:https://www.crypto-currencies.jp/bitcoin/remittance/pow.html

これがプルーフ・オブ・ワークとブロックをつなげる流れである。

なぜこのような面倒なことをするのか?

そもそもの問題に立ち返ろう。先程説明したプルーフ・オブ・ワークはどこの誰が参加しているかわからないP2Pネットワークで捏造・改竄を防ぐためのテクノロジーであった。

プルーフ・オブ・ワークによって、一体どのように捏造・改竄が防げるのだろうか。

具体的に考えてみよう、悪意を持った者がブロックチェーンに嘘の取引を記録したブロックをつなげようとする。しかしこれは上述のレースとその後の検証作業で過半数に承認されないはずである。つまり「5.プルーフ・オブ・ワークの作業量全体の過半数の承認を得られれば、そのブロックを正式版として採用」で排除される。

では、悪意ある利用者が既に繋がっているブロックの中身(承認済みの取引内容)の改竄を試みる場合はどうか。結論から言うとこれも難しくなっている。

なぜならば、単に取引データを改竄するだけでなく、そのブロックを含むマイニングをやり直さなけれなならないからだ。その上さらに、ブロックはつながっていて各ブロックはその前のブロックの要約であるハッシュを格納しているので、とあるブロックの取引の値が変更されるとその先に繋がっているブロックの内容も変わってしまう。つまりあるブロックを変えるとその先の全てのブロックの内容が変わるので、それに対するマイニング作業も発生する。変更前の合意されたブロックチェーンを追い越して全てのブロック書き換えるには莫大な計算量が必要ある。そして、それだけの計算量をこなせるコンピュータというのは、普通にマイニングをして勝者となる計算力を持っているので、マイニングに参加したほうが報酬としてビットコインがもらえ経済的合理性があるため、書き換えなど行わない。

以上のようにプルーフ・オブ・ワークというテクノロジーによって、新たにブロックを繋げる際、そして既に繋がっているブロックに記録されている取引の改竄は難しくなっているのだ。

本章のまとめ

  • 0~2章でビットコインが通貨、貨幣、資産となりうるのはわかった

  • 通貨、貨幣、資産となったとしてそれを使用したり所有したりするにあたって抱く2つの基本的な疑問それに付随する問題

  • それらをどのようなテクノロジーを用いてビットコインはクリアしたか

    • P2Pネットワーク

    • ブロックチェーン

    • プルーフ・オブ・ワークとマイニング

かなり長い記事となってしまったが、今回は、通貨・貨幣・資産が抱える問題をビットコインがテクノロジーを使ってどのように解決したかという点にフォーカスし、かなり端折って書いた。ビットコインのテクノロジー・仕組みは、もっと複雑で奥深いし面白い。より詳しく知りたい方は以下の資料が詳しいので読んで読み進めてみることをおすすめする。

※参考資料

これでわかったビットコイン: 生きのこる通貨の条件

仮想通貨革命

MastringBitcoin

ビットコイン用語集(bif Flyer社)

仮想通貨のやさしい始め方