Skip to main content
QUICK REVIEW

[논문 리뷰] Obsidian: Typestate and Assets for Safer Blockchain Programming

Michael Coblenz, Reed Oei|arXiv (Cornell University)|2019. 09. 08.
Blockchain Technology Applications and Security참고 문헌 43인용 수 12
한 줄 요약

Obsidian는 타입스테이트와 선형 타입을 조합하여 스마트 계약에서 흔히 발생하는 버그, 예를 들어 잘못된 상태 전이와 자산 손실을 정적 검사하는 도메인 전용 프로그래밍 언어이다. 컴파일 시점에 소유권과 상태 규율을 강제함으로써 Obsidian는 반복 코드를 줄이고 안전성을 향상시키며, 이는 파arametric 보험과 공급망 관리 분야의 사례 연구를 통해 솔리디티(Solidity)와 비교하여 입증되었다.

ABSTRACT

Blockchain platforms are coming into broad use for processing critical transactions among participants who have not established mutual trust. Many blockchains are programmable, supporting smart contracts, which maintain persistent state and support transactions that transform the state. Unfortunately, bugs in many smart contracts have been exploited by hackers. Obsidian is a novel programming language with a type system that enables static detection of bugs that are common in smart contracts today. Obsidian is based on a core calculus, Silica, for which we proved type soundness. Obsidian uses typestate to detect improper state manipulation and uses linear types to detect abuse of assets. We describe two case studies that evaluate Obsidian's applicability to the domains of parametric insurance and supply chain management, finding that Obsidian's type system facilitates reasoning about high-level states and ownership of resources. We compared our Obsidian implementation to a Solidity implementation, observing that the Solidity implementation requires much boilerplate checking and tracking of state, whereas Obsidian does this work statically.

연구 동기 및 목표

  • 스마트 계약에서 흔한 프로그래밍 실수로 인한 보안 취약성 증가 문제를 해결하기 위해.
  • 상태 조작 및 자산 오용과 관련된 버그를 정적 검출할 수 있는 프로그래밍 언어를 설계하기 위해.
  • 타입스테이트와 선형 타입을 실용적이고 사용 가능한 블록체인 개발자용 언어로 통합하기 위해.
  • 보험 및 공급망 관리 분야의 실제 사례 연구를 통해 언어의 효과성을 평가하기 위해.
  • 핵심 미니멀 계산법(Silica)을 통해 스마트 계약 프로그래밍을 위한 타당하고 형식적으로 검증된 기반을 제공하기 위해.

제안 방법

  • 형식적으로 타당성이 입증된 핵심 미니멀 계산법인 Silica 위에 구축된 표면 언어인 Obsidian를 설계함.
  • 타입스테이트를 사용하여 타당한 상태일 때에만 메서드가 호출되도록 보장함으로써 올바른 상태 전이를 강제함.
  • 선형 타입을 적용하여 자산 소유권을 추적하고 디지털 자산의 실수적 손실 또는 중복 생성을 방지함.
  • 알리아싱을 제한하는 권한 시스템을 구현하여 안전성 보장을 유지하면서도 실용적인 프로그래밍을 가능하게 함.
  • 스마트 계약과 오프체인 클라이언트 프로그램을 통합된 언어로 지원함으로써 전체 응용 스택에 걸쳐 일관된 안전성 보장을 확보함.
  • 하이퍼레지스트리 패브릭과 같은 블록체인 플랫폼과 통합하고, 이더리움 지원도 계획함.

실험 결과

연구 질문

  • RQ1실용적인 프로그래밍 언어에서 타입스테이트와 선형 타입을 효과적으로 조합하여 흔한 스마트 계약 버그를 방지할 수 있는가?
  • RQ2코드의 간결성과 안전성 측면에서 Obsidian의 접근 방식은 솔리디티와 같은 기존 언어와 비교해 어떻게 다를까?
  • RQ3Obsidian의 타입 시스템을 사용하여 강력한 안전 보장을 갖춘 비트리비얼한 실제 스마트 계약을 구축할 수 있는가?
  • RQ4스마트 계약과 클라이언트 프로그램을 위한 통합된 언어를 사용할 경우 아키텍처에 어떤 영향을 미치는가?
  • RQ5형식적 기반(Silica)은 언어의 신뢰성과 확장성에 어떻게 기여하는가?

주요 결과

  • Obsidian의 타입 시스템은 잘못된 상태 전이와 자산 손실과 같은 흔한 버그를 정적 검사로 차단하여 런타임 취약성을 줄임.
  • 솔리디티와 비교해 상태 및 자산 추적을 위한 반복 코드를 크게 줄여 더 간결하고 유지보수 용이한 프로그램을 제공함.
  • 파라미터 기반 보험과 공급망 관리 분야의 사례 연구를 통해 Obsidian의 타입스테이트와 자산 모델링이 가치 이전 및 상태 기반 연산이 필요한 분야에 잘 맞아떨어짐.
  • 문서화가 제한된 연구 프로토타입임에도 불구하고 개발자들이 비트리비얼한 스마트 계약을 성공적으로 Obsidian로 구현함.
  • 핵심 미니멀 계산법인 Silica는 형식적으로 타당성이 입증되어 Obsidian와 향후 타입스테이트 중심 언어의 신뢰할 수 있는 기반을 제공함.
  • 언어의 통합된 접근 방식은 온체인 및 오프체인 프로그래밍을 모두 아우르며 전체 응용 스택에 걸쳐 일관된 안전 보장을 가능하게 함.

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

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

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

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