Litcius/Paper detail

End-to-End Formal Verification of Ethereum 2.0 Deposit Smart Contract

Daejun Park, Yi Zhang, Grigore Roşu

2020Lecture notes in computer science32 citationsDOIOpen Access PDF

Abstract

We report our experience in the formal verification of the deposit smart contract, whose correctness is critical for the security of Ethereum 2.0, a new Proof-of-Stake protocol for the Ethereum blockchain. The deposit contract implements an incremental Merkle tree algorithm whose correctness is highly nontrivial, and had not been proved before. We have verified the correctness of the compiled bytecode of the deposit contract to avoid the need to trust the underlying compiler. We found several critical issues of the deposit contract during the verification process, some of which were due to subtle hidden bugs of the compiler.

Topics & Concepts

CorrectnessComputer scienceBytecodeSmart contractCompilerProgramming languageFormal verificationProtocol (science)Database transactionJavaMedicineAlternative medicinePathologyBlockchain Technology Applications and SecuritySecurity and Verification in ComputingCryptography and Data Security