【図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を加える、ことを示す。