[논문 리뷰] WhylSon: Proving your Michelson Smart Contracts in Why3
WhylSon은 Why3 프레임워크를 사용하여 Michelson 스마트 컨트랙트를 WhyML로 번역함으로써 형식 검증을 위한 자동화된 증명 생성을 가능하게 하는 도구입니다. 이는 깊이 있는 임베딩 방식을 통해 Michelson의 의미론을 표현하여 Tezos 스마트 컨트랙트의 정확성을 높은 자동화 수준으로 검증할 수 있도록 합니다. 기존의 형식 검증 파ip라인과의 통합도 가능합니다.
This paper introduces WhylSon, a deductive verification tool for smart contracts written in Michelson, which is the low-level language of the Tezos blockchain. WhylSon accepts a formally specified Michelson contract and automatically translates it to an equivalent program written in WhyML, the programming and specification language of the Why3 framework. Smart contract instructions are mapped into a corresponding WhyML shallow-embedding of the their axiomatic semantics, which we also developed in the context of this work. One major advantage of this approach is that it allows an out-of-the-box integration with the Why3 framework, namely its VCGen and the backend support for several automated theorem provers. We also discuss the use of WhylSon to automatically prove the correctness of diverse annotated smart contracts.
연구 동기 및 목표
- 스마트 컨트랙트의 불가역성과 금융 논리에 대한 점점 증가하는 활용도로 인해 Tezos 스마트 컨트랙트의 형식 검증이 필수적인 요구사항이 되었기 때문이다.
- Michelson 스마트 컨트랙트의 검증 과정을 자동화하여 수동 증명 작업을 최소화하기 위함이다.
- 기존의 자동 및 상호작용 정리 증명 도구를 활용하기 위해 Why3 프레임워크와의 원활한 통합을 제공하기 위함이다.
- 고수준 추상화가 아닌 실제 실행 수준(Michelson)에서의 검증을 가능하게 하여, 검증된 코드의 정확성과 신뢰도를 확보하기 위함이다.
- 향후 LIGO나 SmartPy와 같은 고수준 언어를 위한 검증 파이프라인을 지원하기 위해 Michelson을 검증된 백엔드로 활용할 수 있도록 하기 위함이다.
제안 방법
- 도구는 Michelson 컨트랙트를 분석하고, Michelson의 공리적 의미론을 얕은 임베딩 방식으로 사용하여 등가의 WhyML 코드로 변환한다.
- Why3 내에서 Michelson의 고유한 공리적 의미론을 정의하여 각 명령어가 해당하는 형식적 동작을 매핑한다.
- Michelson의 기본 타입(nat, int, bytes, bool, option 등)을 Why3의 해당 타입에 매핑하며, nat와 같은 경우에 특수한 불변 조건을 정의하여 정확성을 보장한다.
- 비교 함수(compare_bool 등)는 Michelson의 사양을 충족시키기 위해 수동으로 Why3에 구현되며, -1, 0, 또는 1을 반환한다.
- Why3의 검증 조건 생성기(VCGen)가 자동으로 증명 의무를 생성하고, Z3나 CVC4와 같은 외부 자동 정리 증명 도구가 이를 해결한다.
- OCaml 기반의 Why3 API를 사용하여 Why3 플러그인으로 도구를 구현함으로써, 형식 검증 워크플로우에의 통합이 가능해졌다.
실험 결과
연구 질문
- RQ1Michelson 스마트 컨트랙트가 형식 검증을 위한 목적에서 의미를 유지하면서 자동으로 WhyML로 변환될 수 있는가?
- RQ2Why3를 통해 생성된 Michelson 컨트랙트의 증명 의무를 자동 정리 증명 도구가 어느 정도 해결할 수 있는가?
- RQ3얕은 임베딩 방식이 WhyML에서 Michelson의 스택 기반 의미론의 표현력과 검증 가능성 유지에 얼마나 효과적인가?
- RQ4복잡한 Michelson 컨트랙트에 대해 자동 검증을 확장할 때 발생하는 실질적 과제는 무엇이며, 이를 어떻게 완화할 수 있는가?
- RQ5WhylSon은 LIGO나 SmartPy와 같은 고수준 스마트 컨트랙트 언어의 백엔드 검증 계층으로 기능할 수 있는가?
주요 결과
- WhylSon은 Michelson 컨트랙트를 성공적으로 WhyML로 변환하여 Why3의 자동 정리 증명 도구를 활용한 형식 검증을 가능하게 하였다.
- 도구는 높은 수준의 자동화를 달성하였으며, Why3의 VCGen를 통해 증명 의무가 생성되고 Z3, CVC4 등의 외부 증명 도구에 의해 해결되었다.
- 자동화에도 불구하고 일부 증명 트리가 매우 커져 사용자 개입이 필요로 하여 현재의 타입 인코딩 전략의 한계가 드러났다.
- Michelson 타입에 트리 기반 데이터 구조를 사용한 것이 복잡한 증명 의무를 초래하였으며, 이는 최적화된 인코딩 전략이 필요함을 시사한다.
- Why3의 잘 문서화된 OCaml API 덕분에 Why3와의 통합은 간편하였고, 빠른 플러그인 개발이 가능했다.
- 이러한 접근은 검증된 컴파일러 및 고수준 언어(예: Archetype, LIGO 등)와의 향후 통합을 지원할 수 있으며, 컴파일의 검증된 백엔드로 기능할 수 있다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.