Skip to main content
QUICK REVIEW

[논문 리뷰] Scilla: a Smart Contract Intermediate-Level LAnguage

Ilya Sergey, Amrit Kumar|arXiv (Cornell University)|2018. 01. 02.
Security and Verification in Computing참고 문헌 18인용 수 58
한 줄 요약

Scilla는 형식 검증 가능한 스마트 계약을 위한 중간 수준의 언어로, 계산과 블록체인 상호작용을 분리하고 자동자 기반 모델과 Coq 임베딩을 통해 형식 검증을 가능하게 한다.

ABSTRACT

This paper outlines key design principles of Scilla---an intermediate-level language for verified smart contracts. Scilla provides a clean separation between the communication aspect of smart contracts on a blockchain, allowing for the rich interaction patterns, and a programming component, which enjoys principled semantics and is amenable to formal verification. Scilla is not meant to be a high-level programming language, and we are going to use it as a translation target for high-level languages, such as Solidity, for performing program analysis and verification, before further compilation to an executable bytecode. We describe the automata-based model of Scilla, present its programming component and show how contract definitions in terms of automata streamline the process of mechanised verification of their safety and temporal properties.

연구 동기 및 목표

  • 보안 사건과 복잡한 블록체인 상호작용 속에서 신뢰할 수 있는 스마트 계약의 필요성을 고취시키는 것.
  • 계약 동작에 대해 엄격한 형식적 추론을 가능하게 하는 중간 언어로 Scilla를 제안한다.
  • 블록체인 전반의 상호작용과 계약 내부의 계산을 깔끔하게 분리하는 오토마타 기반 계산 모델을 제공한다.
  • Scilla가 Coq 임베딩을 통해 안전성 및 생존성 특성의 기계적 검증을 지원하는 방법을 보여준다.

제안 방법

  • Solidity와 같은 고급 언어를 위한 번역 대상으로 삼아 바이트코드로 컴파일되기 전에 프로그램 분석과 검증을 용이하게 하려는 중간 언어로 Scilla를 제시한다.
  • 계약이 원자적 전이로 구성된 통신 오토마타로 구조화되는 오토마타 기반 모델을 설명한다.
  • 순수 계산과 효과 있는 상태 변화의 분리, 호출과 연속 흐름을 CPS 스타일의 연속기(continuations)를 통해 구분하는 것을 설명한다.
  • 반환 흐름을 모델링하고 제어된 외부 호출을 지원하기 위해 명시적 연속기를 도입하여 비재진입성과 같은 더 안전한 상호작용 패턴을 가능하게 한다.
  • 계약 상태, 메시지, 전이를 인코딩하고 안전성 및 생존성 추론을 위한 실행 추적을 정의하는 Coq 기반 형식을 개요한다.

실험 결과

연구 질문

  • RQ1스마트 계약을 어떻게 설계하면 안전성 및 생존성 특성에 대해 엄격한 형식적 검증이 가능할까?
  • RQ2계산과 커뮤니케이션을 분리하고 오토마타 기반 계약을 사용하는 언어 설계가 계약 구성 및 정확성에 대한 추론을 향상시킬 수 있을까?
  • RQ3검증 가능성을 유지하면서 반환 흐름과 외부 호출을 모델링하기 위해 연속기를 어떻게 통합할 수 있을까?
  • RQ4바이트코드 생성 전에 검증을 가능하게 하기 위해 Solidity와 유사한 프로그램을 Scilla로 번역하는 경로는 무엇인가?

주요 결과

  • Scilla는 통신 오토마타 모델을 통해 계산과 블록체인 통신의 원칙적 분리를 제공한다.
  • 계약은 원자적 전이로 구성되며, 메시지가 전이를 촉발하여 상태 변화가 포괄적으로 분석 가능하게 한다.
  • 순수성/효과 분리와 명시적 연속기의 사용은 검증 가능성을 높이고 반환 경로를 위한 CPS 스타일 제어 흐름을 지원한다.
  • 본 연구는 Scilla를 Coq와 통합하여 계약 실행에 대한 의미론과 안전성 및 생존성에 대한 형식적 증명을 기계적으로 다룬다.
  • 크라우드펀딩 예는 워크플로와 오토마타 기반 검증 접근법을 설명한다(개념적 모델, 수치 결과 아님).

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

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

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

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