当前位置: X-MOL 学术Math. Probl. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Lolisa: Formal Syntax and Semantics for a Subset of the Solidity Programming Language in Mathematical Tool Coq
Mathematical Problems in Engineering ( IF 1.430 ) Pub Date : 2020-12-01 , DOI: 10.1155/2020/6191537
Zheng Yang 1 , Hang Lei 1
Affiliation  

The security of blockchain smart contracts is one of the most emerging issues of the greatest interest for researchers. This article presents an intermediate specification language for the formal verification of Ethereum-based smart contract in Coq, denoted as Lolisa. The formal syntax and semantics of Lolisa contain a large subset of the Solidity programming language developed for the Ethereum blockchain platform. To enhance type safety, the formal syntax of Lolisa adopts a stronger static type system than Solidity. In addition, Lolisa includes a large subset of Solidity syntax components as well as general-purpose programming language features. Therefore, Solidity programs can be directly translated into Lolisa with line-by-line correspondence. Lolisa is inherently generalizable and can be extended to express other programming languages. Finally, the syntax and semantics of Lolisa have been encapsulated as an interpreter in mathematical tool Coq. Hence, smart contracts written in Lolisa can be symbolically executed and verified in Coq.

中文翻译:

Lolisa:数学工具Coq中Solidity编程语言子集的形式语法和语义

区块链智能合约的安全性是研究人员最感兴趣的新兴问题之一。本文介绍了一种中间规范语言,用于在Coq中对基于以太坊的智能合约进行形式验证,称为Lolisa。Lolisa的形式语法和语义包含为以太坊区块链平台开发的Solidity编程语言的很大一部分。为了增强类型安全性,Lolisa的形式语法采用了比Solidity更强的静态类型系统。此外,Lolisa包括大量的Solidity语法组件以及通用编程语言功能。因此,Solidity程序可以逐行对应地直接转换为Lolisa。Lolisa具有固有的通用性,可以扩展以表达其他编程语言。最后,Lolisa的语法和语义已被封装为数学工具Coq中的解释器。因此,可以在Coq中象征性地执行和验证用Lolisa编写的智能合约。
更新日期:2020-12-01
down
wechat
bug