ブロックチェーンはなぜ安全といえるのか、耐改ざん性を解説

2014年のマウントゴックス事件や2018年2月のNEM不正送金事件など、仮想通貨の周辺にはハッキング被害が付きものとなってしまっています。

事件のあと、ビットコインやNEMなどの仮想通貨自体の安全性についての指摘が一部で見受けられましたが、事件の原因になったのは取引所のセキュリティであり仮想通貨自体ではありません。

むしろ、仮想通貨自体の安全性は従来の基盤システムと比較しても非常に強固なものであり、様々な仕組みを代替する可能性を秘めています。

そこで今回は、仮想通貨を支えるブロックチェーンという技術について、その仕組みと耐改ざん性(セキュリティ)の高さを紹介します。

仮想通貨を支えるブロックチェーンという技術

ブロックチェーンは、ビットコインの発明者サトシ・ナカモトの発表した論文が元になって生み出された技術です。

ビットコイン論文については別の記事で解説しましたが、そちらをご覧いただくとわかるように、論文内では”Blockchain”という言葉は使われていません。

ビットコインでは、複数の取引が束になって一つのブロックを形成していきます。
そのブロックを連結させて管理しているのですが、その様子から後になってブロックチェーンという呼称が付いたのだと考えられます。

ブロックチェーンとは

定義

まずブロックチェーンとは何かについてですが、日本ブロックチェーン協会(JBA)が2016年10月に公表した定義によると、

  1. 「ビザンチン障害を含む不特定多数のノードを用い、時間の経過とともにその時点の合意が覆る確率が0へ収束するプロトコル、またはその実装をブロックチェーンと呼ぶ。」
  2. 「電子署名とハッシュポインタを使用し改竄検出が容易なデータ構造を持ち、且つ、当該データをネットワーク上に分散する多数のノードに保持させることで、高可用性及びデータ同一性等を実現する技術を広義のブロックチェーンと呼ぶ。」

1.はビザンチン将軍問題と呼ばれる、不特定多数の参加者が存在する状況下では合意形成が難しいという長年解決できなかった問題に対する解決策となっていると述べており、2.は、暗号技術により改ざん検出を容易にし、管理するデータを分散させることで可用性と同一性を実現する技術だと述べています。

なぜここまで注目されているのか

では、なぜブロックチェーンはここまで注目を集めているのでしょうか。

ブロックチェーンが実現したことの一つとして、ゼロダウンタイム(サーバダウンの可能性がゼロ)があげられます。

従来の中央集権的なサーバでは、自然災害などによる外部からの物理的な障害や、操作ミスによる内部からの人的な障害など、サーバダウンが発生する可能性を無くすことはどうしてもできませんでした。

わかりやすい例として、天空の城ラピュタが放送されると日本人が一斉に「バルス」とTwitterで呟きますが、あのような瞬間的なアクセスによりTwitterのサーバがダウンして、一時的に利用が停止されるといったものがあげられます。

このような不測の事態に備えて、サービス提供者は普段から莫大な費用をかけてサーバをたくさん用意し負荷分散させたり、人的ミスを防ぐために何度も複数人で確認し合ったりしています。
しかし、そこまでしても完全に可能性をゼロにすることはできません。

後述しますが、この問題をブロックチェーンは解決しています。

このゼロダウンタイムの実現に加えて、暗号技術などによる耐改ざん性やスマートコントラクトと呼ばれる自動契約執行プログラムなどにより、ブロックチェーンは注目を集めるようになりました。

ブロックチェーンの種類

ブロックチェーンにはいくつかの種類があることをご存知でしょうか。
ブロックチェーンと一口に括るとわかりにくいですが、「ビットコインのブロックチェーン」「イーサリアムのブロックチェーン」と言い換えるとわかりやすいと思います。

以下に、ブロックチェーンの種類を大きく分類してみました。

それぞれのブロックチェーンには異なる特徴があるため、今回は公開範囲の観点から分類しましたがその他にも信用の観点や権限の観点など、分類の仕方は多岐に渡ります。

