メイン画像

ブロックチェーン安全性のカギ、改ざん防止の仕組み

ブロックチェーン安全性のカギ、改ざん防止の仕組み


「ブロックチェーンって改ざんできなくて安全だからいろんなものに応用されようとしてるみたいだけど、そもそもなんでブロックチェーンは改ざんできないの?」

「でも、仮想通貨(暗号通貨)の事件ってよくネットニュースとかで見るけど本当に安全なの?」

こういった方の疑問に初心者の方でもわかるように答えます。

 

本記事の内容

  • そもそも攻撃者はなぜ改ざんをしたいのか
  • ブロックチェーンはなぜ改ざん耐性があるのか
  • 今までの事例から学ぶブロックチェーンの安全性と危険性

私はブロックチェーンを研究している大学院生です。今回はブロックチェーンの仕組みをぼんやりとしか知らない方に向けた内容になります。専門用語も噛み砕きながら進めていくので、ブロックチェーンを知らない初心者でもわかることを目標にして書きます!

そもそも攻撃者はなぜ改ざんをしたいのか

まずはブロックチェーンの基本を簡単に説明しておきます。

ブロックチェーンはブロックが鎖(チェーン)のように連結しているのでそのような名前がついています。各ブロックにはトランザクション(取引情報)がたくさん入っています。トランザクションはビットコインのような暗号通貨の場合、誰が誰にいくら送ったかという情報が書かれています。

ブロックチェーンの改ざんとは

ブロックチェーンを改ざんするということは、ブロックの中身を書き換えることです。書き換えの一番簡単な例としては、入っていたはずのトランザクションを消してしまうことです。そうするとどうなるでしょう?

誰かが誰かに送金したという履歴がなくなってしまうので、お金がまた自分のもとに帰ってきます。

このように攻撃者は、もともとあった取引をなかったことに、または内容を書き換えたり(例えば、送信先を変える)することで利益が生まれます。

これが攻撃者らが攻撃をするインセンティブです。改ざんができるのならば、その攻撃者はお金を消費することなく買い物ができるようになりますね。

ブロックチェーンはなぜ改ざん耐性があるのか

改ざんの仕組みは前節で書いた通りです。では、ブロックチェーンはなぜ改ざんができないようになっているのでしょうか。そのカギとなる項目を下にまとめてみました。

  • ネットワークモデルの違い
  • 多数決の原理
  • ハッシュチェーン

これらを1つずつ見ていきましょう。

ネットワークモデルの違い

コンピュータネットワークモデルには大きく分けて2種類あります。サーバ・クライアント型とピア・ツー・ピア(P2P)型です。

サーバ・クライアント型のネットワークでは、それぞれのコンピュータが持つ役割が明確に決まっています。例えば YouTube のような動画配信サービスを考えてみましょう。このネットワークに参加しているコンピュータとは、

  1. 見たい動画を検索して、視聴するために動画を要求するクライアント
  2. 動画を用意して、クライアントからの要求を待つサーバ

この2種類に分かれます。見てわかるようにサービスを提供するサーバと、それを利用するクライアントは明確に違いがあります。

一方で P2P 型のネットワークでは、それぞれのコンピュータに違いがなくピア(対等)な関係にあります。誰もがサーバにも成り得るし、クライアントにも成り得るということです。

データの保存方法がネットワークモデルによって異なることも重要なポイントです。サーバ・クライアント型の場合、基本的にデータはサーバが全て管理しています。そして、当然ですがサーバが何らかの理由によってダウンしてしまうと、そのサービス全体が止まってしまいます。

P2P 型の場合、データは全員で一緒に持っています。システムにもよりますが、全データを各自が持っているのである1つのコンピュータを残してそれ以外が全てダウンしてもシステムは生きています。(P2P に関しては YouTube で動画にもしているので、興味のある方はそちらも参考にしてみて下さい)

ブロックチェーンを使ったシステムは P2P 型でできています。つまりシステム障害には強いということですね。

多数決の原理

先ほど、ブロックチェーンシステムは P2P 型ネットワークだと話しました。つまり、全てのコンピュータはシステムのデータベースであるブロックチェーンを持っています。各コンピュータは定期的にご近所のコンピュータと連絡を取り合い、互いが持つブロックチェーンの同期を取り最新の状態にしています。

ここで、ある攻撃者が自分の持っているブロックチェーンを改ざんしたとしましょう。いま、攻撃者の持つ改ざんされたブロックチェーンとそれ以外のコンピュータが持つブロックチェーンという2種類のチェーンが存在していることになります。それらが同じ長さである場合、どちらが正しいチェーンと見なされるでしょうか?

