DeepAI
Log In Sign Up

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

08/26/2018
by   Zheng Yang, et al.
0

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.

READ FULL TEXT
05/01/2018

Formal Process Virtual Machine for Smart Contracts Verification

This paper reports on the development and verification of a novel formal...
09/02/2021

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

This white paper demonstrates how the assurance, reliability, and securi...
10/11/2018

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

Blockchain technology adds records to a list using cryptographic links. ...
02/07/2020

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

The exploitation of smart-contract vulnerabilities can have catastrophic...
08/06/2019

A Formally Verified HOL Algebra for Dynamic Reliability Block Diagrams

Dynamic reliability block diagrams (DRBDs) are introduced to overcome th...