種類 運営者 特徴 事例
パブリック型 不特定多数 ・完全に透明性のあるデータが流通する Bitcoin、Ethereum、NEM
コンソーシアム型 複数の人または組織、グループ ・データを完全に公開することなく、かつ完全に隠すこともない Hyperldger Fabric
プライベート型 単独の人または組織 ・ルール変更が容易
・合意形成(取引承認)スピードが速い
mijin、HydraChain

パブリック型は第三者への信用と権限が無く、プライベート型はいずれも有り、コンソーシアム型はその中間といった位置付けになります

ブロックチェーンの耐改ざん性

ここまででブロックチェーンとは何かという点について簡単に説明してきましたが、ここからはなぜブロックチェーンは改ざんされにくいのかという点について説明していきます。

データが改ざんされる理由

なぜ改ざんされにくいのかという点に触れる前に、逆になぜデータは改ざんされるのかという点を考察してみます。
なぜなら、ブロックチェーンは具体的な仕組みで改ざんを難しくしているというより、そもそも改ざんする理由を排除しているという点が非常に優れているためです。

当たり前の話ですが、データを改ざんするのは文字通りそのデータが改ざん者にとって不都合であるか、改ざんすることによって何かしらのメリットをもたらすためです。

例として、送金取引における以下のようなシーンを想定します。

  1. Aさん(悪者)は、Bさん(善者)に対して1万円を送金するよう伝え、BさんはAさんに対して1万円を送金します
  2. Aさんは、Bさんから送金された1万円の取引データを改ざんして、表面上は送金が行われていないように見せかけます(データを改ざんしているだけなので実際には送金は行われています)
  3. AさんはBさんに対して、送金されていないからもう一度送ってみてと伝えます
  4. Bさんは、送金が行われていないという表面上のデータを確認し再度送金します
  5. おかしいと気付かれるまで2~4を繰り返します

データを改ざんすることでこのようなことが実現できてしまいます。
この問題をマリアビリティ(トランザクション展性)といい、実際にこの問題が起きたのがマウントゴックス事件です。

少し話がそれましたがここで論点にしたいのは、どのように改ざんされるかではなく、なぜそのデータを改ざんしようと思うかです。

ブロックチェーンには高いレベルのセキュリティ技術が応用されていることはもちろんですが、そもそもデータを改ざんしようとする動機を排除している、という点が何より注目すべきセキュリティ設計といえるのです。

なお、先述した通りブロックチェーンにはいくつもの種類があります。
ここでは代表例としてビットコインのブロックチェーンを取り上げることとし、これ以降、ブロックチェーンとは原則ビットコインのブロックチェーンのことを意味しています。

なぜ改ざんが困難なのか

前置きが長くなりましたが、ここからはブロックチェーンの改ざんがなぜ困難なのかという点について説明していきます。
前半は技術的な内容、後半は概念的な内容です。

分散システムとP2P

まずは分散システムとP2Pについて触れていきます。

ブロックチェーンという技術は、分散システムの一種と分類することができます。
分散システムとは、複数のコンピュータが連携して動作しているシステムのことであり、ブロックチェーンの場合はP2P(Peer to Peer:第三者を介さずにコンピュータ同士が直接繋がっている状態)方式によって分散化を実現しています。

このP2Pという技術自体もブロックチェーン特有の技術ではなく、例えば2000年代前半に話題となったWinny(ウィニー)などでも使用されていました。

分散システムの中でもP2P方式が特徴的な点としては、特定の一点または限られた少数点で管理せず、P2Pネットワークに参加する全てのコンピュータが平等に管理を行うということです。

P2P方式にすることで先述したゼロダウンタイムを実現しています。
従来の中央集権的なシステムはどこか一箇所でも壊れると致命的でしたが、ブロックチェーンは少しぐらいなら壊れても平気という発想の元に設計されています。

P2P方式では全てのコンピュータが平等な状態にあるため、壊れてデータを失ったコンピュータは修理後に他のコンピュータからデータをコピーすればいいということです。

暗号技術

次に、ブロックチェーンのセキュリティで肝となる暗号技術を紹介します。

