Three Projects Around Formal Proof and Blockchains

Three Projects Around Formal Proof and Blockchains

Introduction Easycrypt and ’Bitcoin Backbone’ Solidity* The Tezos contract language in Coq Future Three projects around formal proof and blockchains Thomas Sibut-Pinote December 12, 2016 Thomas Sibut-Pinote Three projects around formal proof and blockchains Introduction Easycrypt and ’Bitcoin Backbone’ Solidity* The Tezos contract language in Coq Future 1 Introduction 2 Easycrypt and ’Bitcoin Backbone’ 3 Solidity* 4 The Tezos contract language in Coq 5 Future Thomas Sibut-Pinote Three projects around formal proof and blockchains Introduction Easycrypt and ’Bitcoin Backbone’ Solidity* The Tezos contract language in Coq Future Current Situation PhD student with Assia Mahboubi, "Numeric Computations And Mathematical Proofs: From Rigorous To Formal Proofs": estimating integrals in Coq Defense around Fall 2017 Thomas Sibut-Pinote Three projects around formal proof and blockchains Introduction Easycrypt and ’Bitcoin Backbone’ Solidity* The Tezos contract language in Coq Future The Cryptocurrency Stack Seen From Formal Proof Thomas Sibut-Pinote Three projects around formal proof and blockchains Many levels of properties! Introduction Easycrypt and ’Bitcoin Backbone’ Solidity* The Tezos contract language in Coq Future Natural Questions Is this contract fair to its users (e.g. Ponzi Scheme)? Does this contract method do what it pretends to do? (e.g. DAO: no!) Is this EVM bytecode equivalent to the high-level code I’m being shown? Does this blockchain protocol reach consensus? Does it have safety? Does it have liveness? Is this Bitcoin client faithful to the Bitcoin protocol? (bonus question: what is the Bitcoin protocol?) Thomas Sibut-Pinote Three projects around formal proof and blockchains Introduction Easycrypt and ’Bitcoin Backbone’ Solidity* The Tezos contract language in Coq Future Natural Questions Is this contract fair to its users (e.g. Ponzi Scheme)? Does this contract method do what it pretends to do? (e.g. DAO: no!) Is this EVM bytecode equivalent to the high-level code I’m being shown? Does this blockchain protocol reach consensus? Does it have safety? Does it have liveness? Is this Bitcoin client faithful to the Bitcoin protocol? (bonus question: what is the Bitcoin protocol?) Many levels of properties! Thomas Sibut-Pinote Three projects around formal proof and blockchains Introduction Easycrypt and ’Bitcoin Backbone’ Solidity* The Tezos contract language in Coq Future Work with Easycrypt Easycrypt : formalizing the Game/Protocol ‘Backbone protocol’ paper High-level properties High-level contract High-level Semantics (Solidity) Compiler Correctness Bytecode (Bitcoin Low-level Semantics Script, EVM, Tezos) Blockchain model (black box providing consensus) Idealized Blockchain Protocol (PoW,PoS) Software Correctness modulo Crypto Blockchain Implementation (Bitcoin, Geth, Tezos Client) Thomas Sibut-Pinote Three projects around formal proof and blockchains Introduction Easycrypt and ’Bitcoin Backbone’ Solidity* The Tezos contract language in Coq Future Quick description Tool: Easycrypt A toolset for reasoning about relational properties of probabilistic computations, extended to reason about the security of cryptographic systems. Nature of work Improving tactics for proofs of programs using Hoare logic; Formalizing [1]. Joint Work Ongoing joint work with Pierre-Yves Strub Based on ’The Bitcoin Backbone Protocol: Analysis and Applications’ [1] by J.Garay, A. Kiayias and N. Leonardos Thomas Sibut-Pinote Three projects around formal proof and blockchains Introduction Easycrypt and ’Bitcoin Backbone’ Solidity* The Tezos contract language in Coq Future Solidity* Solidity* : Compiling Solidity to F* Game/Protocol and decompiling EVM to F* High-level properties High-level contract High-level Semantics (Solidity) Compiler Correctness Bytecode (Bitcoin Low-level Semantics Script, EVM, Tezos) Blockchain model (black box providing consensus) Idealized Blockchain Protocol (PoW,PoS) Software Correctness modulo Crypto Blockchain Implementation (Bitcoin, Geth, Tezos Client) Thomas Sibut-Pinote Three projects around formal proof and blockchains Introduction Easycrypt and ’Bitcoin Backbone’ Solidity* The Tezos contract language in Coq Future Quick Description F* ML-like functional programming language for program verification Work Decompiler EVM ! F* (e.g. for gas); Compiler Solidity ! F* (e.g. for reentrancy); Possible goal: DSL for contracts inside F*, compiled to EVM. Context Started as a hackathon project at MSRC, mainly with (a large team of) MSR and Inria members Our PLAS paper: ’Formal Verification of Smart Contracts’ [2] Thomas Sibut-Pinote Three projects around formal proof and blockchains Introduction Easycrypt and ’Bitcoin Backbone’ Solidity* The Tezos contract language in Coq Future The Tezos contract language in Coq Tezos Language formalization in Coq Game/Protocol High-level properties High-level contract High-level Semantics (Solidity) Compiler Correctness Bytecode (Bitcoin Low-level Semantics Script, EVM, Tezos) Blockchain model (black box providing consensus) Idealized Blockchain Protocol (PoW,PoS) Software Correctness modulo Crypto Blockchain Implementation (Bitcoin, Geth, Tezos Client) Thomas Sibut-Pinote Three projects around formal proof and blockchains Introduction Easycrypt and ’Bitcoin Backbone’ Solidity* The Tezos contract language in Coq Future Quick Description Tool The Coq theorem prover. Nature of work Defining the formal semantics of the Tezos smart contract language; Proving elementary properties about it (like type preservation); Toying with program proofs (but hard); For now, on my free time. With Whom? Joint work with Anton Trunov and in regular contact with the Tezos team. Thomas Sibut-Pinote Three projects around formal proof and blockchains Introduction Easycrypt and ’Bitcoin Backbone’ Solidity* The Tezos contract language in Coq Future Future Finishing PhD in ∼ 1 year Looking for a PostDoc in a related area :-) Thomas Sibut-Pinote Three projects around formal proof and blockchains Introduction Easycrypt and ’Bitcoin Backbone’ Solidity* The Tezos contract language in Coq Future Thanks Thanks for listening! Any questions? Thomas Sibut-Pinote Three projects around formal proof and blockchains Introduction Easycrypt and ’Bitcoin Backbone’ Solidity* The Tezos contract language in Coq Future Juan Garay, Aggelos Kiayias, and Nikos Leonardos. The bitcoin backbone protocol: Analysis and applications. Cryptology ePrint Archive, Report 2014/765, 2014. http://eprint.iacr.org/2014/765. Karthikeyan Bhargavan, Antoine Delignat-Lavaud, Cédric Fournet, Anitha Gollamudi, Georges Gonthier, Nadim Kobeissi, Natalia Kulatova, Aseem Rastogi, Thomas Sibut-Pinote, Nikhil Swamy, and Santiago Zanella-Béguelin. Formal Verification of Smart Contracts: Short Paper. In ACM Workshop on Programming Languages and Analysis for Security, Vienna, Austria, October 2016. Thomas Sibut-Pinote Three projects around formal proof and blockchains.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    15 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us