答えは、先に長くなったチェーンが正当なものと認識されます。ブロックチェーンを長くするには新しいブロックを追加しなければなりません。ブロックを作るにはある計算を素早く解く必要があります。今回の場合、攻撃者は全体から見て少数派なのでみんなよりも早く計算を解くことは困難でしょう。

単純に考えると攻撃者が多数派になってしまわない限り安全ということですね。

ハッシュチェーン

もう一度、ブロックの話をします。各ブロックは自分の1つ前のブロックのヘッダーをハッシュ化した値を持っています。つまり、どこかのブロック(A)を改ざんすると当然ながらブロックヘッダーのハッシュ値も変わってしまいます。その次のブロック(B)に入っている A のハッシュ値も変えなくてはいけません。すると B のハッシュ値が変わり、その次のブロック、その次のブロック・・・と、改ざんを行ったブロック以降全てのブロックを作り直さなければなりません。

このように各ブロックに前ブロックのハッシュ値を含んでいるので、これをハッシュチェーンと呼んだりもします。

先ほども話したように、ブロックを作るにはそれなりの計算が必要です。つまり、古ければ古いデータほど改ざんがさらに難しくなるということです。

 

まとめると、ブロックチェーンシステムは P2P 型で構成されていてみんながブロックチェーンを持っています。自分の持ってるブロックチェーンを改ざんすることはできるけど、それをみんなに認めてもらうにはみんなの持つブロックチェーンよりも長くする必要がある。ブロックを作るには計算を早く解かなければならない。しかし、みんなの持つコンピュータの計算力の合計を上回る超ハイスペックコンピュータを攻撃者が持っていない限り、計算競争で勝つことは難しい。

今までの事例から学ぶブロックチェーンの安全性と危険性

ブロックチェーンが改ざん耐性を持つことはわかったと思います。でも、「何億円相当の暗号通貨〇〇が流出!」とか、「取引所がハッキング!」とかショッキングなニュースをよく聞きますよね?

なんかこれ聞いてると、「やっぱり暗号通貨って信用できないな〜怖いな〜」と感じるかもしれません。

これらの事件は大きく分けて2つのパターンがあると思います。

  • 取引所が攻撃されたパターン
  • そもそものシステム設計に問題があったパターン

まずは、取引所が攻撃されたパターンです。みなさんも記憶に新しいと思いますが、「コインチェック事件」などがこれになります。このパターンのリスクはある程度減らすことができます。

このパターンの原因は、取引する時に必要なとても重要な情報(ウォレット)を取引所に管理を任せてしまうことです。取引所というのは取引を行うサーバなので、攻撃者もこのサーバを特定することは簡単です。そして、ここにみんながウォレットを預けていると知っていれば攻撃をしてくるはずです。

じゃあどうすれば良いかってことですが、ウォレットを自分で管理することです。自分の運用したい通貨に対応したウォレットを手元に置いておくことで、攻撃者はあなたを標的にすることが難しくなります。

2つ目のパターンですが、「Mt.Gox(マウントゴックス)事件」が有名ですね。あとは、最近は様々な暗号通貨でブロックチェーンが改ざんされる事例が出てきています。先ほど話したように、ブロックチェーンが改ざんされないのは攻撃者が少数派であることを前提としている部分があります。

しかし、この少数派は簡単に覆ることがあります。例えば、まだ十分に成長していない、利用者も少ない暗号通貨「Q」があったとします。ここに普段はビットコインをやっている多くの悪意のあるユーザが「Q」に乗り換えて参入してきたとします。すると、利用者が少なかったため、攻撃者たちがあっという間に多数派になってしまうことが起き得ます。

新しく暗号通貨の運用を始めたいという方は、十分に成長した通貨を選択するか、大量の計算を必要としない暗号通貨を選ぶことをお勧めします。

 

というわけで今回は以上です。暗号通貨を運用する際は基本的にシステムよりも情勢を重要視すると思いますが、こういった基礎となっている知識を知っておくことも重要だと思います。


アカウントを作成 して、もっと沢山の記事を読みませんか?


この記事が気に入ったら しゅま さんを応援しませんか?
メッセージを添えてチップを送ることができます。


この記事にコメントをしてみませんか?


はじめまして、しゅまです。気ままに記事を投稿していきたいと思います。
・Python
・ブロックチェーン
・ゲーム関連