暗号技術というと難しく聞こえますが、暗号化というのは日常生活で何気なく登場しているものです。
例えば、オレオレ詐欺への対策として電話がかかってきたらまず合言葉を確認する、といった場面を想定してください。これも一種の暗号技術といえます。 要するに、共有したい内容を保護するために関係者間で何かしらの対策を講じるということです。

特にインターネットを通してやり取りされているデータは、常時ハッキングと隣り合わせになっているため、ハッキングされて困るようなデータ(個人情報など)は暗号化して中身を読み取れないようにして送受信しています。
例えば、SSL/TLSプロトコルによる通信(https通信)などがあげられるでしょう。

ブロックチェーンでは具体的に、以下のような暗号技術が使われています。

名称 概要 何ができるのか
公開鍵と秘密鍵 データを暗号化する鍵(公開鍵)と暗号化したデータを復号化する鍵(秘密鍵) データの送信者が公開鍵で暗号化し、データの受信者が秘密鍵で復号化することで、いずれかの鍵を持っていない人(部外者)はデータを閲覧できなくなる。
ハッシュ関数 特定のデータに対して予測不可能な出力値(ハッシュ値という)を返す関数 同じデータからは必ず同じハッシュ値が出力されるため、データが改ざんされたら即検出できる。(データが変わると出力されるハッシュ値も変わるため)
電子署名 データの作成者を証明する技術 送られてきたデータが意図した本人からの送信であることを確認できる。
タイムスタンプ データの作成時刻を証明する技術(タイムスタンプ自体は暗号技術ではない) その時点に確かにそのデータが存在していたという証明ができる

ハッシュ関数の例(SHA-256方式による)
・”Bitcoin”(ビットコイン)→B4056DF6691F8DC72E56302DDAD345D65FEAD3EAD9299609A826E2344EB63AA4
・”bitcoin”(bが小文字)→6B88C087247AA2F07EE1C5956B8E1A9F4C7F892A70E324F1BB3D161E05CA107B
・”Bitcoim”(最後がm)→9E391E2C6FF2BA97A8B19B61B58A2A2D4B00C806C045F3F32CE2B061243C8BC0

このように1文字でも異なると同じ桁数の全く異なる出力値を返すのがハッシュ関数の特徴

  1. 公開鍵と秘密鍵によってそのデータの関係者が特定される
  2. 電子署名によってそのデータが本人のものであることが証明される
  3. タイムスタンプによってそのデータが確かに存在していたことが証明がされる
  4. 万が一そのデータが改ざんされたとしても、ハッシュ関数によってデータが改ざんされたことがすぐにわかる

上記はそれぞれ独立した技術であり、ブロックチェーンではこれらを応用して暗号化の強度を高めています。
中でも公開鍵と秘密鍵を利用した暗号化方式を解読しようとすると、膨大な計算時間がかかってしまいます。

具体的にどのような技術なのかは、開発者でない限りこれ以上深く理解する必要はありませんが、これらを応用した結果何ができるのかということは把握しておいてください。

Proof of Work

ブロックチェーンにおける合意形成の仕組みがProof of Work(PoW)です。

ブロックチェーンとは、無数の取引データが格納されているブロックがいくつも連なっている様から付いた名称ですが、そのブロックを形成するためには、直前のブロックのデータと特定の乱数を計算する必要があります。

この乱数を計算するのが非常に大変で、かつどこかのブロックのデータを改ざんしようとすると、そのブロックの後に連なっているブロック全てのデータを改ざんしなければなりません。

ブロックチェーンを構成する各ブロックの中身

ブロックチェーンのデータを改ざんしようとすると、先述したハッシュ値を改ざんするだけでもかなり困難であることに加えて、乱数を計算する作業(これがPoW)も同時に行わなければならない。これを改ざんするブロックの後に連なっている全てのブロックに対しても行う必要がある。

これがブロックチェーンが改ざん困難である理由の一つです。

ビットコイン論文では、PoWによる耐改ざん性の数学的根拠が示されています。
気になる人は論文を参考にしながら一度自分で計算してみると納得できるのではないでしょうか。

取引データのマークルツリー構造

技術的な要因の最後に、ブロックチェーンの取引データについて説明します。

先ほど、ブロックチェーンを構成するブロックの中身について図を用いて説明しましたが、その中身である各取引データがどのように格納されているかが、ブロックチェーンのセキュリティにおいては重要になります。

