Skip to main content
QUICK REVIEW

[논문 리뷰] A Concurrent Perspective on Smart Contracts

Ilya Sergey, Aquinas Hobor|arXiv (Cornell University)|2017. 02. 17.
Distributed systems and fault tolerance참고 문헌 17인용 수 8
한 줄 요약

이 논문은 스마트 컨트랙트를 다수의 블록체인 트랜잭션에 의해 접근되는 공유된 가변 상태 엔티티로 모델링하기 위해 동시성 객체 유사성(analogy)을 도입한다. 이는 재진입(reentrancy) 및 트랜잭션 순서 의존성과 같은 취약성이 고전적인 동시성 버그와 유사하다는 것을 드러내며, 컨트랙트 상호작용을 공유된 객체에 접근하는 스레드 상호작용으로 매핑함으로써 기존의 공식적 검증 기법을 재사용할 수 있도록 하고, 스마트 컨트랙트 설계에서의 동기화 프리미티브와 불변식 추론(invariant reasoning)의 필요성을 강조한다.

ABSTRACT

In this paper, we explore remarkable similarities between multi-transactional behaviors of smart contracts in cryptocurrencies such as Ethereum and classical problems of shared-memory concurrency. We examine two real-world examples from the Ethereum blockchain and analyzing how they are vulnerable to bugs that are closely reminiscent to those that often occur in traditional concurrent programs. We then elaborate on the relation between observable contract behaviors and well-studied concurrency topics, such as atomicity, interference, synchronization, and resource ownership. The described contracts-as-concurrent-objects analogy provides deeper understanding of potential threats for smart contracts, indicate better engineering practices, and enable applications of existing state-of-the-art formal verification techniques.

연구 동기 및 목표

  • 공유 메모리 동시성의 고전적 문제들과 유사한 방식으로 스마트 컨트랙트에서의 동시성 유사 취약성(예: 재진입 및 트랜잭션 순서 의존성)을 식별하고 분석하기 위해 고전적 공유 메모리 동시성과의 유사성을 도출한다.
  • 스마트 컨트랙트를 다수의 트랜잭션에 의해 접근되는 동시성 객체로 보는 개념적 모델을 제안한다. 이는 스레드가 공유 메모리에 접근하는 것과 유사하다.
  • 다중 트랜잭션을 걸친 복잡한 컨트랙트 행동을 분석하기 위해 기존의 동시 프로그래밍을 위한 공식적 검증 기법을 스마트 컨트랙트 행동에 적응할 수 있음을 보여준다.
  • 간섭과 원자성 문제를 강조함으로써 스마트 컨트랙트 설계에서 더 나은 엔지니어링 관행과 동기화 메커니즘의 필요성을 주장한다.
  • 공동 작동하는 상태 전이 시스템(communicating state-transition systems, STSs)과 TLA+와 같은 도구를 활용해 고수준에서 컨트랙트 행동과 통신 패턴을 추론할 잠재력을 탐색한다.

제안 방법

  • 스마트 컨트랙트를 공유 블록체인 상태에 존재하는 동시성 객체로 모델링한다. 이는 동시 스레드가 접근하는 공유 객체와 유사하다.
  • 스레드 간 간섭, 경쟁 조건, 동기화의 유사성을 사용하여 트랜잭션 순서와 재진입이 이더리움 컨트랙트에서 버그로 이어지는 방식을 설명한다.
  • 실제 이더리움 컨트랙트(예: The DAO 및 BlockKing)를 분석하여, 트랜잭션 수준의 원자성에도 불구하고 동시성 문제가 어떻게 나타나는지 설명한다.
  • 컨트랙트 행동을 고수준에서 모델링하고 추적성(trace) 및 라이브니스 성질 검증을 가능하게 하기 위해 TLA+와 STSs와 같은 공식적 방법을 사용할 것을 제안한다.
  • 고수준 STS 모델과 저수준 컨트랙트 코드(예: Why3 또는 F*) 사이의 정밀화 증명(refinement proofs)을 통해 동시 실행 하에서의 정확성을 보장할 수 있음을 제안한다.
  • 잠금 프oxy 컨트랙트와 같은 컨트랙트 기반 동기화 프리미티브를 도입하여 간섭을 방지한다. 이는 동시 프로그래밍에서의 멀티엑스(mutex)와 유사하다.

실험 결과

연구 질문

  • RQ1스마트 컨트랙트의 다중 트랜잭션 행동은 공유 메모리 동시성의 고전적 문제들과 어떻게 유사한가?
  • RQ2이더리움 컨트랙트에서의 트랜잭션 순서 의존성과 재진입은 동시 프로그래밍에서의 경쟁 조건과 간섭과 어떤 방식으로 유사한가?
  • RQ3기존의 동시 프로그래밍을 위한 공식적 검증 기법을 다중 트랜잭션을 걸친 스마트 컨트랙트 행동을 분석하는 데 적응할 수 있는가?
  • RQ4다중 동시 접근 하에서 복합 스마트 컨트랙트의 통신 및 상태 전이 행동을 효과적으로 모델링할 수 있는 고수준 공식적 기법은 무엇인가?
  • RQ5동시성 객체 유사성의 영향은 더 안전하고 예측 가능한 스마트 컨트랙트 설계에 어떤 함의를 갖는가?

주요 결과

  • 논문은 The DAO에서 발생한 재진입 버그가 동시 환경에서 스레드 유사 간섭의 표현임을 입증한다. 이는 호출 도중 컨트랙트의 상태가 예기치 않게 수정되는 경우를 의미한다.
  • 이더리움에서의 트랜잭션 순서 의존성(TOD)은 동시 프로그래밍에서 통제되지 않은 간섭과 동일하며, 실행 순서가 정확성에 영향을 미친다.
  • 트랜잭션 원자성에도 불구하고, 여러 블록이나 트랜잭션을 걸친 동시 실행은 관찰 가능한 간섭으로 인해 안전성 성질을 위반할 수 있으며, 이는 순차적 추론의 가정을 도전한다.
  • 유사성 덕분에 TLA+와 공유 상태 전이 시스템(STSs)과 같은 공식적 검증 기법을 활용해 복잡한 컨트랙트 행동을 모델링하고 검증할 수 있다.
  • 저자들은 원자 레지스터나 잠금 프록시 컨트랙트와 같은 동기화 메커니즘이 간섭을 방지할 수 있으며, 이는 동시 프로그래밍에서의 멀티엑스와 유사하다고 주장한다.
  • 논문은 향후 컨트랙트 설계에서 간섭을 예측하고 공식 불변식 또는 정밀화 증명을 사용해 동시 접근 하에서의 정확성을 보장해야 한다고 제안한다.

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

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

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

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