toplogo
Sign In

이더리움 메인넷에 배포된 솔리디티 스마트 계약의 대규모 데이터셋 DISL: 연구를 위한 연료


Core Concepts
DISL 데이터셋은 이더리움 메인넷에 배포된 514,506개의 고유한 솔리디티 파일을 제공하여 실제 세계의 스마트 계약에 대한 대규모 및 다양한 데이터셋을 제공한다.
Abstract
DISL 데이터셋은 이더리움 메인넷에 배포된 스마트 계약의 대규모 데이터셋이다. 이 데이터셋은 다음과 같은 특징을 가지고 있다: 다양한 애플리케이션(DeFi, 아트 등)을 다루는 스마트 계약을 포함한다. 2022년 이후의 최신 솔리디티 버전으로 작성된 스마트 계약을 포함한다. AI 작업에 적합하도록 중복을 최소화했다. 널리 사용되는 데이터셋 플랫폼에서 지원되는 형식으로 제공된다. 데이터셋 수집 과정은 다음과 같다: Andstor 데이터셋을 초기 데이터로 사용했다. 2022년 4월 1일 이후 이더리움 블록체인에 배포된 계약을 Google BigQuery를 통해 수집했다. Etherscan API를 사용하여 수집한 계약의 소스 코드를 가져왔다. 중복 제거 과정을 거쳐 514,506개의 고유한 솔리디티 파일을 얻었다. DISL 데이터셋은 AI 기반 도구 개발과 스마트 계약 소프트웨어 공학 도구 벤치마킹 두 가지 주요 분야에서 큰 장점을 제공한다. 또한 실제 시나리오에 대한 실증적 연구에도 유용하게 활용될 수 있다.
Stats
이더리움 메인넷에 배포된 스마트 계약의 수는 3,298,271개이다. 중복을 제거한 후 데이터셋에는 514,506개의 고유한 솔리디티 파일이 포함되어 있다.
Quotes
없음

Key Insights Distilled From

by Gabriele Mor... at arxiv.org 03-26-2024

https://arxiv.org/pdf/2403.16861.pdf
DISL

Deeper Inquiries

스마트 계약 데이터셋의 다양성을 높이기 위해 어떤 추가적인 데이터 수집 방법을 고려할 수 있을까?

다양성을 높이기 위해 추가적인 데이터 수집 방법으로는 다음과 같은 접근 방법을 고려할 수 있습니다: 다양한 응용 분야 커버: 다양한 응용 분야를 커버하는 스마트 계약을 수집하여 데이터셋의 범위를 확장할 수 있습니다. 금융, 예술, 거버넌스 등 다양한 분야의 계약을 포함하여 데이터셋을 보다 다양하게 만들 수 있습니다. 다양한 프로그래밍 언어 포함: Solidity 외에도 다른 프로그래밍 언어로 작성된 스마트 계약을 수집하여 데이터셋을 다양화할 수 있습니다. 예를 들어, Vyper와 같은 다른 언어로 작성된 계약을 추가함으로써 데이터셋의 다양성을 높일 수 있습니다. 최신 버전의 계약 수집: 최신 버전의 Solidity 계약을 중점적으로 수집하여 데이터셋을 최신 상태로 유지하고 실제 시장 동향을 반영할 수 있습니다. 새로운 계약이 배포될 때마다 주기적으로 업데이트하여 데이터셋을 확장하는 것이 중요합니다.

스마트 계약 데이터셋의 중복 제거 과정에서 누락된 계약들의 특성은 무엇이며, 이를 어떻게 보완할 수 있을까?

중복 제거 과정에서 누락된 계약들은 주로 다음과 같은 특성을 가질 수 있습니다: 의존성 계약: 중복 제거 과정에서 계약의 의존성이 고려되지 않아 일부 계약이 누락될 수 있습니다. 라이브러리 사용: 일부 계약이 동일한 라이브러리를 사용하더라도 기능적으로 다를 수 있어 중복으로 처리되어 누락될 수 있습니다. 이를 보완하기 위해 다음과 같은 접근 방법을 사용할 수 있습니다: 의존성 고려: 계약의 의존성을 고려하여 중복 제거를 수행하고, 의존성을 가진 계약들을 함께 처리하여 누락을 최소화합니다. 기능적 비교: 중복으로 처리된 계약들을 기능적으로 비교하여 유사성을 확인하고, 중복 제거 과정에서 누락된 계약을 식별하여 보완합니다.

스마트 계약 데이터셋의 활용도를 높이기 위해 어떤 메타데이터를 추가로 제공할 수 있을까?

스마트 계약 데이터셋의 활용도를 높이기 위해 다음과 같은 메타데이터를 추가로 제공할 수 있습니다: 컴파일러 버전: 각 계약이 사용한 컴파일러의 버전 정보를 제공하여 계약의 환경을 이해하는 데 도움을 줍니다. 라이센스 유형: 계약이 사용하는 라이센스 유형을 명시하여 계약의 이용 조건을 파악할 수 있도록 합니다. ABI (Application Binary Interface): 계약의 ABI 정보를 제공하여 외부와의 상호작용 방법을 이해하는 데 도움을 줍니다. 최적화 여부: 계약이 최적화되었는지 여부를 표시하여 성능과 관련된 정보를 제공합니다. EVM (Ethereum Virtual Machine) 버전: 계약이 사용한 EVM 버전 정보를 제공하여 계약의 실행 환경을 이해하는 데 도움을 줍니다.
0
visual_icon
generate_icon
translate_icon
scholar_search_icon
star