富士通研究所は2018年3月7日、ブロックチェーンを様々な分野に応用できるようにするため、契約を自動化するスマートコントラクト機能の安全性を高める技術を開発したと発表した。従来の検証ツールで67%しか検出できないリスクを100%検出したという。
富士通研究所のブロックチェーンの特徴の1つに、契約を自動化するスマートコントラクト機能がある。富士通研究所は今回、ブロックチェーン基盤の1つであるEthereum上で、スマートコントラクトにおいてリスクのある取引の流れを特定するアルゴリズムを開発した。さらに、ソースコード上の該当箇所を特定する技術を開発した。
拡大画像表示
スマートコントラクトのリスクを事前に検証する従来技術では、検出できるリスクの種類に漏れがあった。例えば、複数のスマートコントラクトを経由して間接的呼び出し元認証を行う場合、トランザクションの呼び出し元情報が変わるというEthereumの仕様を悪用して認証手続きを不正に回避される可能性があった。
従来の技術では、トランザクションの内部情報まで検証できないため、これを検出できなかった。一方、今回開発した技術を使うと、Ethereumのスマートコントラクトにおいて人手では見逃す可能性のあった6種類のリスクを網羅的に検出できるとしている。
従来の検証ツール(Ethereum向けスマートコントラクト分析ツールのOyente)では67%の検出率だったところ、一部の項目を除き100%検出が可能となった。精度も高く(最大で88%の正解率)、リスクの過剰指摘が少ないため、より効率的にスマートコントラクトを開発できるようになったとしている。
拡大画像表示
開発の背景について同社は、契約を自動化するスマートコントラクト機能にリスクがあった場合に、これを検出することが難しいことを挙げる。「一方、スマートコントラクトは多数の場所にコピーされて分散実行されるため、1度実行すると簡単には停止できず、スマートコントラクト内にリスクがあっても修正できない」(同社)。
実際に、ブロックチェーン上で自動投資信託アプリケーションを実現するスマートコントラクトにリスクがあったため、多額の資金が不正に移動されるという事件も発生しているという。