Optimization of Executable Formal Interpreters developed in Higher-order Theorem Proving Systems

by   Zheng Yang, et al.

In recent publications, we presented a novel formal symbolic process virtual machine (FSPVM) framework that combined higher-order theorem proving and symbolic execution for verifying the reliability and security of smart contracts developed in the Ethereum blockchain system without suffering the standard issues surrounding reusability, consistency, and automation. A specific FSPVM, denoted as FSPVM-E, was developed in Coq based on a general, extensible, and reusable formal memory (GERM) framework, an extensible and universal formal intermediate programming language, denoted as Lolisa, which is a large subset of the Solidity programming language that uses generalized algebraic datatypes, and a corresponding formally verified interpreter for Lolisa, denoted as FEther, which serves as a crucial component of FSPVM-E. However, our past work has demonstrated that the execution efficiency of the standard development of FEther is extremely low. As a result, FSPVM-E fails to achieve its expected verification effect. The present work addresses this issue by first identifying three root causes of the low execution efficiency of formal interpreters. We then build abstract models of these causes, and present respective optimization schemes for rectifying the identified conditions. Finally, we apply these optimization schemes to FEther, and demonstrate that its execution efficiency has been improved significantly.


Formal Process Virtual Machine for Smart Contracts Verification

This paper reports on the development and verification of a novel formal...

A Hybrid Formal Verification System in Coq for Ensuring the Reliability and Security of Ethereum-based Service Smart Contracts

This paper reports on the development of a formal symbolic process virtu...

A general formal memory framework in Coq for verifying the properties of programs based on higher-order logic theorem proving with increased

In recent years, a number of lightweight programs have been deployed in ...

Security-Hardening Software Libraries with Ada and SPARK – A TCP Stack Use Case

This white paper demonstrates how the assurance, reliability, and securi...

FEther: An Extensible Definitional Interpreter for Smart-contract Verifications in Coq

Blockchain technology adds records to a list using cryptographic links. ...

Formalising and verifying smart contracts with Solidifier: a bounded model checker for Solidity

The exploitation of smart-contract vulnerabilities can have catastrophic...

Verification of Bitcoin Script in Agda using Weakest Preconditions for Access Control

This paper contributes to the verification of programs written in Bitcoi...

Please sign up or login with your details

Forgot password? Click here to reset