QbookジャーナルQBOOK JOURNAL

ブロックチェーンは改ざん耐性が高い!品質問題事例とセキュリティ

執筆者:Qbook編集部

ブロックチェーンは改ざん耐性が高い!品質問題事例とセキュリティ

ブロックチェーン技術は、暗号資産(仮想通貨)のビットコインとともに誕生しました。ブロックチェーンは改ざん耐性の高い技術として期待されていますが、昨今では仮想通貨取引所や暗号資産を保管するウォレットへのハッキング被害が目立つことにより、そのセキュリティが不安視されています。

日本国内でも仮想通貨取引所がクラッキングに遭い、多額な被害が出たこともあります。暗号資産が盗まれた原因としては、ブロックチェーンに利用されるセキュリティ対策の1つである「秘密鍵」の保管状況が大きく関係していました。

そこで本記事では、技術基盤として広がりを見せるブロックチェーン技術について、暗号資産に起こった品質問題事例に触れながら、そのセキュリティについて解説します。

ブロックチェーンは改ざん耐性の高い技術

ブロックチェーンは、私たちが日常的に使うサービスへの応用が期待されています。

そもそもブロックチェーンは、暗号資産のビットコインを支える基盤として登場した技術であり、「ブロックチェーンに1度記録したデータは後から変更を加えることができない」という特長があります。また、ブロックチェーンのもうひとつの特長として「取引の透明性」が挙げられます。ブロックチェーンでは「誰が」「いつ」「何を」「どのくらい生産し」「どのようなルートで」取引が行われたかの記録を、誰もが確認できるのです。

こういった「改ざんができない」「取引の透明性を確保できる」といった特長により、ブロックチェーンを基盤とした取引の信頼性は担保されています。

金融業界はもちろん物流や食品衛生など、記録によるサービス品質の担保が望まれる分野において、幅広く応用されることが期待されています。例えば物流サービスでは、生産者や納品時期、輸送ルートなどの情報をブロックチェーンに記録することで、サービスとともに顧客が手にする製品への信頼性も提供できるようになるのです。

つまり、ブロックチェーンの改ざん耐性の高さは、ビジネスにおいて重視される「信頼性」をより明確に開示できる技術だといえます。

ブロックチェーンを支える技術

8607-00081-2.jpg

ブロックチェーンを用いたサービスを構築するうえでエンジニアが理解しておくべきは、ブロックチェーンを支える技術です。

ブロックチェーンとは大枠でとらえると「データベース」ですので、そこにシステムを構築するためには、ブロックチェーンがいかにして高い改ざん耐性を得ているのかを知る必要があります。

ブロックチェーンを支える技術を理解するために、キーとなるのは「P2P」「暗号化技術」、そして「スマートコントラクト」です。それらを知ることで、システム構築する際の実装が的確かつスムーズになるのはもちろん、サービスを運用するメンバーと要求定義・要件定義を行う際も、より具体的に傾聴・提案することができるようになるでしょう。

P2Pネットワークによる分散管理

ブロックチェーンのデータ管理は、「P2Pネットワーク」という技術によって維持されています。

P2Pネットワークとは、各ノード(コンピュータ)同士がつながって形成されるネットワークの形態です。クライアントサーバシステムのように中央でデータ処理をするのではなく、各ノードがデータの所持から処理までを縦横無尽に行えます。これにより分散管理を実現し、いくつかのサーバが障害を起こしたとしてもシステムを維持できる仕組みです。

P2P(Peer to Peer)技術自体は古くからある技術ですが、新技術であるブロックチェーンの重要な基礎を成すもので、P2Pを利用することにより、従来のクライアントサーバシステムのような中央集権構造を打開しています。

ブロックチェーンにおいてネットワークに参加する各ノードの1つ1つがつながり、各ノードがそれぞれ同じ台帳(ブロックチェーン)を持っています。例えばビットコインであれば、マイニングを行うマイナー1人1人(あるいは団体)がノードです。この仕組みにより、各ノードが台帳を所持・管理することができるため、ブロックチェーン自体がダウンしにくいインフラを実現することができるほか、データ改ざんの抑止にもつながります。

もちろん、改ざん耐性の高さを担保しているのはP2Pネットワークだけではありませんが、ブロックチェーンの改ざん耐性の高さの一端を担っている技術です。

暗号化技術

ブロックチェーンを支える技術として、「暗号化技術」も重要な役割を担っています。ブロックチェーンでは、取引者を確認するために「公開鍵暗号方式」が利用されています。

前述したように、ブロックチェーンはビットコインシステムを支えるために誕生し、現在では暗号資産全体(Rippleを除く)の基盤として利用されています。暗号資産は価値の取引を行う仕組みですので、取引相手が「本人であるかどうか」を証明することは、システムを利用する際のとても重要な要素となります。

それゆえに、暗号資産取引では取引相手の本人認証を行うため、公開鍵暗号方式を用いた「デジタル署名」が利用されています。この認証の仕組みは昔から利用されており、新しい技術・発想ではありません。しかし、暗号資産における価値の交換をはじめ、ブロックチェーン技術を支える重要な役割を果たしているのです。

ビットコイン取引で利用されるデジタル署名

