2018年3月7日日本経済新聞(デジタル版)にて、仮想通貨の基盤となっている技術「ブロックチェーン」のリスクを検証する技術を開発したとニュースになりました。ブロックチェーンは絶対改ざんができない、安全性が高いと言われていますが、欠陥があった場合ハッキングされ仮想通貨が不正に送金されてしまうケースもあります。そういったケースを未然に防ぐにはプログラムを検証する必要があります。富士通が開発した自動検出する技術についてご説明します。

ブロックチェーンに欠陥がある場合とは?

安全な仮想通貨取引に欠かせないブロックチェーン安全性が高いと言われているブロックチェーンですが、過去にハッキングされ構築されたスマートコントラクトに欠陥があると分かったケースもあります。

非中央集権の投資ファンドの1つ「THE DAOプロジェクト」が2016年にありました。このプロジェクトの仮想通貨DAOはイーサリアムのスマートコイントラクトを利用し作られました。しかしDAOが公開されたわずか2ヶ月後、システムの欠陥を突かれDAOのスマートコントラクトがハッキングされ、プロジェクトに集まっていた資金の約1/3(当時50億円:約360万ETH)が盗まれました。

損害の対処法は「ハードフォークによってハッカーに盗まれる前の状態に戻す」という手段が取られ、不正な移動資金はなかったことになり、ハッカーが盗んだETHは使えなくなりました。こういったミスが起きる確率は低いですが、もし欠陥があった場合は一瞬で莫大な資金が消えてしまう可能性もあります。

ここで勘違いしがちなのはイーサリアムのシステムに欠陥があったのではなく、イーサリアムのスマートコントラクト上で作られた「THE DAO」内のコードにありました。メインチェーン上で作られた仮想通貨に問題があると、このように基盤になっている仮想通貨が不正送金されてしまうケースもあります。

そういったブロックチェーンのシステムを検証することで、そういったトラブルを未然に防ぐことも可能になります。

仮想通貨間取引の安全性と透明性が必要

富士通は以前から「ブロックチェーン」が安全な取引には欠かせないと技術だと推奨しています。またブロックチェーンの安全性を握っている「秘密鍵」を適切な管理を行なっていれば、ブロックチェーンを改ざんされることもなく、安全で透明性の高い取引が低コストで行うことが可能になります。

ビットコインのような通貨としての取引だけでなく、ビジネスに活用されるブロックチェーンも今後増えてきます。そういったビジネス向けブロックチェーンの仕組みを決める国際的な団体「ハイパーレジャー・プロジェクト」という団体があり、富士通はそこのプレミアムメンバーとして選ばれています。

富士通は広い分野でブロックチェーンが使われる場合、取引が現金ではなく複数の仮想通貨になる場合にあります。また複数のブロックチェーンをまたがる取引も出てきた場合、安全性や透明性の確保が今後はさらに求められ、課題となると話しています。

富士通は以前からスマートコントラクトの安全性を向上すべく自動でブロックチェーンのリスクを検証する技術を開発しました。

ブロックチェーンのリスクを検証するに至った背景

安全なブロックチェーンのリスクを検証する技術を富士通が開発富士通研究所は通貨としての取引以外にも様々な分野での応用が期待されているスマートコントラクトに、もし欠陥があった場合、ビジネス上の損失に直結するため、プログラムの信頼性や安全性が課題になっていました。

スマートコイントラクトはブロックチェーン上にあるため、一度実行されることで多数の場所にコピーされ分散実行されるので、実行後は簡単に停止させることができず、もしスマートコイントラクト内に欠陥があった場合でも修正ができない点がネックでした。

実際にあった事例で、自動投資信託アプリをブロックチェーン上で実現するスマートコントラクトに欠陥があり、その結果、多額の資金が不正に移動してしまった事件が過去にあります。またこういった欠陥は、開発段階で人がチェックしても見逃してしまう可能性もあり、スマートコントラクトを導入したくても「もしもを考えると」なかなか導入に踏み切れない企業もあったはずです。

6種類のリスクをほぼ正確に検出する技術を構築

富士通研究所は開発した検証プログラムを仮想的に起動させ、様々な取引で検証を繰り返し、プログラムが欠陥を特定することができました。これにより従来ツールより、格段に性能が上がりました。

スマートコントラクのリスクになりえるタイプは6種類あり、従来ツールでは全てのタイプを検証することができませんでした。例えば、従来の技術ではトランザクションの中身まで検証ができず、イーサリアムの使用を悪用し、認証手続きを不正に回避するプログラムが存在しました。

今回の開発で今までは検出できなかったスマートコイントラクトのリスクを自動的に検出することが可能になりました。スマートコイントラクトを不正アクセスする側は、ソースコードに隠れているバグを悪用します。そこで今回開発された検証ツールのアルゴリズムは、スマートコイントラクトに隠れているバグを検出することに成功しました。

●富士通ホームページに掲載されている「開発した技術の特徴」
・シンボリック実行技術を用いた、スマートコイントラクトのリスク検出技術
・発見したリスクのソースコード上の該当箇所を高精度で特定する技術

2018年度中の実用化に向けて

富士通研究所によって開発された技術を利用することで、従来の検証ツールでは67%の検出率が、100%の検出が可能になりました(一部の項目は除く)。バグの位置を得する精度としては、もっとも高い正確率は88%の精度を叩き出したそうです。

バグがソースコードのどこに隠れているのか場所の特定が正確になったことで、スマートコントラクトのコード調査や修正などが効率的に行えるようになり、開発に関わる作業を少なくすることができると期待されています。

今後はイーサリアムだけでなく、The Linux Foundationが主催するブロックチェーンフレームワークの1つであるHyperledger Fabric向けの検証システムも開発していく予定です。またスマートコイントラクトの検証システムだけでなく、ブロックチェーンを活用した安全なシステムを構築する技術の開発を進めていくそうです。

また富士通研究所では「複数のブロックチェーンを安全に連携する技術」をすでに開発しており、つまり複数のブロックチェーンをまたがる取引であっても安全に確実に行えるようにし、さらに安全に連携させる新技術を、金融含め様々な分野でのブロックチェーンを活用した場合の業務の検証などを進めていく予定です。

最近では大手の銀行がブロックチェーンを導入し、業務の効率化を図っています。改ざんされない安全性の高いシステムではありますが、システムを構築した時点でプログラムに欠陥はないのかは、100%ではわかりませんでした。それが富士通の開発した技術により安全性を証明することができれば、安心してリリースすることができるので、今後ブロックチェーンを導入する企業も増えてくる可能性もあります。