ブロックチェーンのセキュリティリスクと対策を解説 – 数百億円の損失事例も!

この記事は約8分で読めます。

ブロックチェーンは、取引の記録を中央集権的に管理するのではなく、分散した「ブロック」により記録、その一致により、新たな取引を成立させる仕組みです。

この仕組みは、情報を分散して管理それぞれにカギをかけていること、そして、こうした構造を何重にも作ることができるので、セキュリティ上非常に強いと考えられています。しかしながら、実際には数百億円の損失事例を出す事例も生じていて、ブロックチェーンにはその固有のセキュリティリスクがあることがわかっています。

仮想通貨の取引の仕組みであり、また、さらに技術を応用して今後活用されることが期待されているブロックチェーンですが、安全に活用するために知っておきたいセキュリティリスクの要点と対策についてご説明します。

改めてブロックチェーンの定義を振り返る

ブロックチェーンとは何か、定義を見てみましょう。

日本ブロックチェーン協会(JBA)が2016年10月3日に公開したブロックチェーンの定義は以下のとおりです。

1)「ビザンチン障害を含む不特定多数のノードを用い、時間の経過とともにその時点の合意が覆る確率が0へ収束するプロトコル、またはその実装をブロックチェーンと呼ぶ。」

2)「電子署名とハッシュポインタを使用し改竄検出が容易なデータ構造を持ち、且つ、当該データをネットワーク上に分散する多数のノードに保持させることで、高可用性及びデータ同一性等を実現する技術を広義のブロックチェーンと呼ぶ。」

この定義では非常に難しいため、もう少し簡単に言うと、以下のようなアルゴリズムのなかで情報を管理する仕組みです。中央で管理する人がいない、分散管理であることに特徴があり、これがセキュリティを強固にしている、と考えられます。

  1. 取引をノード=「ブロック」により情報管理する。このノードないしブロックは小さなDBと考えておくとよい。
  2. ブロック同士はP2P方式で通信可能。ブロック同士の情報が一致すると、取引を成立させることができる。
  3. ブロックは非常に長い「チェーン」の形で存在するが、何重かにすることができて、その多重構造の中でお互いのデータをチェックできる。

このことから、次のような特徴があります。

  • データを分散させることによる低いシステムダウンのリスク
  • データの公開が前提のためデータ連携がしやすい
  • 改ざんの検出が簡単

このブロックチェーン技術は、Fintechのキーテクノロジーと位置付けられていて、今後の金融のあり方を大きく変えると言われています。

例えば、ブロック=ノード≒人(市場参加者)の取引記録をすべて記録することができるものですが、この記録を使って、マネーロンダリングの防止に役立てる・信用調査・市場参加者同士の為替取引を成立させるなどの実用化が検討されています。

現在、ブロックチェーンを使った取引は仮想通貨主体ですが、ブロックチェーン技術そのものの応用の幅は今後も広がるでしょう。

ブロックチェーンは2つのタイプに分かれる

ブロックチェーンのタイプには2種類があります。

1つが「パブリック型(Unpermissioned型)」で、誰でもがノードをもって参加できるブロックチェーンです。2つ目が参加者を限定するブロックチェーンである「クローズド型(Permissioned型)」です。

一般的にブロックチェーンとは、パブリック型のものを指すことが多いのですが、ブロックチェーンは、ノードが限定されていないか、限定されているかでセキュリティリスクが異なります

不特定のノードが参加するパブリック型のブロックチェーンでは、より高い堅牢性が要求されることになります。

ブロックチェーンにおけるセキュリティリスクとは

ブロックチェーンは、分散型のDB同士での情報の一致でしか取引を成立させられない事、改ざんはすぐに見つかることから、セキュリティ上堅牢な構造を持っていると考えられますが、この仕組み固有のセキュリティリスクがあります。

51%問題

51%問題とは、特定のノードが、ネットワーク内他ノードの合計値を超えるパワーでマイニングを行うと、そのノードにネットワーク全体が左右される問題です。

一人の人がマイニングを行い、全体の51%について、「取引指令」を出したとすると、ネットワーク全体が不正な取引であってもそれを許してしまいます。これは、「コンセンサスアルゴリズム」なかでもナカモト・コンセンサスとよばれるアルゴリズムが原因の問題とされます。
ブロックチェーンにはネットワーク管理者がいません。そのため、取引の規約としてコンセンサスアルゴリズムがブロックチェーンごとに定められています。

