[논문 리뷰] Lolisa: Formal Syntax and Semantics for a Subset of the Solidity Programming Language
Lolisa는 GERM 프레임워크와 실행-검증 이sov모르피즘(EVI)를 활용하여 솔리디티의 대규모 하위집합에 대한 기계화되고 검증된 형식 문법과 의미론을 제시한다. 더 강력한 정적 타입 체계를 통해 타입 안전성을 향상시키며, 매핑, 수정자, 구조체, 다중 반환 값과 같은 거의 모든 솔리디티 구문을 지원하고, 추상화나 재구성 없이 직접적인 라인 단위 번역을 가능하게 하여 다른 언어로의 확장성도 제공한다.
This article presents the formal syntax and semantics for a large subset of the Solidity programming language developed for the Etheruem blockchain platform based on our resent work about developing a general, extensible, and reusable formal memory (GERM) framework and an extension of Curry-Howard isomorphism, denoted as execution-verification isomorphism (EVI). This subset is denoted as Lolisa, which, to our knowledge, is the first mechanized and validated formal syntax and semantics developed for Solidity. The formal syntax of Lolisa adopts a stronger static type system than Solidity for enhanced type safety. In addition, Lolisa not only includes nearly all the syntax components of Solidity, such as mapping, modifier, contract, and address types, but it also contains general-purpose programming language features, such as multiple return values, pointer arithmetic, struct, and field access. Therefore, the inherent compatibility of Lolisa allows Solidity programs to be directly translated into Lolisa with a line-by-line correspondence without rebuilding or abstracting, and, in addition, the inherent generality of Lolisa allows it to be extended to express other programming languages as well. To this end, we also present a preliminary scheme for extending Lolisa to other languages systematically.
연구 동기 및 목표
- 스마트 계약 개발의 정확성과 보안을 향상시키기 위해 솔리디티의 대규모 하위집합에 대한 공식적으로 검증된 기계화된 문법과 의미론을 개발하는 것.
- 솔리디티의 네이티브 타입 체계보다 더 강력한 정적 타입 체계를 도입하여 타입 안전성을 향상시키는 것.
- 추상화나 재구성 없이 솔리디티 프로그램을 직접 라인 단위로 번역할 수 있도록 보장하는 것.
- 다른 프로그래밍 언어를 공식화하는 데 체계적으로 확장할 수 있는 일반 목적의 기반을 마련하는 것.
- GERM 프레임워크와 실행-검증 이sov모르피즘(EVI)을 블록체인 전용 언어인 솔리디티와 같은 언어에 적용할 수 있는 가능성을 입증하는 것.
제안 방법
- 재사용 가능하고 확장 가능한 형식 메모리 모델을 제공하기 위해 GERM 프레임워크를 활용해 솔리디티의 형식 언어 하위집합으로서 Lolisa를 설계하는 것.
- 프로그램 실행과 공식적 검증을 연결하기 위해 실행-검증 이sov모르피즘(EVI)을 적용하여 기계화된 추론을 가능하게 하는 것.
- 다중 반환 값, 포인터 산술, 구조체, 필드 접근과 같은 고급 기능을 포함하도록 문법을 확장하는 것.
- 매핑, 수정자, 컨트랙트 정의, 주소 유형과 같은 핵심 솔리디티 구문을 Lolisa 프레임워크 내에서 공식화하는 것.
- Lolisa의 형식적 기반을 바탕으로 다른 프로그래밍 언어를 표현하기 위한 체계적인 방법을 정의하는 것.
- 표현력 손실 없이 라인 단위 번역 의미론을 통해 솔리디티와의 호환성을 확보하는 것.
실험 결과
연구 질문
- RQ1솔리디티의 대규모 하위집합에 대해 전체 문법적 및 의미적 정밀도를 유지하면서 기계화되고 검증된 형식 의미론을 개발할 수 있는가?
- RQ2GERM 프레임워크와 EVI는 솔리디티에서 스마트 계약 실행과 검증을 효과적으로 모델링하는 데 어떻게 적용될 수 있는가?
- RQ3Lolisa의 더 강력한 정적 타입 체계는 네이티브 솔리디티에 비해 타입 안전성을 얼마나 향상시키는가?
- RQ4추상화나 재구성 없이 솔리디티를 형식 언어로 직접 라인 단위로 번역하는 것은 가능한가?
- RQ5Lolisa는 솔리디티를 초월해 다른 프로그래밍 언어를 공식화하기 위해 체계적으로 확장될 수 있는가?
주요 결과
- Lolisa는 솔리디티의 대규모 하위집합에 대해 기계화되고 검증된 형식 문법과 의미론을 제공하는 첫 번째 언어로, 기계로 검증 가능한 증명을 통해 완전한 형식화를 달성한다.
- 이 언어는 매핑, 수정자, 구조체, 다중 반환 값과 같은 거의 모든 핵심 솔리디티 기능을 원본 문법과 완전히 일치하는 정밀도로 지원한다.
- Lolisa의 더 강력한 정적 타입 체계는 네이티브 솔리디티가 제공하는 것보다 타입 안전성을 향상시킨다.
- 솔리디티에서 Lolisa로의 직접적이고 라인 단위 번역이 공식적으로 지원되어 기존 솔리디티 코드베이스와 원활한 통합이 가능하다.
- Lolisa의 설계는 다른 프로그래밍 언어를 공식화하기 위해 체계적으로 확장할 수 있도록 하여 그 일반성과 재사용 가능성을 입증한다.
- EVI와 GERM 프레임워크의 적용은 실행과 검증을 통합적으로 다루며 스마트 계약 행동에 대한 공식적 추론을 지원한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.