仮想通貨は、ブロックチェーンだけではなく、様々な革新的技術が使われています。
どのような技術が使われているのかまとめました。
はじめに
仮想通貨に用いられている技術といえば、多くの人が思い浮かべるのが「ブロックチェーン」でしょう。
たしかに、ブロックチェーンは仮想通貨に利用されている素晴らしい技術です。
しかし、仮想通貨を支えている技術は、ブロックチェーンだけではありません。
その他にも使われている技術があります。
したがって、仮想通貨の仕組みを理解するためには、ブロックチェーンそのものの仕組みと同時に、その周辺の様々な技術を知っておくのが好ましいでしょう。
本稿では、仮想通貨に用いられる様々な技術について解説していきます。
中央集権型システムvs分散台帳システム
銀行預金など、従来の金融システムにおいて資産を管理するためには、中央集権型システムというものが用いられていました。
このシステムは、全ての取引を1台あるいは数台が中心となって、中央サーバーで処理していくシステムのことです。
中央集権型システムにはデメリットがありました。
それは、以下のようなデメリットです。
- 中央サーバーのセキュリティが破られてしまうと、一気に情報が漏洩したり、資産が奪われたりするため強固なセキュリティ対策を必要とすること
- 中央サーバーがダウンしてしまうとサービスが運用できなくなり、たちまち致命傷になること。
- 強固なセキュリティ対策と、多数の取引を安定して行える高性能なコンピューターが必要であり、膨大なコストがかかってしまうこと。
- セキュリティや性能が十分でも、顧客の信頼を得るまでに苦労すること。
中央集権型システムには、上記のようなデメリットがありました。
しかし、仮想通貨では中央集権型システムではなく、分散台帳システムを採用しています。
これは、世界中の複数のコンピューターが、同じ取引を同時に処理するというものです。
上記の通り、中央集権型では、中央サーバーがダウンすると運用に致命的なダメージを与えますし、中央サーバーのセキュリティが破られてしまうと多大な被害を受けます。
一方、分散台帳では、一部のコンピューターがダウンしたり、一部のコンピューターのセキュリティが破られたとしても、データはすべてのコンピューターに記録されているため、システム全体には何ら影響がありません。
もし影響があるとすれば、参加しているコンピューターすべてがダウンしたり、セキュリティを破られたりしなければなりませんが、そのような事態は現実的にあり得ません。
ビットコインのブロックチェーンに関わるコンピューターでは、同じ仕事を共有して行ない、データは全てのコンピューターに共有されています。
仕事を分担してこなすため、中央集権型システムに比べると、安全性はもとより、1台当たりの負荷は小さく、システムの構築と運用にかかるコストも抑えられます。
もちろん、バックアップも不要です。
ちなみに、分散台帳システムでは、信頼とは無関係な立ち位置にあります。
そもそも、中央集権型システムでは、中央サーバーがすべての取引を処理していることから、信用の源泉=サーバー(または運営会社)でした。
しかし、分散台帳システムでは複数のコンピューターによってシステムが維持されており、それぞれのコンピューターは匿名化されています。
したがって、システムの利用者は特定のコンピューターを信頼する必要がありません。
ブロックチェーンの暗号技術
仮想通貨は、電子署名を伴う通貨です。
電子署名という技術は、仮想通貨が登場する前から存在していた技術ですが、仮想通貨においても電子署名が重要な役割を担っています。
というのも、電子署名とは、データ上で本人確認ができる仕組みのことです。
これを使うことによって、仮想通貨の送金をしているのが、その所有者本人であることを証明することができ、本人の許可なしに送金されている可能性や偽造や改ざんされた可能性を排除することができるのです。
電子署名の流れは、簡単に言うと以下のようなものです。
AさんがBさんに仮想通貨を送金する場合、
1、Aさんは秘密鍵をランダムに作り、公開鍵を作成する
2、Aさんは秘密鍵を使ってデータを暗号化し、そのデータと公開鍵をマイナー(ブロックチェーンの管理者)に公開する
3、マイナーは公開鍵を使ってデータを検証し、問題がなければAさんからBさんに送金が行われる
この流れを、もう少し詳しく見ていきましょう。
1、まず、仮想通貨を送金するためには、送金者本人の秘密鍵と、送金先のアドレス(例えばビットコインを送金するならばビットコインアドレス)が必要となります。
送金者は、暗号を用いて秘密鍵から公開鍵を作成します。
2、次に、秘密鍵を使って変換した署名データ、すなわち「AさんがBさんに仮想通貨をいくら送金した」という取引データを作ります。
そのデータは公開鍵と一緒に、仮想通貨の全取引をブロックチェーンに記録しているマイナーに送られます。
3、マイナーはデータを受け取り、公開鍵を使って検証します。
マイナーがその取引を検証し、正当な取引であることを確認したならば送金を許可し、AさんからBさんに送金が行われます。
このように、電子署名という仕組みは、不正のない取引のために大変有効なものだといえます。
ただし、万が一秘密鍵が盗まれてしまうと、本人になりすまして勝手に送金することが可能となります。
これはあたかも、身分証明書や実印を盗むことで、悪用されることと同じようなものです。
したがって、仮想通貨を取り扱う際には、秘密鍵を厳重に保管する必要があります。
公開鍵と秘密鍵
電子署名の説明に登場した「公開鍵」と「秘密鍵」について、もう少し詳しく解説してきましょう。
電子署名は暗号技術によって成り立っているわけですが、代表的な暗号技術として「共通鍵暗号方式」というものがあります。
この方式は、送信者と受信者の間で共通鍵という一種類の鍵を使って、共有するものです。
送信者が一方の共通鍵を用いて情報に鍵をかけて送り、受信者は共有鍵を用いて、受け取った情報を解錠するのです。
共通鍵暗号方式は、分かり易くて便利な方法と言えますが、その反面、リスクが高いというデメリットがありました。
共通鍵が第三者に盗まれてしまうと、第三者が情報を見ることができるからです。
この意味で、共通鍵というものは、合鍵のようなものだと考えることができます。
このデメリットを解消するために作られたのが、「公開鍵暗号方式」という方法です。
この方法では、公開鍵と秘密鍵の二種類の鍵を使い分けてやり取りすることによって、共有鍵方式のデメリットを解消しました。
ある特定の公開鍵は、ある特定の秘密鍵とワンペアになっており、ペアになっていない鍵では決して開けることができないのです。
公開鍵暗号方式の手順は以下の通りです。
1、公開鍵で情報に鍵をかけ、相手に情報を送る。
2、受信者は、公開鍵とのペアにあたる秘密鍵を使って解錠する(これを復号という)
公開鍵は公開されている鍵なのですが、秘密鍵は非公開であり、送金者以外が知ることはできません。
ちなみに、公開鍵暗号方式は仮想通貨の登場に伴って開発されたものではなく、これまでにもメールやネットバンキングなどで利用されてきたものです。
ですので、皆さんも何気なく公開鍵暗号方式を使用していたことと思います。
ハッシュ値を使ったデータ処理
ブロックチェーンの技術は、その名の通りブロックをチェーンのようにつないだものであり、このブロック一つ一つに取引データが記録されています。
ビットコインの場合であれば、ひとつのブロックには10分間の取引データが記録される仕組みになっています。
このブロックをつなげていることから、ブロックチェーンと呼ばれています。
しかし、ブロックの中に記録されているのは取引データだけではありません。
取引データの他にも、「ハッシュ値」が含まれており、これはひとつ前のブロックの内容を示す情報です。
そのほか、「ナンス」と言った値も含まれています。
「ハッシュ値」というキーワード自体、一般の人には馴染みがないことと思います。
この値は、「暗号学的ハッシュ関数」と呼ばれる特殊な計算によって求められた値であり、元のデータをもとに暗号学的ハッシュ関数を用いれば、必ず同じハッシュ値が得られるというものです。
もし、少しでもデータが異なっていれば、全く異なるハッシュ値となります。
また、計算結果として得られたハッシュ値を使っても、元のデータを逆算することはできません。
「ナンス」というものは、その後につながる新しいブロックを生成するために必要となる値のことです。
ハッシュ値とナンスによって、ブロックチェーンの安全性が高まります。
なぜならば、新しいブロックが作られるためには、きちんと条件を満たしたハッシュ値が求められていることが必要だからです。
前のブロックのハッシュ値、新しいブロックに記録される取引データ、ナンスの3つの情報と、そのほかにもいくつかの情報を用いて暗号学的ハッシュ関数によってハッシュ値を求めます。
これを求めるためには、膨大な計算をこなす必要があり、容易にたどり着けないことから、安全性が高まっているのです。
正しい順序を守るハッシュチェーンとは?
ブロックチェーンでは、発行開始から現在に至るまで、全ての取引が記録されています。
しかし、その膨大な情報が、どのようにして正しい履歴順に並べられているのか、気になるところです。
上記の通り、ブロックチェーンでは、一定期間ごとの情報をブロックにおさめ、そのブロックをチェーン状に並べていきます。
そして、それぞれのブロックにはハッシュ値が含まれています。
このハッシュ値をつなげる技術を、ハッシュチェーンと言います。
ハッシュチェーンを構成するハッシュ値をもとに計算を行なうことで、次のブロックに含まれるハッシュ値を新たに決めていき、どんどんハッシュ値が連鎖していき、ハッシュチェーンが形成されるのです。
ハッシュチェーンが途切れずに一本の鎖状を形成することによって、データの前後の整合性が保たれることとなり、ブロック内の情報を書き換えたり、順序を入れ替えたりすることが非常に困難になります。
中央集権型システムでは、中央のサーバーのデータベースにアクセス権限がある人ならば、そのデータを書き換えることが可能でした。
しかしそれではまともな運用が難しくなるため、誰もがサーバーにアクセスできないように、強固なセキュリティ対策を講じる必要がありました。
しかし、分散台帳システムでは、ハッシュチェーンという仕組みやプルーフ・オブ・ワーク(後述)という仕組みがあるため、誰も情報を書き換えることができません。
従来の「隠そう、隠そう」としてきたシステムから、「公開しても問題ない」システムに変えたというのは、画期的な転回と言えるでしょう。
プルーフ・オブ・ワークとは何か?
ブロックチェーンでは、複数のコンピューターが、取引情報を共有しています。
だからこそ、ハッキング被害に遭ったとしても、全体的な整合性が損なわれない仕組みになっています。
このシステムのことを「合意アルゴリズム」と言います。
合意アルゴリズムの「合意」とは、データが一致した状態のことです。
仮想通貨の取引データを改ざんさせないために、世界中のコンピューターがハッシュ値を早く見つける競争を行ない、最初にハッシュ値を見つけた人には、仮想通貨が報酬として与えられます。
ビットコインの場合には、最初にハッシュ値を見つけた人に12.5BTCが支払われますが、2017年8月15日現在、1BTC=約47万円ですから、日本円にして600万円弱もの報酬が与えられることになります。
さて、ハッシュ値を最初に見つけた人は、そのブロックにハッシュ値をつけて他のコンピューターに送り、受け取った人はそのハッシュ値が正しいことを検証して、正しければ自分の台帳に追加します。
つまり、膨大な仕事量を投入して改ざんを防止し、その結果を他のコンピューターでも取り入れてデータを一致せることで、ブロックチェーンが形成されているわけです。
このアルゴリズムのことを「プルーフ・オブ・ワーク」といいます。
「プルーフ・オブ・ワーク」という言葉を直訳すると、「作業の証明」という意味になります。
この訳からも、プルーフ・オブ・ワークの意味がよくわかると思います。
すなわち、分散している複数のコンピューターで同時に作業に当らせて、いち早く数値を導き出した者にのみ新しいブロックを生成する権利と、報酬を受け取る権利が与えられるのです。
プルーフ・オブ・ワークにあたっては、ハッシュ値を導き出すために膨大な計算を行ないますが、これは何も複雑な計算を行なっているというわけではありません。
単にナンスを変更して計算を行なうだけのことで、作業自体には何の意味も無く、とにかく膨大な計算を行なうことによって、容易に計算結果を得られなくすることだけが目的となります。
ハッシュ値を導き出し報酬を得るためには、高性能なコンピューターと莫大な電気代がかかり、新規参入が難しくなっています。
その結果、現在はマイニング(ハッシュ値を計算し報酬をもらうこと)の多くが一部のマイナーに独占されてしまっています。
このように、マイニングの寡占化が進んでいけば、マイニングに当るマイナーの顔ぶれが少数の決まった組織になる恐れがあります。
そうなれば、中央集権的なシステムを否定して生まれたにもかかわらず、その理想が崩れてしまう可能性があります。
したがって、プルーフ・オブ・ワークに代わる改ざん防止手段として、プルーフ・オブ・ステークスという技術も広がりつつあります。
プルーフ・オブ・ステークスは、コインの保有割合に応じて、ブロックの承認割合を決定する仕組みであり、主にアルトコイン(ビットコイン以外の仮想通貨)で採用されています。
まとめ
このように仮想通貨の運用のためには、ブロックチェーン以外にも様々な技術が活用されていることが分かったと思います。
これらの技術を簡単にでもいいので、ひとつひとつ把握していくことによって、仮想通貨の安全に対する信頼、仮想通貨に対する不安の払拭ができ、仮想通貨を取引してみたいと思って頂ければ幸いです。