Formal Design, Implementation and Verification of Blockchain Languages
- Grigore Rosu | University of Illinois at Urbana-Champaign
Many of the recent cryptocurrency bugs and exploits are due to flaws or weaknesses of the underlying blockchain programming languages or virtual machines. The usual post-mortem approach to formal language semantics and verification, where the language is firstly implemented and used in production for many years before a need for formal semantics and verification tools naturally arises, simply does not work anymore. New blockchain languages or virtual machines are proposed at an alarming rate, followed by new versions of them every few weeks, together with programs (or smart contracts) in these languages that are responsible for financial transactions of potentially significant value. Formal analysis and verification tools are therefore needed immediately for such languages and virtual machines. We present recent academic and commercial results in developing blockchain languages and virtual machines that come directly equipped with formal analysis and verification tools. The main idea is to generate all these automatically, correct-by-construction from a formal specification. We demonstrate the feasibility of the proposed approach by applying it to two blockchains, Ethereum and Cardano.
-
-
Nikolaj Bjørner
Partner Researcher
-
-
Watch Next
-
Multimodal & Embodied Intelligence (S1), Panel on Multimodal AI: Progress, Pitfalls, Possibilities
- Madhava Krishna,
- Sriram Ganapathy,
- Somak Aditya
-
Session on Reasoning
- Hongxiang Fan,
- Nagarajan Natarajan
-
Session on Retrieval
- Lokesh Nagalapatti,
- Soumen Chakrabarti
-
-
-
-
-
Episode 7: The road ahead
- Jonathan M. Carlson,
- Will Guyman,
- Matthew Lungren
-
-
Microsoft Research India - The lab culture
- P. Anandan,
- Indrani Medhi Thies,
- B. Ashok