Skip to main content
QUICK REVIEW

[論文レビュー] Smart Contract Upgradeability on the Ethereum Blockchain Platform: An Exploratory Study

Ilham Qasse, Mohammad Hamdaqa|arXiv (Cornell University)|Apr 13, 2023
Blockchain Technology Applications and Security被引用数 4
ひとこと要約

本研究では、Ethereumにおけるスマートコントラクトのアップグレード可能化を、検証済みコントラクトの分析を通じて調査し、アップグレードパターンの特定、バージョンの進化の追跡、アップグレードがコントラクト活動および存続期間に与える影響の評価を目的としている。コード解析と取引トレースを用いた分析の結果、アップグレード可能なコントラクトのわずか一部しか実際にアップグレードされておらず、アップグレードは活動性の増加と存続期間の延長と相関していることが判明した。これは、実世界におけるアップグレード可能化パターンの採用に伴う実務的課題を浮き彫りにしている。

ABSTRACT

Context: Smart contracts are computerized self-executing contracts that contain clauses, which are enforced once certain conditions are met. Smart contracts are immutable by design and cannot be modified once deployed, which ensures trustlessness. Despite smart contracts' immutability benefits, upgrading contract code is still necessary for bug fixes and potential feature improvements. In the past few years, the smart contract community introduced several practices for upgrading smart contracts. Upgradeable contracts are smart contracts that exhibit these practices and are designed with upgradeability in mind. During the upgrade process, a new smart contract version is deployed with the desired modification, and subsequent user requests will be forwarded to the latest version (upgraded contract). Nevertheless, little is known about the characteristics of the upgrading practices, how developers apply them, and how upgrading impacts contract usage. Objectives: This paper aims to characterize smart contract upgrading patterns and analyze their prevalence based on the deployed contracts that exhibit these patterns. Furthermore, we intend to investigate the reasons why developers upgrade contracts (e.g., introduce features, fix vulnerabilities) and how upgrades affect the adoption and life span of a contract in practice. Method: We collect deployed smart contracts metadata and source codes to identify contracts that exhibit certain upgrade patterns (upgradeable contracts) based on a set of policies. Then we trace smart contract versions for each upgradable contract and identify the changes in contract versions using similarity and vulnerabilities detection tools. Finally, we plan to analyze the impact of upgrading on contract usage based on the number of transactions received and the lifetime of the contract version.

研究の動機と目的

  • 実世界のEthereumデプロイメントにおけるスマートコントラクトのアップグレード可能化パターンの普及状況と採用状況を理解すること。
  • コントラクトのバージョンとアップグレードイベントを追跡することで、アップグレード可能なコントラクトの実際の使用状況を調査すること。
  • 実際の運用において、アップグレードがコントラクトの活動レベルと存続期間にどのように影響するかを分析すること。
  • 一般的に使用されているアップグレードパターンとその実装特性を特定すること。
  • 設計段階でのアップグレード可能化とランタイムでのアップグレード採用の間のギャップを、実証的知見として提供すること。

提案手法

  • Etherscanから入手した検証済みスマートコントラクトのメタデータおよびソースコードを収集し、分析に用いた。
  • 正規表現およびコード構造に基づくカスタムポリシーを適用し、アップグレード可能なコントラクトおよびそのアップグレードパターンを同定した。
  • デプロイ時刻とバージョン追跡を用いてコントラクトのバージョンラインレージをトレースし、アップグレードイベントを特定した。
  • 類似性検出および脆弱性解析ツールを用いて、コントラクトの各バージョン間での変更を比較した。
  • 取引件数を用いてコントラクト活動を測定し、時間経過に伴う活動レベルを回帰モデルを用いて算出した。
  • 前回アップグレード前後における取引パターンの比較を通じて、アップグレードがコントラクトの存続期間およびユーザー参加度に与える影響を評価した。

実験結果

リサーチクエスチョン

  • RQ1RQ1: Ethereumにデプロイされたスマートコントラクトにおいて、アップグレードパターンはどの程度普及しているか?
  • RQ2RQ2: アップグレード可能なコントラクトは、実際の運用でどの程度アップグレードされる可能性があるか?
  • RQ3RQ3: アップグレードは、スマートコントラクトの活動レベルおよび存続期間にどのように影響するか?
  • RQ4RQ4: 実世界のスマートコントラクト開発において、最も一般的に使用されているアップグレードパターンは何か?
  • RQ5RQ5: 本番環境のコントラクトにおいて、設計段階でのアップグレード可能化と実際のアップグレード使用の間には、どの程度のギャップが存在するか?

主な発見

  • アップグレード可能なコントラクトのわずか一部しか実際にアップグレードされていないため、設計上の能力と実世界での使用状況の間には顕著なギャップがあることが示された。
  • アップグレードが行われたコントラクトは、アップグレードが行われないコントラクトと比較して、取引件数が増加し、存続期間も長くなった。
  • プロキシパターンが最も普及したアップグレード可能化アプローチであり、次にダイヤモンドパターン、その他の新興パターンが続く。
  • 多くのコントラクトがイベントを発行せず、状態変更を追跡する際に配列も使用していないため、バージョン間での状態の進化を追跡する能力が制限されている。
  • アップグレード可能化パターンが利用可能であるにもかかわらず、開発者はしばしば検証可能で追跡可能なアップグレードを可能にする方法でそれらを実装していない。
  • 本研究では、アップグレード可能化が均一に採用されているわけではなく、多くのコントラクトが設計上はアップグレード可能であるものの、実際には不変のままに留まっていることが明らかになった。

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

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

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

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