Skip to main content
QUICK REVIEW

[論文レビュー] Lolisa: Formal Syntax and Semantics for a Subset of the Solidity Programming Language

Zheng Yang, Hang Lei|arXiv (Cornell University)|Mar 27, 2018
Logic, programming, and type systems参考文献 13被引用数 22
ひとこと要約

Lolisa は、GERM フレームワークと実行-検証同型性(EVI)を活用して、Solidity の大規模なサブセットの形式的で機械化された構文および意味論を初めて提示した。型安全性を高めるために、より強力な静的型システムを導入し、マッピング、修飾子、構造体、複数の戻り値を含むほぼすべての Solidity 構文をサポート。また、抽象化や再構築なしに、直接的かつ行単位での Solidity プログラムの翻訳を可能にし、他の言語への拡張性も有する。

ABSTRACT

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.

研究の動機と目的

  • スマートコントラクト開発における正しさとセキュリティを向上させるために、Solidity の大規模なサブセットの形式的で検証済みの機械化された構文および意味論を開発すること。
  • Solidity のネイティブ型システムよりも強力な静的型システムを導入することで、型安全性を向上させること。
  • 抽象化や再構築なしに、Solidity プログラムを Lolisa に直接的かつ行単位で翻訳できることを保証すること。
  • 他のプログラミング言語を形式的に定式化するための一般用途の基盤を体系的に構築すること。
  • GERM フレームワークと実行-検証同型性(EVI)を、Solidity のようなブロックチェーン特化言語に適用する可能性を示すこと。

提案手法

  • 再利用可能で拡張可能な形式的メモリモデルを備えた、GERM フレームワークを用いて、Solidity の形式的言語サブセットとして Lolisa を設計すること。
  • 実行-検証同型性(EVI)を適用して、プログラム実行と形式的検証を結びつけ、機械化された推論を可能にすること。
  • 複数の戻り値、ポ인터算術、構造体、フィールドアクセスなどの高度な機能を含む構文の拡張。
  • マッピング、修飾子、コントラクト定義、アドレス型といったコアな Solidity 構文を、Lolisa フレームワーク内に形式的に定式化すること。
  • その形式的基盤に基づいて、他のプログラミング言語を表現するための体系的な拡張スキームを定義すること。
  • 抽象化や表現力の損失なしに、行単位での翻訳の整合性を保証することで、Solidity との互換性を確保すること。

実験結果

リサーチクエスチョン

  • RQ1大規模なサブセットの Solidity に対して、完全に形式的で機械化された意味論を開発可能か。その際、構文的および意味的完全性を保持できるか。
  • RQ2GERM フレームワークと EVI をどのように活用して、Solidity のスマートコントラクト実行と検証をモデル化できるか。
  • RQ3Lolisa のより強力な静的型システムは、ネイティブな Solidity と比較して、どの程度型安全性を向上させるか。
  • RQ4抽象化や再構築なしに、Solidity から形式的言語への直接的かつ行単位の翻訳が可能か。
  • RQ5Lolisa は、Solidity を超える他のプログラミング言語を形式的に定式化するために体系的に拡張可能か。

主な発見

  • Lolisa は、機械検証可能な証明を伴う、大規模なサブセットの Solidity に対する最初の機械化および検証済みの形式的構文および意味論である。
  • マッピング、修飾子、構造体、複数の戻り値を含む、ほぼすべての主要な Solidity 機能を、元の構文と完全に一致する忠実な形式でサポート。
  • Lolisa に組み込まれたより強力な静的型システムにより、ネイティブな Solidity よりも高い型安全性が実現。
  • Solidity から Lolisa への直接的かつ行単位の翻訳が形式的に保証されており、既存の Solidity コードベースとのシームレスな統合を可能に。
  • Lolisa の設計は、他のプログラミング言語を形式的に定式化するための体系的な拡張を可能としており、その汎用性と再利用可能性を示している。
  • EVI と GERM フレームワークの適用により、実行と検証を統一的に扱えるようになり、スマートコントラクト動作に関する形式的推論を支援。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。