「公開鍵暗号方式」では、情報を渡したい相手の公開鍵を使ってデータを暗号化し、受取側は自分の秘密鍵を使ってデータを複合化します。これが、暗号化されたデータのやり取りです。しかし、ブロックチェーン技術を基盤とした暗号資産取引では、上記の手順を逆にしてデジタル署名として利用します。例えば、ビットコインを取引する場合には以下の要求があります。

  • Bさんからビットコインを受け取ったAさんは、それが本当にBさん本人のものかを確認する
  • ビットコインを送るBさんは、それがBさん本人のものであることをAさんに証明する

この要求が成り立たなければ、取引に不正が起こってしまいます。そこで、公開鍵暗号方式の手順を逆にした、以下のようなやり取りで要求を満たします。

  • Bさんは自分が持っている秘密鍵でデータに署名をする
  • Aさんは、Bさんの秘密鍵から生成された公開鍵を利用して、Bさんから届いたデータの署名を照合する

このときにAさんの持つ公開鍵で照合できるのは、Bさんの秘密鍵で作られた署名のみです。つまり、秘密鍵を持つBさんが署名したことを「証明」できるということです。このように暗号化技術を利用して、信頼性のある取引結果をブロックチェーンに記録することで、ブロックチェーン自体の透明性も確保しています。

スマートコントラクト

「スマートコントラクト」は、システム上の契約行動の自動化を実現するための仕組みであり、ブロックチェーン上において実行されます。スマートコントラクト技術により、ブロックチェーン上で特定の契約条件が満たされた場合に、あらかじめ指定されていたアクションの実行が実現可能となります。

例えば、スマートコントラクトは保険契約や賃貸物件の自動更新などにも応用できる技術です。契約者本人が契約を実行できない状態となる死亡保険についても、スマートコントラクトによって事前に契約条件とアクションを指定しておくことで、本人死亡時も、遺族による複雑な手続きを要せずに保険金の支払いを自動化できる、といったような利用が考えられます。

もちろん、スマートコントラクトを用いた契約条件をブロックチェーンに記録しておけば、契約内容の変更や改ざんを防げますので、不正な保険金受取はできないという信頼性を担保できるのです。

このように、ブロックチェーンを基盤とする「スマートコントラクト」を応用したサービスは、契約ごとに関連するさまざまな分野に適用できるシステムとして期待されます。

仮想通貨取引所で起こったハッキング被害

8607-00081-3.jpg

改ざんや不正ができないと言われるブロックチェーン。しかし、頻繁にハッキング被害が出ているという事実もあり、品質管理の面において疑問の声もあります。国内でも被害総額の大きな事件として仮想通貨取引所のハッキング被害があり、多くのユーザーが資産を失ってしまいました。また、仮想通貨取引所などのサービス業者に限らず、個人が管理する暗号資産が盗まれるということも起きています。

ここで明確にしておきたいのは、クラッキング(悪意あるハッキング)をされているのはブロックチェーンに記録された取引データではなく、暗号資産を保管する「ウォレット」と呼ばれるデータ記録装置だということです。

つまり、ブロックチェーンのハッキングを防ぐためには、このウォレットの管理体制が非常に重要だといえます。

秘密鍵の管理体制が暗号資産の品質を左右する

ブロックチェーンを利用する代表的なシステムはビットコインシステムですが、そのビットコイン資産の実態は「秘密鍵」です。つまり、秘密鍵の所有はビットコインの所有と同義になるため、秘密鍵を失うということは暗号資産を失うということも同義といえます。

かつて仮想通貨取引所の暗号資産が盗まれる事件がありましたが、これも仮想通貨取引所が管理する秘密鍵(ユーザーの秘密鍵も含む)を盗まれたことによる被害なのです。つまり、暗号資産管理におけるブロックチェーンの品質管理は、ブロックチェーンに記録されたデータが改ざんされることではなく、「秘密鍵」の管理体制がその品質を左右します。

事実、国内外で起こった仮想通貨取引所のハッキング被害も、秘密鍵の管理にホットウォレット(常にネットワークに接続されているウォレット)を利用していたことが原因の1つです。

ハッキング被害の原因としては、ブロックチェーンに記録する前のトランザクションが改ざんされるという手口もありますが、被害の原因のほとんどは暗号資産そのものだとも言える「秘密鍵」の管理体制だといっても過言ではありません。

そのため、ブロックチェーンを利用したサービスを構築する際にも、その品質を担保するために強く意識すべき点は「データの所有を証明する秘密鍵の管理方法」だといえるでしょう。

サービスと連携すべきセキュリティの在り方

ブロックチェーンを利用したサービスは今後、私たちの生活を支えるインフラとしても大きな役割を果たすようになるでしょう。

そのような潮流のなか、エンジニアとしてとくに注視しておきたいのが、「なぜブロックチェーンは改ざん耐性が高いのか」という知識、そして「品質を担保するためのブロックチェーン関連技術についての知識」と、「システムに付随する情報の扱い方」です。なかでも秘密鍵の扱いは「暗号資産であるデータの所有」に大きくかかわるため、サービスの品質を大きく左右します。とくに暗号資産においては、「秘密鍵をオフラインで管理する」ことが、ハッキング被害を防ぐセキュリティの在り方としての基礎的な考え方です。

ブロックチェーンを利用したサービス設計の際には、「ブロックチェーンに記録されたデータは改ざん耐性があること」を理解し、秘密鍵の管理強化などのセキュリティ対策を行うことが重要です。これらを意識したサービス設計・開発を行うことで、最終的に高品質のサービスを提供することにつながるのです。

ライター:Qbook編集部

ライター

バルテス株式会社 Qbook編集部。 ソフトウェアテストや品質向上に関する記事を執筆しています。