Skip to main content
QUICK REVIEW

[논문 리뷰] Formal Verification of Solidity contracts in Event-B

Zhu Jian, Kai Hu|arXiv (Cornell University)|2020. 05. 04.
Blockchain Technology Applications and Security참고 문헌 9인용 수 7
한 줄 요약

이 논문은 Event-B를 사용하여 솔리디티 스마트 계약의 형식적 검증 방법을 제안한다. 제한된 솔리디티 하위집합을 Event-B 모델로 번역하여 엄격한 성질 검증을 가능하게 한다. 이 방법은 계층적 정밀화와 증명 의무 생성을 지원하며, 이는 로딘 플랫폼을 통해 해소되어 이더리움 스마트 계약의 안전성 및 보안 성질에 대한 인증을 가능하게 한다.

ABSTRACT

Smart contracts are the artifact of the blockchain that provide immutable and verifiable specifications of physical transactions. Solidity is a domain-specific programming language with the purpose of defining smart contracts. It aims at reducing the transaction costs occasioned by the execution of contracts on the distributed ledgers such as the Ethereum. However, Solidity contracts need to adhere safety and security requirements that require formal verification and certification. This paper proposes a method to meet such requirements by translating Solidity contracts to Event-B models, supporting certification. To that purpose, we define a restrained Solidity subset and a transfer function which translates Solidity contracts to Event-B models. Then we take advantage of Event-B method capabilities to refine models at different levels of abstraction to verify Solidity contracts' properties. And we can verify the generated proof obligations of the Event-B model with the help of the Rodin platform.

연구 동기 및 목표

  • 보안 취약성과 고가의 거래 리스크로 인해 솔리디티 스마트 계약의 형식적 검증이 필수적인 이유를 해결하기 위해.
  • 형식적 모델링과 검증에 적합한 제한된 솔리디티 하위집합을 정의하기 위해.
  • 형식적 분석을 위해 솔리디티 계약에서 Event-B 모델로의 체계적 번역을 수립하기 위해.
  • Event-B의 정밀화 기능을 활용하여 다양한 추상 수준에서 계약 성질을 검증하기 위해.
  • 로딘 플랫폼의 자동 증명 의무 해소를 통해 스마트 계약 성질의 인증을 가능하게 하기 위해.

제안 방법

  • 형식적 모델링에 적합성을 보장하기 위해 상속 및 복잡한 제어 흐름과 같은 복잡한 기능을 제외한 솔리디티의 제한된 하위집합을 정의한다.
  • 솔리디티 계약 구성요소를 해당 Event-B 구성요소로 매핑하는 형식적 번역 함수를 설계하여 의미적 동치성을 유지한다.
  • 변수, 불변식, 이벤트 기반 전이를 포함하여 솔리디티 계약의 상태와 동작을 표현하기 위해 Event-B 모델을 구축한다.
  • 계층적 정밀화를 활용하여 점진적으로 추상화 수준을 높이는 방식으로 계약을 모델링함으로써 모듈화된 검증을 가능하게 한다.
  • 모델 구축 과정에서 증명 의무가 자동으로 생성되며, 이는 로딘 플랫폼의 정리 증명기로 해소된다.
  • 모든 검증 조건이 형식적으로 증명됨을 보장함으로써 이 방법은 정당성 성질을 보장하는 인증을 지원한다.

실험 결과

연구 질문

  • RQ1의미적 정확성을 유지하면서 제한된 솔리디티 하위집합을 Event-B 모델로 형식적으로 번역할 수 있는가?
  • RQ2Event-B의 계층적 정밀화 기능을 어떻게 활용하여 복잡한 스마트 계약 성질을 단계적으로 검증할 수 있는가?
  • RQ3로딘 플랫폼이 솔리디티에서 Event-B로의 번역으로 발생하는 증명 의무를 어느 정도 자동으로 해소할 수 있는가?
  • RQ4이 방법은 실제 스마트 계약의 안전성 및 보안 성질을 효과적으로 검증할 수 있는가?
  • RQ5이 번역 과정은 실용적인 스마트 계약 검증을 지원하기에 충분히 타당하고 확장 가능한가?

주요 결과

  • 솔리디티에서 Event-B로의 제안된 번역은 상태 변수, 함수, 불변식과 같은 핵심 계약 구성요소를 형식적 의미론으로 성공적으로 모델링한다.
  • Event-B 정밀화의 활용은 성질 검증을 단계적으로 수행할 수 있게 하여 증명의 모듈성과 유지보수성을 향상시킨다.
  • Event-B 모델에서 생성된 증명 의무는 로딘 플랫폼을 통해 성공적으로 해소되어 검증된 성질의 정확성을 확인한다.
  • 이 방법은 재entrancy 부재 및 상태 일관성과 같은 보안 및 안전성 성질을 형식적 증명을 통해 인증할 수 있다.
  • 이 방법은 대표적인 스마트 계약 예제에서의 적용을 통해 복잡한 계약 논리에 대해서도 형식적 검증이 가능하다는 것을 입증한다.

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

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

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

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