上記のブロックの中身の図をより詳しく表した図が以下になります。

ブロックの中身は、正確にはブロックヘッダと呼ばれる部分と各取引データの集まりから構成されています。

複数の取引データをまとめてハッシュ化したデータをブロックヘッダに格納しているのですが、ブロックヘッダに格納するまでには何度もハッシュ化を重ねています。

上記の図では、

  1. まず取引データ単体をハッシュ化
  2. 1でハッシュ化した2つの取引データをまとめてハッシュ化
  3. 2でハッシュ化した2つのデータをまとめてハッシュ化しブロックヘッダに格納 というプロセスを経て最終的なハッシュ値が出力されています。

この構造のことをマークルツリー構造といいます。

ハッシュ化というのは一度解読するだけでも大変な困難を極めるのですが、ブロックチェーンのブロック内ではこれを何度も繰り返すことで耐改ざん性を実現しているのです。

改ざん理由の排除

以上で技術的な内容は終わりです。
最後に、概念的な内容による耐改ざん性について触れておきたいと思います。

今回は省略しましたが、P2PネットワークにおいてPoWを実施することでブロックを形成するには、何かしらのインセンティブが必要になります。

ビットコインのブロックチェーンでは、このインセンティブとしてビットコインを発行しています。

PoWを実施するコンピュータは、発行されるビットコインを目当てにP2Pネットワークに参加しているのです。

ご存知の通り、このビットコインには価値がついており、日々その価値は変動しています。
当然、P2Pネットワークの参加者はビットコインの価値が高まることを期待するため、ビットコインの価値が下がるようなことは絶対にしないはずです。

この考え方こそが、ブロックチェーンの耐改ざん性を高める要因になっています。
なぜなら、ブロックチェーンが改ざんされるとそのブロックチェーンから発行されているビットコインの価値が下がるため、誰もブロックチェーンを改ざんしようとしないだろう、という力学が働くからです。

ブロックチェーンは、この秀逸なインセンティブ設計が最大の発明であるとすらいわれています。

そもそもブロックチェーンを改ざんする動機を排除し、万が一改ざんしようとする思惑が生まれたとしても複数のセキュリティ技術を駆使することで、耐改ざん性を実現しているということです。

この記事のまとめ

  • P2Pネットワークにより特定の管理主体を排除したことで、人的な操作ミスや不正を排除した
  • ブロックチェーンを改ざんしても何もメリットがないという仕組みを作り出したことで、そもそも改ざんする動機を排除した
  • 万が一改ざんしようとしても、ブロックチェーンには複数のセキュリティ技術が活用されているため、改ざんは非常に困難となっている

ブロックチェーンには技術部分だけでなく、設計部分での耐改ざん性が組み込まれていることをご理解いただけたでしょうか。

最後に一点、耐改ざん性が非常に高いということは、その反面、一度作ってしまうと簡単には変更できないということです。

従来のプログラムは、不具合が起きたらその都度直していくという前提の元、時間をかけてよりよいサービスになっていきますが、ブロックチェーンではなかなかそうもいきません。

今後はそういった特徴を理解した上で、ブロックチェーンを様々な技術と組み合わせて新たなサービスを開発する、といった展開が増えていくことが予想されます。

関連記事

仮想通貨のハードフォークとは|仕組み・メリットデメリットを解説

ビットコイン論文を徹底解説~サトシ・ナカモトの目指していたものと…

ビットコインの論文を徹底解説~サトシ・ナカモトの目指していたもの…

仮想通貨に関する法律から読み解く日本政府の見解

日本で仮想通貨は普及するのか。落合陽一が見る未来

このところ…

仮想通貨を始めるなら安心・安全な取引所で

日本最大手の取引所「bitFlyer」

  • 日本最大の仮想通貨取引所
  • 金融庁公認なので安心
  • 口座開設手続きがスムーズ

公式サイトはこちら

仮想通貨FXなら安心のGMO

GMOコイン

  • GMOなのでセキュリティ万全
  • 2wayプライスなので取引が簡単
  • 現物取引にも対応

公式サイトはこちら