特許7250178IP Force 特許公報全文掲載

技術分野

ブロックチェーンネットワークにおけるスマートコントラクトをサポートするための方法及びコントラクト書き換えフレームワークシステム

発明が解決しようとする課題[発明の詳細な説明]から抜粋

ブロックチェーンに関してこのように広く採用されている状況では、イーサリアムなどの人気のあるブロックチェーンプラットフォームの利用において、コントラクトの脆弱性を悪用して暗号通貨を盗む攻撃者の標的になることがよくある。特に重大な事件の1つとしてDAO攻撃があり、2016年に攻撃が発生した時点で、5000万米ドル相当のEtherが失われている(非特許文献[1]を参照)。それ以来、開発段階および実行時のスマートコントラクトの脆弱性を検出するために、非特許文献[2],[3],[4]に記載されているような多くの静的および動的分析ツールが提案されている。このようなアクセス制御の脆弱性の自動検出も、自動的不具合生成の分野で以前より研究されている(例えば、非特許文献[5],[6]を参照)。

課題を解決するための手段[発明の詳細な説明]から抜粋

本発明によれば、上述した目的は、ブロックチェーンネットワークにおいてスマートコントラクトをサポートするための方法によって達成される。このとき、ブロックチェーンネットワークは、ノードを有する分散ブロックチェーンネットワークであり、トランザクションを検証する各ノードは、スマートコントラクトを実行するための仮想マシンを実行する。本発明では、コントラクト書き換えフレームワークシステムが提供され、当該・・・ 続きを知財ポータルサイト IP Force にログインして見る

この特許の権利範囲[特許請求の範囲]

知財ポータルサイト IP Force にログインして確認する (無料)

この特許公報に記載されている図面[図面の簡単な説明]から抜粋

【図1】 本発明の実施形態における方法及びコントラクト書き換えフレームワークシステムを示す概略図である。
【図2】 本発明の実施形態における、書き換えツールが、元のバイナリつまり元のスマートコントラクトを中間表現に上げ、コードにパッチを当てることができることを例示した中間表現アプローチを示すブロック図である。
【図3】 本発明の実施形態における、書き換えツールが、スマートコントラクトの末尾のパッチが適用されるブロックにリンクするトランポリンジャンプによりスマートコントラクトの脆弱ブロックを置き換えることができることを例示したトランポリンアプローチの概略図である。
【図4】 本発明で開示される、任意の操作(例えば、フレームワーク、方法など)を実行する、特に、本発明の実施形態においてブロックチェーンネットワークにてスマートコントラクトをサポートするためのコントラクト書き換えフレームワークシステムの任意の操作を実行する、よう構成された情報処理システムの一例を示すブロック図であり、
【図5】 スマートコントラクトのコードの抜粋であり、整数オーバーフローにより攻撃者はビジネスロジックチェックをバイパスでき、金銭的な損失が発生することを表している。
【図6】 本発明の実施形態における自動化されたパッチ適用プロセスの全体を示す概略図である。
【図7】 ジャンプ命令の直前に配置されたプッシュ命令を使用した一定のターゲットへの典型的なジャンプを示すコード例である。
【図8】 内部関数をSolidityで呼び出すときのジャンプを示すコード例である。
【図9】 本発明の実施形態における書き換えがどのように動作するかを例示する概略図である。
【図10】 本発明の実施形態におけるバイトコードリライタによって生成された同じバイトコードのオリジナル及びパッチ適用されたバージョンを示すコードリストである。
【図11】 整数オーバーフロー/アンダーフローの脆弱性の不具合を改善するイーサリアムスマートコントラクトのCVEのリストを示す表である。
【図12】 関連するトランザクション呼び出しのガス消費におけるオーバーヘッド量と、本実施形態におけるパッチ適用されたコントラクトによって生じたコントラクトサイズの増加と、Osirisによって報告され本実施形態におけるバイトコードリライタによりパッチされたものに相当するパッチの数と、を示すテーブルである。
【図13】 オシリスによって検出された脆弱なコントラクトの平均サイズと、バイトコードパッチ後のコードサイズの増加を示す表である。
【図14】 各コントラクトのアクティブタイムラインを示す図であり、灰色の影は、これらコントラクトの脆弱性がPeckshieldによって開示される時間帯を示し、大きな中空点は、攻撃の発生を示す。
【図15】 ヘキサゴンコントラクト(上のリスト)における問題のあるSolidity lineを示すコードリストであり、Solidityは、下のリストにEVMコードを生成し、符号なし整数から2を引く代わりに、Solidityはこれを符号付き整数にして-2を加える、ことを示す。

代表図 図1本件の代表的な図

全ての図面はログインすると無料で閲覧できます。ログイン・ユーザー登録

[広告欄]

ログインすれば広告は減ります

ログインすれば広告は減ります