Skip to main content
QUICK REVIEW

[논문 리뷰] An empirical analysis of smart contracts: platforms, applications, and design patterns

Massimo Bartoletti, Livio Pompianu|arXiv (Cornell University)|2017. 03. 18.
Blockchain Technology Applications and Security참고 문헌 17인용 수 43
한 줄 요약

이 논문은 비트코인과 이더리움에서 스마트 계약의 실증 분석을 제시하며, 플랫폼 간 차이, 적용 분야, 일반적인 설계 패턴을 분석한다. 834개의 이더리움 계약을 분석한 결과, 금융 응용 프로그램이 지배적임을 확인(포크 체크 패턴 사용 시 69%, 토큰/수학 패턴 사용 시 50%)하고, 월렛에서 인가 및 시간 제약 조건이 널리 사용됨을 밝혀내며, 게임 계약에서 오라클의 역할을 강조하여 도메인 특화 스마트 계약 언어 설계에 통찰을 제공한다.

ABSTRACT

Smart contracts are computer programs that can be consistently executed by a network of mutually distrusting nodes, without the arbitration of a trusted authority. Because of their resilience to tampering, smart contracts are appealing in many scenarios, especially in those which require transfers of money to respect certain agreed rules (like in financial services and in games). Over the last few years many platforms for smart contracts have been proposed, and some of them have been actually implemented and used. We study how the notion of smart contract is interpreted in some of these platforms. Focussing on the two most widespread ones, Bitcoin and Ethereum, we quantify the usage of smart contracts in relation to their application domain. We also analyse the most common programming patterns in Ethereum, where the source code of smart contracts is available.

연구 동기 및 목표

  • 스마트 계약이 비트코인과 이더리움을 포함한 다양한 블록체인 플랫폼에서 어떻게 구현되고 사용되는지 이해하기 위해.
  • 이더리움에서의 스마트 계약 응용 프로그램을 분야별로 분류하고 그 보편성을 정량화하기 위해.
  • 이더리움 스마트 계약에서 공통적으로 나타나는 프로그래밍 설계 패턴을 식별하고 분석하기 위해.
  • 설계 패턴과 응용 분야 간의 연관성을 분석하여 도메인 특화 스마트 계약 언어 설계에 기여하기 위해.
  • 스마트 계약의 보안 분석 및 도구 개선을 위한 실증적 통찰을 제공하기 위해.

제안 방법

  • 공개 저장소에서 834개의 이더리움 스마트 계약 소스 코드를 수집하고 분석하였다.
  • 기능과 사용 사례를 바탕으로 계약을 응용 분야(예: 금융, 게임, 공증, 월렛)로 분류하였다.
  • 정적 코드 분석을 통해 반복적으로 나타나는 설계 패턴(예: 인가, 시간 제약, 오라클, 포크 체크)을 식별하고 분류하였다.
  • 각 설계 패턴이 다양한 응용 분야에서 얼마나 자주 사용되었는지 빈도를 측정하였다.
  • 스마트 계약 표현력과 사용 방식에 중점을 두고 비트코인과 이더리움 간 플랫폼 수준의 차이를 비교하였다.
  • 통계적 분석을 통해 패턴 사용과 응용 카테고리(예: 금융 또는 게임 계약) 간의 상관관계를 분석하였다.

실험 결과

연구 질문

  • RQ1이더리움에서 스마트 계약의 가장 일반적인 응용 분야는 무엇인가요?
  • RQ2이더리움 스마트 계약에서 가장 자주 사용되는 설계 패턴은 무엇이며, 이는 응용 분야에 따라 어떻게 다릅니까?
  • RQ3스마트 계약의 설계 패턴은 특정 기능적 요구 사항(예: 보안, 시간 조절, 난수 생성)과 어떻게 관련이 있나요?
  • RQ4금융 스마트 계약이 토큰, 수학, 또는 포크 체크와 같은 특정 패턴에 얼마나 의존하는가?
  • RQ5월렛 및 게임 계약은 인가 또는 오라클과 같은 설계 패턴 사용에서 어떻게 다릅니까?

주요 결과

  • 포크 체크 패턴을 사용하는 계약의 69%가 금융 분야이며, 토큰 및 수학 패턴을 사용하는 계약의 50%가 금융 분야임을 확인하여 강력한 금융 사용 사례를 시사한다.
  • 포크 체크 패턴을 사용하는 계약의 69%가 금융 분야에 속해 있어, 자금 이체 이전에 분기 논리를 검증해야 하는 필요성을 반영한다.
  • 게임 계약의 25%가 오라클 패턴을 사용하며, 게임에서 오라클 사용의 74%가 난수 생성을 위해 사용되어 외부 난수 원천에 의존하고 있음을 시사한다.
  • 모든 월렛 계약이 인가 및 종료 패턴을 구현하고 있으며, 94%가 시간 제약 조건을 사용함으로써 보안 및 수명 주기 관리의 우선순위를 강조한다.
  • 게임 계약의 47%가 오라클 없이 난수를 생성하여, 로컬 난수 생성 기법이 일반적으로 사용되고 있음을 나타낸다.
  • 금융 계약의 오직 29%만이 식별된 설계 패턴을 사용하고 있어, 많은 계약이 복잡한 논리 없이 단순한 연산을 수행하고 있음을 시사한다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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