
暗号資産ジャーナルでは、これまで、ブロックチェーンの意味や活用方法についてお伝えする記事を掲載してきました。
しかし、「そもそもブロックチェーンってどんな仕組みなの?」と疑問に思われる方もいらっしゃると思います。
そこで今回は、ブロックチェーンがなぜこんなにも話題になっているのか、その詳しい仕組みや理論についてお伝えしていこうと思います。
目次
#ブロックチェーンって何?
ブロックチェーンという言葉を調べると「ビットコイン」や「サトシナカモト」などのキーワードや紐づいて表示されるかと思います。
まず大前提として、ブロックチェーンが暗号資産(仮想通貨)の「ビットコイン」を流用するために作られたシステムであるといことを知っておきましょう。
2008年に「サトシナカモト」という謎の人物が、現在、実社会で利用される法定通貨とは別の「仮想通貨」(暗号資産)を利用することで、中央集権型の資本制度を脱却できることを理論づけました。
そこで登場したのが「ブロックチェーンシステム」なのです。
そして現在では、この「ブロックチェーンシステム」が暗号資産(仮想通貨)だけではなく様々なところで応用できるのではないかとされ、非常に注目を集めています。
このブロックチェーンはよく「台帳」にたとえられますよね。
しかし、いきなり「ブロックチェーンは分散型台帳みたいなものだよ」と言われてもピンとこない方も多いかと思います。
「台帳」よりも「データベース」と言われたほうが何となくイメージがつきやすくなるかと思います。
ブロックチェーンを、ものすごく簡略化して説明するとすれば「データベースの進化版」とも言えます。
ここで「情報がぎっしり詰まっている」ということは想像していただけるかと思います。
では、従来のデータベースとどのように違うのでしょうか。
従来のデータベースは、代表となるコンピュータが一つあり、そこに信頼性をゆだねる中央集中型のシステムでした。
それに対しブロックチェーンは、ネットワーク共有型のデータベースです。
共有されることによって、「データが操作されにくい」という点で大きく注目を集めました。
ブロックチェーンは、利用者同士によって合意された情報だけが有効とされ、正しい記録しか残せないシステムで、変更・消去などの改ざんができず、壊れても自動で修復することができ、落ちることもない新しい形のデータベースなのです。
このように圧倒的に強いデータを残すことができるため、ブロックチェーンはよく「インターネット発明以来の技術革新」だといわれています。
#ブロックチェーンの定義
上記では、ブロックチェーンのおおまかなイメージがつかんでいただけたと思います。
しかし、抽象的な部分が多く、結局のところ何かがわかりにくいですよね。
それは、「ブロックチェーン」とひとえにいっても、人それぞれイメージや認識に違いがあるからなのです。
そこで、日本ブロックチェーン協会(JBA)によるブロックチェーンの定義を見てみましょう。
- 「ビザンチン障害を含む不特定多数のノードを用い、時間の経過とともにその時点の合意が覆る確率が0へと収束するプロトコル、またはその実装をブロックチェーンと呼ぶ。」
- 「電子署名とハッシュポインタを使用し改竄検出が容易なデータ構造を持ち、且つ、当該データをネットワーク上に分散する多数のノードを保持させることで、高可用性及びデータ同一性等を実現する技術を広義のブロックチェーンと呼ぶ。」
さて、この定義を読んで「なるほど!」とすぐには納得できませんよね。
ここで、JBAで決められたブロックチェーンの定義を、専門用語を分解しながら解説していきます。
まず①から見ていきましょう。
この部分は、ブロックチェーンに関する特徴を表しています。
冒頭に「ビザンチン障害を含む不特定多数のノードを用い」とあります。
ノードとは、ネットワークに参加するコンピュータのことです。
ここでは「参加者なんだな」という認識を持っていればよいでしょう。
この参加者が不特定多数である場合、だれかが嘘をついたり、何らかの故障を起こしてしまったりして、正常に稼働しない可能性がありますよね。
この嘘や故障によるトラブルが起こりそうな状況を「ビザンチン障害を抱えている状態」だと考えてください。
この嘘や故障の可能性がはらんでいる状況で「合意」ができるのかどうか疑問に思われるかと思います。
そこで、①の定義の後半にある「時間の経過とともにその時点の合意が覆る確率が0へ収束する」は、一見データ認識の統一が不可能に見える場面でも実用的に合意を得る仕組みを備えていることを表しています。
①の定義は、この特徴を持っているものを「ブロックチェーン」と呼びましょうという意味なのです。
続いて②ですが、ここではブロックチェーンの仕組みについての簡潔な説明がされています。
「電子署名」とは、デジタル文書の作成者を証明する技術で、これによってその文書の作成者を特定することができます。
「ハッシュポインタ」というのは、ブロックチェーン技術を理解するうえで最も重要ともいえる「ハッシュ関数」という計算を用いて算出する情報のことです。
「電子署名とハッシュポインタを使用し改竄検出が容易なデータ構造を持ち」の部分は、ブロックチェーンがこの二つの要素を用いて改竄されているかどうかを簡単に検出できる構造であることを示しています。
そして、その元のデータを複数のノード(参加者のコンピュータ)同士がネットワーク上で共有することで「高可用性」(システム上、サービスが提供できなくなる事態の発生頻度が少ないこと)と「データ同一性」を実現する技術を広義に「ブロックチェーン」と呼ぶこととされています。
ここまででブロックチェーンについてわかることは、
- 嘘をつく可能性のある参加者や、故障が原因で正常化同できない参加者がいる環境においても、データの合意を得られるシステムができている。
- 得られた合意は、時間が経つにつれて覆る可能性が0に近づく。
- 暗号学的技術を駆使しているため、改ざん検出が簡単にできるシステムを持っている。
- ネットワーク上で複数のコンピュータに分散してデータを保持させている。
- サービスが停滞しにくく、データを分散共有しているのでデータの同一性が保証されている。
ということです。
#ブロックチェーンの仕組み
ここまででは、ブロックチェーンの意味や定義について説明してきました。
ここからはいよいよ、ブロックチェーンの仕組みについて詳しく説明していこうと思います。
P2Pシステム
まず、ここまででも説明してきた通り、ブロックチェーンにはネットワーク上のリーダーがいません。
通常であれば、同じネットワーク上に複数のノードがおかれる際にはリーダー的存在のノードを一台は設置します。
この従来の方法は「クライアントサーバシステム」と呼ばれ、中央に全員が共有しておきたいデータがおいてある「サーバ」があり、一般ユーザーは「クライアント」として接続されています。
しかし、ブロックチェーンではすべてのノードが平等で、同じデータをバケツリレー式に共有しています。
このシステムは「自律分散システム」(P2P)と呼ばれ、参加者全員を「Pear(同僚)」とし、同じ内容のデータで自律的に仕事をするシステムです。
これがデータを改竄しにくいシステムのミソとなっています。
ブロックチェーンのデータを守る「暗号化」
インターネット上でデータをやり取りするということは、そのデータを誰かに見られる可能性があるというリスクがあるということです。
ブロックチェーンでは、このデータを暗号化し、守ることで以下のメリットが生まれます。
- 文書へのアクセスを特定の人に限定できる。
- 文書の内容が改竄されていないことを保証できる。
- 文書の作成者の署名を検証・証明できる。
- 文書に記載されている内容を否認できない。
ブロックチェーンの暗号化を説明するうえで登場するのが先ほどの「ハッシュ関数」です。
先ほどは簡略化するために「ブロックチェーン技術に必要な計算」と説明しましたが、数学や暗号の知識がないと言葉だけで説明するのが非常に難しいのです。
なので、ここではハッシュ関数が、「とにかく難しい暗号になって返ってくる」ということを押さえておきましょう。
「ハッシュ」という言葉は、ハッシュドビーフやハッシュドポテトのように、「寄せ集め」という意味で、「ハッシュ値」は一見しただけでは何を表しているかわからないほど不可逆的に暗号化しているのです。
実際に他の関数と比べてみてみましょう。
例としてBlockChain、ClockChain、FlockChainの3つの文字列を与えたときに通常時に使われる「concat関数」と「hash関数」の違いを見てみましょう。
「concat関数」の場合
concat(“Block”,“Chain”) → “BlockChain”
concat(“Clock”,“Chain”) → “ClockChain”
concat(“Flock”,“Chain”) → “FlockChain”
このような関数の場合、どんな値が出力されるか想像できるような構造になっていますね。
「hash関数」の場合
hash(“BlockChain”)
→ “3a6fed5fc11392b3ee9f81caf017b48640d75458766a8eb0382899a605b41f2b9”
hash(“ClockChain”)
→ “90f1792f8a13bae8ed69628e48f2ad80948a5d0d99a683078cd17aef0cc41d63”
hash(“FlockChain”)
→ “1fe91df24237be3e0650b2a22e1dc270a1b9149a7538b998ad4b913bff21948c”
いかがでしょう。
Hash関数になると、出力される値に規則がなく、何を表しているかわからないように見えますね。
これがブロックチェーンの暗号化の秘密なのです。
これにより、利用者の情報を安全に守っているのです。
ブロックチェーンで「お金」を移動させる
「ブロックチェーンって何?」のセクションでもふれた通り、ブロックチェーンは暗号資産(仮想通貨)の「ビットコイン」を流用するために開発されています。
つまり、お金を動かすために利用されることが前提となっています。
ブロックチェーンは、コンピュータとネットワークを利用して価値を流通させるための仕組みなのです。
私たちが普段実生活で利用している法定通貨は国家が発行していますよね。
この法定通貨は、国が価値を保証しているのです。
一方、暗号資産(仮想通貨)は、国が発行しているわけではないので、何か他の方法で価値を決めるしかありません。
その価値を保証する方法が先ほど説明したP2Pなのです。
これで「暗号資産(仮想通貨)にはお金の価値がある」ということを証明しているのです。
また、データ共有をしている点から、取引の記録がすべて公開情報になっているということも想像していただけるかと思います。
しかし、取引に記録されているお金を自由に移動させることができるのは、送金先に指定された「ウォレットアドレス」に対応している「鍵」を持っている利用者だけなのです。
「ウォレットアドレス」とは、銀行の口座のようなものですが、実際の口座と異なる点は、どこでも登録なしで作れてしまうところです。
この「ウォレットアドレス」は、公開鍵暗号を元に作られているので、公開鍵と秘密鍵のペアを作ってしまえば、いくらでも生成できるのです。
ただし、一つ大きな弱点があります。
それは、ブロックチェーンの場合、ウォレットアドレスの秘密鍵を忘れてしまうとなかのお金が永久的に利用できなくなってしまうということです。
そこさえ注意すれば、従来の銀行システムよりも匿名性の高い送金システムであることがわかります。
#まとめ
いかがでしたか?
ブロックチェーンの全容を詳しく理解するのは非常に難しく、ブロックチェーンが複雑だということがわかりますね。
しかし、奥深いからこそ、様々な活用方法が考えられており、今後様々な分野で応用できることが期待できそうですね!
暗号資産ジャーナルでは、暗号資産に関するさまざまな情報をお届けしているので、気になった方はぜひ他の記事もチェックしてみてください。