[논문 리뷰] Smart Contract Design Meets State Machine Synthesis: Case Studies
이 논문은 선형 시간 논리(LTL) 합성과 유한 상태 기계(FSM) 모델링을 활용하여 정의 기반 접근 방식을 제안하여 정확한 계약을 구축하는 스마트 계약을 자동으로 생성한다. 계약 행동을 LTL 공식으로 표현하고 테스트 시나리오를 통합함으로써, 형식적 정확성 보장을 받는 보안성 확보된 실행 가능한 솔리디티 코드로 컴iles되는 정확한 계약을 구현한 FSM을 합성한다. 캐스팅, 경매, 라이선스 등 사례 연구를 통해 종단 간 검증 및 형식적 정확성 보장 하에 코드 생성이 가능함을 입증한다.
Modern blockchain systems support creation of smart contracts -- stateful programs hosted and executed on a blockchain. Smart contracts hold and transfer significant amounts of digital currency which makes them an attractive target for security attacks. It has been shown that many contracts deployed to public ledgers contain security vulnerabilities. Moreover, the design of blockchain systems does not allow the code of the smart contract to be changed after it has been deployed to the system. Therefore, it is important to guarantee the correctness of smart contracts prior to their deployment. Formal verification is widely used to check smart contracts for correctness with respect to given specification. In this work we consider program synthesis techniques in which the specification is used to generate correct-by-construction programs. We focus on one of the special cases of program synthesis where programs are modeled with finite state machines (FSMs). We show how FSM synthesis can be applied to the problem of automatic smart contract generation. Several case studies of smart contracts are outlined: crowdfunding platform, blinded auction and a license contract. For each case study we specify the corresponding smart contract with a set of formulas in linear temporal logic (LTL) and use this specification together with test scenarios to synthesize a FSM model for that contract. These models are later used to generate executable Solidity code which can be directly used in a blockchain system.
연구 동기 및 목표
- 배포 이전에 정확한 계약을 구축하는 방식으로 스마트 계약 보안의 핵심 과제를 해결하기 위해.
- 스마트 계약의 상대적으로 작고 상태 기반 특성에 비추어, 유한 상태 기계(FSM)를 통한 프로그램 합성 기법이 스마트 계약 개발에 효과적으로 적용될 수 있는지 탐색하기 위해.
- LTL 사양과 테스트 시나리오로부터 FSM을 합성함으로써 형식적 사양과 실행 가능한 코드를 연결하여 시간 논리 준수를 보장하기 위해.
- 캐스팅, 익명 입찰 경매, 라이선스 계약을 포함한 사례 연구를 통해 이 접근 방식의 실현 가능성과 실용성을 입증하기 위해.
- 미래의 스마트 계약에서 소스 수준 검증 및 가스 인식 속성 모델링과의 통합을 위한 기반을 마련하기 위해.
제안 방법
- 스마트 계약을 확장된 유한 상태 기계(EFSM)로 모델링하며, 입력 이벤트는 계약 메서드에 대응하고 출력 동작은 메서드의 구현을 나타낸다.
- 형식적 사양은 선형 시간 논리(LTL)로 표현되며, 관리자, 안전성 및 라이브니스 조건과 같은 원하는 행동적 성질을 캡처한다.
- 정확한 계약을 위한 FSM 모델 합성을 유도하기 위해 LTL 공식과 함께 테스트 시나리오를 사용하여 행동적 일치를 보장한다.
- 합성된 FSM은 기존 도구인 VeriSolid와 달리 이벤트당 다중 전이를 지원하는 고유한 코드 생성 도구(fsmc)를 사용하여 실행 가능한 솔리디티 코드로 컴파일된다.
- EFSM 도구를 활용하여 FSM 합성을 수행하고 시간 논리 검증을 통합하여 생성된 계약이 지정된 안전성 및 라이브니스 성질을 충족하는지 보장한다.
- 프레임워크는 다중 계약 시스템으로의 확장과 소스 수준 검증 기법과의 조합을 지원하여 신뢰성 향상을 도모한다.
실험 결과
연구 질문
- RQ1LTL 기반 프로그램 합성은 형식적 행동 보장을 제공하는 정확한 계약을 생성하는 데 효과적으로 작용할 수 있는가?
- RQ2유한 상태 기계 합성은 캐스팅 및 경매 시스템과 같은 실제 스마트 계약의 제어 흐름을 어느 정도 정확하게 모델링할 수 있는가?
- RQ3테스트 시나리오를 LTL 사양과 통합하여 합성된 FSM 모델의 정밀도와 실용성을 향상시킬 수 있는가?
- RQ4LTL이 복잡한 스마트 계약 성질을 표현하는 데에는 어떤 한계가 있으며, 실무에서 이를 어떻게 보완할 수 있는가?
- RQ5합성 파이프라인은 가스 비용과 코인 이체와 같은 블록체인 내 고려 사항을 형식적 사양에 통합할 수 있는가?
주요 결과
- 제안된 방법은 캐스팅, 익명 입찰 경매, 라이선스 계약의 세 가지 다른 스마트 계약 사용 사례에 대해 정확한 FSM 모델을 성공적으로 합성하였으며, 모두 형식적 LTL 사양에 대해 검증되었다.
- 각 사례 연구에서 합성 과정이 몇 초 내로 완료되어, 일반 프로그램 합성의 결정 불가능성에도 불구하고 이 접근 방식의 실용적 효율성을 입증하였다.
- 생성된 솔리디티 코드는 주어진 LTL 성질에 대해 정확한 계약을 구현하였으며, "noRemove"와 같은 관리자 조건과 "donate"가 최종적으로 승인을 이끌어내는 라이브니스 조건을 포함하였다.
- 고유한 도구 fsmc는 이벤트당 다중 전이를 지원하여 VeriSolid와 같은 기존 도구의 핵심 한계를 극복하였으며, 신뢰성 있는 코드 생성을 촉진하였다.
- FSM 합성과 LTL의 조합이 스마트 계약에 대해 실현 가능하며, 자동화되고 형식적으로 검증된 계약 배포의 길을 열어주었다.
- LTL이 특정 성질(예: "φ가 ψ가 발생하지 않은 동안 무한히 발생할 수 있음")을 표현하는 데에 표현력이 부족한 점은, 모든 FSM 전이를 커버하는 충분히 긴 테스트 시나리오를 사용하여 이로 인한 한계를 보완하였다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.