[논문 리뷰] Smart Contract Upgradeability on the Ethereum Blockchain Platform: An Exploratory Study
이 연구는 검증된 계약을 분석하여 이더리움에서 스마트 계약의 업그레이드 가능성에 대해 업그레이드 패턴을 식별하고, 버전의 진화를 추적하며, 업그레이드가 계약 활동과 수명에 미치는 영향을 평가함으로써 스마트 계약의 업그레이드 가능성에 대해 조사한다. 코드 분석과 거래 추적을 통해 분석한 결과, 업그레이드 가능한 계약 중 실제로 업그레이드되는 비율은 매우 낮으며, 업그레이드는 활동 증가와 더 긴 수명과 관련이 있음을 확인하였다. 이는 업그레이드 가능성 패턴의 실세계 적용에 있어 실질적인 과제를 드러낸다.
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.
연구 동기 및 목표
- 실세계 이더리움 배포에서 스마트 계약의 업그레이드 가능성 패턴이 얼마나 보편적인지 이해하기 위해.
- 계약 버전과 업그레이드 이벤트를 추적하여 업그레이드 가능한 계약의 실제 사용 사례를 조사하기 위해.
- 실제로 업그레이드가 계약 활동 수준과 수명에 어떤 영향을 미치는지 분석하기 위해.
- 실세계 스마트 계약 개발에서 가장 흔히 사용되는 업그레이드 패턴과 그 구현 특성들을 특정하기 위해.
- 설계 시점의 업그레이드 가능성과 런타임에서의 업그레이드 사용 간 격차에 대한 실증적 통찰을 제공하기 위해.
제안 방법
- 분석을 위해 이더스캔에서 검증된 스마트 계약 메타데이터와 소스 코드를 수집하였다.
- 정규 표현식과 코드 구조 기반의 고유 정책을 적용하여 업그레이드 가능한 계약과 그 업그레이드 패턴을 식별하였다.
- 배포 타임스탬프와 버전 추적을 사용하여 계약 버전의 계보를 추적하고 업그레이드 이벤트를 식별하였다.
- 유사도 검출 및 취약성 분석 도구를 활용하여 계약 버전 간의 변경 사항을 비교하였다.
- 거래량을 측정하고 시간에 따른 회귀 모델을 사용하여 활동 수준을 계산하였다.
- 업그레이드 전후의 거래 패턴을 비교하여 업그레이드가 계약 수명과 사용자 참여도에 어떤 영향을 미치는지 평가하였다.
실험 결과
연구 질문
- RQ1RQ1: 이더리움에 배포된 스마트 계약에서 업그레이드 패턴은 얼마나 보편적인가?
- RQ2RQ2: 업그레이드 가능한 계약이 실제로 업그레이드될 가능성은 얼마나 되는가?
- RQ3RQ3: 업그레이드는 스마트 계약의 활동 수준과 수명에 어떤 영향을 미치는가?
- RQ4RQ4: 실세계 스마트 계약 개발에서 가장 흔히 사용되는 업그레이드 패턴은 무엇인가?
- RQ5RQ5: 생산용 계약에서 설계 시점의 업그레이드 가능성과 실제 업그레이드 사용 간 격차는 무엇인가?
주요 결과
- 업그레이드 가능한 계약 중 실제로 업그레이드되는 비율은 매우 낮으며, 이는 설계 기능과 실세계 사용 간의 심각한 격차를 시사한다.
- 업그레이드를 경험한 계약은 업그레이드되지 않은 계약 대비 거래량이 증가하고 수명이 더 길어지는 경향이 있다.
- 프록시 패턴이 가장 널리 쓰이는 업그레이드 가능성 접근 방식이며, 그 다음으로 다이아몬드 패턴과 기타 새로운 패턴이 뒤를 이룬다.
- 많은 계약이 상태 변화를 추적하기 위해 이벤트를 발생시키지 않거나, 배열을 사용하지 않아 버전 간 상태 진화를 추적할 수 있는 능력이 제한되어 있다.
- 업그레이드 가능성 패턴이 제공되고 있음에도 불구하고, 개발자들은 검증 가능하고 추적 가능한 업그레이드를 지원할 수 있도록 이를 구현하는 데 실패하는 경우가 많다.
- 이 연구는 업그레이드 가능성의 보편적 채택이 이루어지지 않았음을 드러내며, 대부분의 계약이 설계상 업그레이드 가능하더라도 실질적으로는 불변 상태를 유지하고 있음을 보여준다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.