Skip to main content
QUICK REVIEW

[論文レビュー] Smart Contracts Software Metrics: a First Study

Roberto Tonelli, Giuseppe Destefanis|arXiv (Cornell University)|Feb 5, 2018
Blockchain Technology Applications and Security被引用数 15
ひとこと要約

本研究では、EthereumのSolidityで書かれた12,000件以上のスマートコントラクトのソフトウェアメトリクスを分析し、ブロックチェーンの制約によって伝統的なソフトウェアシステムとは異なる統計的性質を示すかどうかを評価した。主な発見は、スマートコントラクトのメトリクスが、特にコード行数に関して、伝統的なソフトウェアで一般的な肥大尾のべき乗則とは対照的に、著しく制限された値の範囲を示し、対数正規分布でよりよく記述されることである。これは、ブロックチェーンのリソース制限が強い影響を与えていることを示している。

ABSTRACT

Smart contracts (SC) are software codes which reside and run over a blockchain. The code can be written in different languages with the common purpose of implementing various kinds of transactions onto the hosting blockchain, They are ruled by the blockchain infrastructure and work in order to satisfy conditions typical of traditional contracts. The software code must satisfy constrains strongly context dependent which are quite different from traditional software code. In particular, since the bytecode is uploaded in the hosting blockchain, size, computational resources, interaction between different parts of software are all limited and even if the specific software languages implement more or less the same constructs of traditional languages there is not the same freedom as in normal software development. SC software is expected to reflect these constrains on SC software metrics which should display metric values characteristic of the domain and different from more traditional software metrics. We tested this hypothesis on the code of more than twelve thousands SC written in Solidity and uploaded on the Ethereum blockchain. We downloaded the SC from a public repository and computed the statistics of a set of software metrics related to SC and compared them to the metrics extracted from more traditional software projects. Our results show that generally Smart Contracts metrics have ranges more restricted than the corresponding metrics in traditional software systems. Some of the stylized facts, like power law in the tail of the distribution of some metrics, are only approximate but the lines of code follow a log normal distribution which reminds of the same behavior already found in traditional software systems.

研究の動機と目的

  • ブロックチェーン固有の制約の影響により、スマートコントラクトのソフトウェアメトリクスが伝統的なソフトウェアとは異なる統計的性質を示すかどうかを調査すること。
  • サイズ、計算コスト、不変性などのリソース制限が、スマートコントラクトのメトリクス分布に与える影響を評価すること。
  • スマートコントラクトのメトリクス(例:コード行数、関数、バイトコード)の分布パターンを、伝統的なソフトウェアシステムのものと比較すること。
  • LOC、ABI、バイトコードなどのメトリクスが、べき乗則や対数正規分布といった既知の統計的分布に従うかどうかを評価すること。
  • スマートコントラクト開発の実践が、デプロイおよび実行制約の影響により、外れ値のない、きめの細かい境界を持つメトリクス分布を生じるかどうかを特定すること。

提案手法

  • Ethereumブロックチェーンにデプロイされた12,000件以上のスマートコントラクトから、ソースコード、ABI、バイトコードを収集・分析した。
  • コード行数(LOC)、関数、コメント、循環的複雑度、コントラクトサイズなどの標準的なソフトウェアメトリクスを算出した。
  • メトリクス分布における対数正規分布およびべき乗則の適合を検証する統計的フィッティング手法を適用した。
  • 特に本体部および尾部領域の適合度を評価するために、決定係数(R²)を用いた。
  • スマートコントラクトのメトリクス分布を、伝統的なソフトウェアシステムのものと比較し、分野特有の差異を特定した。
  • 不変性、ガスコストなどのブロックチェーン制約が、メトリクスのばらつきおよび分布形状に与える影響を分析した。

実験結果

リサーチクエスチョン

  • RQ1スマートコントラクトのソフトウェアメトリクスは、伝統的なソフトウェアシステムとは異なる統計的分布を示すか?
  • RQ2不変性やガスコストなどのブロックチェーン制約が、スマートコントラクトにおけるメトリクス値の範囲をどの程度制限しているか?
  • RQ3コード行数や関数などのスマートコントラクトメトリクスの分布に最もよく適合する統計的分布は、対数正規分布かべき乗則のどちらか?
  • RQ4伝統的なソフトウェアで見られるように、スマートコントラクトのメトリクス分布に顕著な外れ値や肥大尾が存在するか?
  • RQ5ABIおよびバイトコードのサイズはスマートコントラクト間でどのように比較されるか?ベル型分布か重尾分布に従うか?

主な発見

  • スマートコントラクトのコード行数(LOC)メトリクスは、R²が0.98を超える対数正規分布を示し、伝統的なソフトウェアシステムと密接に一致している。
  • 関数、空白行、イベントなど、大多数のスマートコントラクトメトリクスは、ブロックチェーンリソース制約の影響により値の範囲が制限されており、顕著な外れ値や肥大尾は存在しない。
  • べき乗則モデルは一部の分布の尾部にやや良い適合を示したが、特にLOCに関しては、対数正規分布がデータの本体部をよりよく説明していた。
  • コメント、アドレス、循環的複雑度、ABIなどのメトリクスは、尾部で対数正規分布の適合が悪く、最大値に上限があることが示唆された。
  • マッピングおよびモディファイアのメトリクスは、本体部においてべき乗則が対数正規分布よりもよく適合しており、構造的パターンの違いを示唆している。
  • バイトコードおよびABIメトリクスは、初期段階で対数正規曲線と重なったが、実際の分布はより早く低下しており、デプロイ制約による切り詰め(truncate)が示唆された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。