ところで、ビットコインでは、マイニングを行うごとにブロックが生成されていき、ブロックの数が一番多いチェーンが正しい記録であるとされるコンセンサスアルゴリズム(ナカモト・コンセンサス)が定められていて、他の仮想通貨でもこれにしたがっています。
しかし、ブロックを長くするにはネットワーク全体よりも大きい(51%)パワーでマイニングを実施すればよい、ということになってしまうため、かつて生じたようなモナコイン事件のようなコイン流出事件が起こってしまうわけです。

モナコイン事件は、このマイニングが行われたため、取引所に入金されたモナコインが流出する結果となりました。こうした不具合を防ぐためには、取引所が取引を承認するためにはより多いブロックの数を要求しなければなりません。

モナコイン事件のあと、bitbankbitflyerは承認数を引き上げて対策をとりました。

秘密鍵の流出

もう一つのブロックチェーンのセキュリティリスクは、秘密鍵の流出、すなわち「なりすまし」攻撃のことです。各ノードのアカウントに付与された「秘密鍵」を盗まれることで発生します。

秘密鍵は、通常のネットワークでのパスワードと同様の働きをしますが、78桁と非常に長いものであり、普通は通常のネットワークよりも堅牢、と思いがちです。しかしひとたびこれが流出すると、通常のネットワークに対する攻撃より深刻な事態を引き起こします。

ブロックチェーンでは、ネットワーク基盤上での取引記録(トランザクション)を1MBずつ取り出してブロックとしています。具体的な取引のためにブロックが取り出される際には、秘密鍵暗号化方式が使われます。秘密鍵を使うことで、各アカウントに紐づいた権限を使えるのですが、これを盗まれると、第三者がアカウントを悪用できてしまいます

通常のセキュリティ事故におけるパスワードの流出と仕組み自体はこのように同じです。しかし、異なる点は、手口ではなく、簡単にすべての資産の流出につながってしまうことなのです。

有名な事例は、コインチェック事件であり、不正アクセスで約580億円に相当する5億2300万NEMが流出してしまった事例ですが、一夜にして巨額の被害が出たことが世の中を驚かせました。

ブロックチェーンで意識すべきセキュリティ対策とは

51%問題の対策はコンセンサスアルゴリズムの変更

この問題の根本的な解決方法は、コンセンサスアルゴリズムを変更することです。ブロックチェーンのネットワークが大きくなれば51%問題も発生しにくくなるが、リスクが0になるわけではありません。なぜなら、仕組みそのものは変わらないためです。

そこで、例えば、イーサリアムで採用されている「PoS(Proof of Stake)」「PoA(Proof of Autority)」などへの変更が有効と考えられます。

PoSはナカモト・コンセンサスがハッシュパワー=マイニング(計算)数に規定されていたのに対して、資産量でさらにチェーンを追加することができるようにし、誰でもがチェーンを追加できる仕組みを変えるものです。また、コンセンサスアルゴリズムだけではなく、ネットワーク参加者自体を許可制にすることも、51%問題に対する一つの対策方法となります。

秘密鍵の流出への対策はマルチシグ

マルチシグとは、マルチシグネチャーの略で、トランザクションの署名に複数の秘密鍵を使う手法。複数のアカウントで秘密鍵を持ちあう方式です。

ただし、これで個人のセキュリティレベルは上がるものの、取引所が攻撃されてしまった場合には無意味となる点から、巨額資産の流出を完全に封じる手段ではありません。取引所側では、複数箇所への攻撃を予測して対策を取る事が重要でしょう。

コールドウォレットでの保管も有効

その他不測の事態に備えて、個人レベルではコールドウォレットでの保管も検討する必要があります。ネットにつながっておらず、完全に隔離できるのが「コールドウォレット」で、ハッキングなどの対策として有効です。

ただし、紛失や災害で物理的に滅失する危険がありますので、物理的なセキュリティに気を付ける必要があります。

二段階認証を採用している取引所を選ぶ

二段階認証とは、ログインの際にメールアドレスとパスワード以外に、もう一つ要素を追加して二段階の認証を実施することです。

スマートフォンでワンタイムパスワードの入力なら主流であり、メールアドレスやパスワードの情報が盗まれても、不正アクセスを受けにくくなります。

まとめ

以上のように、ブロックチェーンのセキュリティには、他のネットワークのセキュリティの問題と異なる特色があります。

個人レベルでは最新の対策、とりわけ取引所の仕組みを理解し、より安全と考えられる仕組みを使うこと、コールドウォレットの活用により対策しておきましょう。

情報セキュリティ対策組織体制・ルールの構築
タイトルとURLをコピーしました