このページの本文へ移動
  1. ホーム >
  2. プレスリリース >
  3. ブロックチェーンのリスクを検証する技術を開発

PRESS RELEASE (技術)

2018年3月7日
株式会社富士通研究所
富士通研究開発中心有限公司

ブロックチェーンのリスクを検証する技術を開発

網羅的にリスクを自動検出し、スマートコントラクトの安全性を向上

株式会社富士通研究所(注1)(以下、富士通研究所)および中国富士通研究開発中心(注2)は、ブロックチェーン上の取引の自動処理プログラムであるスマートコントラクトのリスクを事前に検証し、ソースコード上での該当箇所を特定する技術を実現しました。

ビットコインの基盤として考案されたブロックチェーン技術は、金融以外にも不動産やヘルスケアといった様々な分野への応用が期待されています。しかし、スマートコントラクトにリスクがあるとビジネス上の損失に直結するため、システムとしてその信頼性の向上が課題になっています。今回、ブロックチェーンアプリケーションの実行基盤の一つである Ethereum(注3)上で、シンボリック実行技術(注4)を利用してリスクのある取引の流れを特定するアルゴリズムを開発することで、人手では見逃す可能性のあったスマートコントラクトの6種類のリスク(図1)を網羅的に検出可能となりました。さらにソースコード上の該当箇所を特定する技術を開発しました。これにより、ブロックチェーン開発者は、より安全性の高いスマートコントラクトを迅速に開発できるようになります。

本技術の詳細は、2月26日(月曜日)から28日(水曜日)までフランス パリで開催された国際会議「BSC(Blockchains and Smart Contracts Workshop)2018」にて発表しました。

開発の背景

ブロックチェーンは、信頼できる第三者を介することなくデータが改ざんされていないことを保証することができ、金融分野だけでなく、証券管理、不動産登記、ヘルスケア、電子政府といった他分野への適用も期待されています。

ブロックチェーンには、スマートコントラクトと呼ばれるシステム上で契約を自動化する機能があり、これを利用することで、契約の条件確認や履行までを自動的に実行することができます。スマートコントラクトは多数の場所にコピーされて分散実行されるため一度実行すると簡単には停止できず、スマートコントラクト内にリスクがあっても修正ができません。実際に、ブロックチェーン上で自動投資信託アプリケーションを実現するスマートコントラクトにリスクがあったため、多額の資金が不正に移動されるという事件も発生しています。

課題

ブロックチェーンアプリケーションの実行基盤の一つであるEthereumでは、スマートコントラクトのリスクは大きく6種類に分類されますが(図1)、スマートコントラクトのリスクを事前に検証する従来技術では、検出できるリスクの種類に漏れがありました。例えば、複数のスマートコントラクトを経由して間接的呼び出し元認証を行う場合、トランザクションの呼び出し元情報が変わるというEthereumの仕様を悪用して認証手続きを不正に回避される可能性がありますが、従来技術では、トランザクションの内部情報まで検証できないため検出することができませんでした。

図1 検出可能なスマートコントラクトのリスクの種類
図1 検出可能なスマートコントラクトのリスクの種類

開発した技術

今回、Ethereumにおいて、これまで検出できなかったスマートコントラクトのリスクを自動的に検出し、さらに、ソースコード上でその該当箇所を特定する技術を開発しました(図2)。

図2 スマートコントラクトのリスクの検出と、該当箇所の高精度な特定
図2 スマートコントラクトのリスクの検出と、該当箇所の高精度な特定

開発した技術の特長は以下のとおりです。

  1. シンボリック実行技術を用いた、スマートコントラクトのリスク検出技術

    今回、Ethereumの言語仕様を悪用してトランザクションの呼び出し元が詐称されるリスクに対して、シンボリック実行を利用して、ソースコードについて様々な条件での取引を仮想的に実行し、予めルール化した認証に至るまでの不正な処理の流れや、不正につながるEthereum特有のコードパターンとの照合結果やブロックチェーン特有の取引記録へのアクセスの有無に基づき、ソースコードの欠陥を総合的に判定するアルゴリズムを開発しました。これにより、漏れがなく、かつ、高精度なリスクの検出を実現しました。

  2. 発見したリスクのソースコード上の該当箇所を高精度で特定する技術

    発見したリスクが、元のソースコードのどの部分に該当するかを高精度に特定する技術を開発しました。Ethereumの実行ファイルに対応するソースコード情報の付加されたデバック用の実行ファイルから、未使用のコマンドを除去することでシンボリック実行を可能とし、仮想的に実行される処理コマンドの種類と順序などから、実行ファイルとデバック用の実行ファイルの対応関係を推定することで、実行ファイルから発見されたリスクに対応するソースコード箇所の特定を可能にしました。

効果

今回開発した技術を用いることで、従来の検証ツール(注5)では67%の検出率だったところ、一部の項目を除き100%検出が可能となり、さらに精度として最大で88%の正解率を実現し、正解率の高いリスクの検出およびソースコード上のリスク箇所特定が可能となりました。リスクの過剰指摘が少ないため、より効率的にスマートコントラクトの開発を行うことができるようになり、リスク箇所の特定技術とあわせて、仕様理解、コード調査・修正など開発に関わる作業を削減する効果も期待されます。これにより、ブロックチェーン技術の様々な分野への効率的な適用に貢献することができます。

今後

富士通研究所は今後、EthereumだけではなくThe Linux Foundationが主催するHyperledgerにおけるブロックチェーンフレームワークの一つであるHyperledger Fabric(注6)向けの検証技術の開発も進め、2018年度中の実用化を目指します。また、スマートコントラクトの検証技術だけではなく、ブロックチェーンを活用したセキュアなシステム構築に関する技術開発も幅広く進めていきます。

商標について

記載されている製品名などの固有名詞は、各社の商標または登録商標です。

以上

注釈

注1 株式会社富士通研究所:
本社 神奈川県川崎市、代表取締役社長 佐々木繁
注2 中国富士通研究開発中心:
本社 北京市、董事長 佐々木繁
注3 Ethereum:
主にパブリック向けのブロックチェーンアプリケーションの実行基盤。(https://www.ethereum.org/
注4 シンボリック実行技術:
あらゆる変数が取りうる値に応じたプログラムの動作を漏れなく調べる技術。
注5 従来の検証ツール:
Ethereum向けスマートコントラクト分析ツールであるOyenteにより検証。
注6 Hyperledger Fabric:
Hyperledgerプロジェクトが実装するブロックチェーンフレームワークの一つであり、モジュラーアーキテクチャによりアプリケーションやソリューションの基盤とすることを目指している。Hyperledger Fabricはコンセンサスやユーザ管理サービスといったコンポーネントをPlug-and-playできるようにし、コンテナ技術を活かして”チェーンコード”と呼ばれる、システムのアプリケーションロジックを構成するスマートコントラクトをホストしている。(https://hyperledger.org/projects/fabric

本件に関するお問い合わせ

株式会社富士通研究所
システム技術研究所
電話 044-754-2675(直通)
メール labs-bcdev-inquiry@dl.jp.fujitsu.com


プレスリリースに記載された製品の価格、仕様、サービス内容、お問い合わせ先などは、発表日現在のものです。その後予告なしに変更されることがあります。あらかじめご了承ください。