Skip to Content.
Sympa Menu

coq-club - [Coq-Club] Formal verification for blockchain protocols & smart-contracts

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] Formal verification for blockchain protocols & smart-contracts


Chronological Thread 
  • From: Arthur Breitman <arthurb AT tezos.com>
  • To: coq-club AT inria.fr
  • Subject: [Coq-Club] Formal verification for blockchain protocols & smart-contracts
  • Date: Sat, 15 Oct 2016 20:50:07 +0000
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=arthurb AT tezos.com; spf=Neutral smtp.mailfrom=contact AT tezos.com; spf=None smtp.helo=postmaster AT mail-oi0-f45.google.com
  • Ironport-phdr: 9a23:pSjtBx3jFdc4VffzsmDT+DRfVm0co7zxezQtwd8ZsesRKPad9pjvdHbS+e9qxAeQG96KsbQY26GP7/qoGTRZp83e4DZaKN0EfiRGoPtVtjRoONSCB0z/IayiRA0BN+MGamVY+WqmO1NeAsf0ag6aiHSz6TkPBke3blItdaymUrLV2s+wzqW5/4DZSwROnju0J71ofzusqgCEn9MKgZZ4YowrxxrVp3JOM7Bf339oOEiZtwrx9MCrupVk9nID6Loa68dcXPCiLOwDRrtCAWF+Pg==

I posted a similar message on the OCaml mailing list (which probably intersects with this list quite a bit), but I wanted to reach out specifically to the Coq community. Apologies if you've read this already.

I'm working on Tezos, a project for a blockchain (in the same vein as Bitcoin or Ethereum) written entirely in OCaml, from scratch.

Tezos is a self-amending ledger. While other protocols achieve consensus about the state of their transactions, Tezos reaches a meta-consensus about its own protocol. This allows us to gradually build governance rules into the ledger by letting the participants choose under which condition the protocol may be amended.

We start with a simple voting procedure to accept or reject a proposed patch to a set of OCaml modules representing the protocol. Over time, complex rules can evolve. Of particular interest would be to introduce a form of constitutionalism by having the protocol require and enforce that any proposed modification be formally verified and guaranteed to preserve specific properties. This could be achieved by including a proof checker withing the protocol.

As a less ambitious first step, we'd like to build a formalization of our smart-contract language in Coq. We're aware of ongoing efforts to do this with the Ethereum virtual machine, but unlike the EVM, our smart contract language has a clear specification,  is generally pure, and is statically & strongly typed. This should make the process more pleasant.

We'd also be interested in proving certain parts of the code base correct, either by extracting them from a Coq implementation or directly with CFML.  

If you find this intriguing and enjoy working with Coq, please reach out, we'd like to sponsor research on the topic (within our modest means).

Best,
Arthur


  • [Coq-Club] Formal verification for blockchain protocols & smart-contracts, Arthur Breitman, 10/15/2016

Archive powered by MHonArc 2.6.18.

Top of Page