Skip to main content
QUICK REVIEW

[논문 리뷰] Smart-Corpus: an Organized Repository of Ethereum Smart Contracts Source Code and Metrics

Giuseppe Antonio Pierro, Roberto Tonelli|arXiv (Cornell University)|2020. 11. 03.
Blockchain Technology Applications and Security참고 문헌 27인용 수 4
한 줄 요약

Smart-Corpus는 유효성 검증된, 에더스캔에서 검증된 계약을 기반으로 한, 이더리움 스마트 컨트랙트의 정제되고 최신화된 저장소입니다. 이 저장소는 솔리디티 소스 코드, ABI, 바이트코드, 그리고 내재적 및 외재적 소프트웨어 메트릭스를 통합합니다. 연구자들이 GraphQL 인터페이스를 통해 효율적으로 쿼리하고 스마트 컨트랙트를 분석할 수 있도록 하여 정적 분석에 소요되는 시간과 노력을 줄입니다. 검증된, 에더스캔에서 검증된 컨트랙트로부터 사전에 계산된 메트릭스를 제공함으로써, 30,000개 이상의 컨트랙트가 이미 인덱싱되어 있으며 매일 약 100개가 추가되고 있습니다.

ABSTRACT

Many empirical software engineering studies show that there is a great need for repositories where source code is acquired, filtered and classified. During the last few years, Ethereum block explorer services have emerged as a popular project to explore and search Ethereum blockchain data such as transactions, addresses, tokens, smart-contracts' source code, prices and other activities taking place on the Ethereum blockchain. Despite the availability of this kind of services, retrieving specific information useful to empirical software engineering studies, such as the study of smart-contracts' software metrics might require many sub-tasks, such as searching specific transactions in a block, parsing files in HTML format and filtering the smart-contracts to remove duplicated code or unused smart-contracts. In this paper we afford this problem creating Smart Corpus', a Corpus of Smart Contracts in an organized reasoned and up to date repository where Solidity source code and other metadata about Ethereum smart contracts can easily and systematically be retrieved. We present the Smart Corpus' design and its initial implementation and we show how the data-set of smart contracts' source code in a variety of programming languages can be queried and processed, get useful information on smart contracts and their software metrics. The Smart Corpus aims to create a smart-contracts' repository where smart contracts data (source code, ABI and byte-code) are freely and immediately available and also classified based on the main software metrics identified in the scientific literature. Smart-contracts source code has been validated by EtherScan and each contract comes with its own associated software metrics as computed by the freely available software PASO. Moreover, Smart Corpus can be easily extended, as the number of new smart-contracts increases day by day.

연구 동기 및 목표

  • 이더리움 스마트 컨트랙트 소스 코드 및 관련 소프트웨어 메트릭스에 대한 조직적이고 접근 가능하며 구조화된 저장소의 부족을 해결하기 위해.
  • 블록체인 연구자들이 정적 분석에 소요되는 시간과 계산 비용을 줄이기 위해 사전 검증되고 사전 처리된 데이터를 제공함으로써.
  • 표준화되고 최신화된 코퍼스를 제공함으로써 스마트 컨트랙트에 대한 재현 가능한 경험 소프트웨어 공학 연구를 지원하기 위해.
  • 연구자의 특정 요구사항에 맞게 GUI 및 GraphQL 인터페이스를 통해 스마트 컨트랙트 데이터를 효율적으로 쿼리할 수 있도록 하기 위해.
  • 내재적(예: 함수 수, 이벤트 수) 및 외재적(예: 거래 수, 잔액) 메트릭스를 포함한 스마트 컨트랙트 데이터를 분류하고 풍부하게 만들기 위해.

제안 방법

  • Smart-Corpus 시스템은 주로 에더스캔을 통해 소스 코드 검증 및 메타데이터 추출을 기반으로 이더리움 블록체인 탐색기에서 스마트 컨트랙트 데이터를 수신합니다.
  • 각 컨트랙트에 대해 솔리디티 소스 코드, ABI, 바이트코드 및 관련 메타데이터를 중앙집중식으로 조직된 저장소에 추출하고 저장합니다.
  • 내재적 메트릭스(예: 함수 수, 이벤트 수, 수정자 수, 지불 가능 함수 수 등)는 오픈소스 도구 PASO를 사용하여 계산합니다.
  • 외재적 메트릭스(예: 거래 수, 에더 잔액 등)는 블록체인 거래 데이터 및 컨트랙트 상호작용 로그에서 유도합니다.
  • 연구자들이 구조화된 쿼리를 사용하여 특정 데이터 서브셋을 효율적이고 정확하게 검색할 수 있도록, GraphQL API를 구현합니다.
  • 코퍼스는 지속적으로 업데이트되며, 매일 약 100개의 새로운 컨트랙트가 추가되어 지속적인 관련성과 커버리지가 확보됩니다.

실험 결과

연구 질문

  • RQ1연구자들은 블록체인 원본 데이터를 수작업으로 처리하지 않고도 어떻게 이더리움 스마트 컨트랙트 소스 코드와 관련 소프트웨어 메트릭스를 효율적으로 검색하고 분석할 수 있을까요?
  • RQ2대규모로 검증된 코퍼스에서 유도된 실세계 스마트 컨트랙트의 가장 일반적인 구조적 패턴(예: 함수 수, 수정자 수 등)은 무엇일까요?
  • RQ3사전에 계산된, 정제된 저장소가 스마트 컨트랙트 연구에서 정적 분석에 소요되는 시간과 계산 비용을 어느 정도 줄일 수 있을까요?
  • RQ4외재적 특성(예: 거래량, 토큰 잔액 등)과 배포된 스마트 컨트랙트의 내재적 코드 복잡성 간의 상관관계는 어떻게 될까요?
  • RQ5표준화되고 개방적이며 지속적으로 업데이트되는 코퍼스는 블록체인 소프트웨어 공학 분야의 재현 가능한 연구를 지원할 수 있을까요?

주요 결과

  • Smart-Corpus 저장소는 현재 약 30,000개의 이더리움 스마트 컨트랙트를 호스팅하고 있으며, 소스 코드, ABI, 바이트코드 및 관련 메트릭스가 저장되고 검증되어 있습니다.
  • 코퍼스는 매일 업데이트되며, 평균 매일 약 100개의 새로운 컨트랙트가 추가되어 이더리움 스마트 컨트랙트 생태계의 최신 커버리지가 유지되고 있습니다.
  • 함수 수, 이벤트 수, 지ay 가능 함수 존재 여부 등의 내재적 메트릭스는 PASO 도구를 사용하여 계산되고 각 컨트랙트에 저장되어 있습니다.
  • 총 거래 수 및 에더 잔액 등의 외재적 메트릭스는 블록체인 거래 데이터에서 추출되어 각 컨트랙트의 주소와 연동되어 있습니다.
  • GraphQL 인터페이스를 통해 연구자들은 원시 데이터를 수작업으로 필터링하거나 파싱하지 않고도 정확한 데이터 서브셋(예: 20개 이상의 함수를 가진 컨트랙트)을 검색할 수 있습니다.
  • 시스템은 연구자들이 원시 블록체인 데이터를 별도로 다운로드하고 검증하며 메트릭스를 계산할 필요 없이 효율적이고 재현 가능한 연구를 수행할 수 있도록 합니다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.