Skip to main content

Showing 1–3 of 3 results for author: Milo, M

.
  1. Finding smart contract vulnerabilities with ConCert's property-based testing framework

    Authors: Mikkel Milo, Eske Hoy Nielsen, Danil Annenkov, Bas Spitters

    Abstract: We provide three detailed case studies of vulnerabilities in smart contracts, and show how property-based testing would have found them: 1. the Dexter1 token exchange; 2. the iToken; 3. the ICO of Brave's BAT token. The last example is, in fact, new, and was missed in the auditing process. We have implemented this testing in ConCert, a general executable model/specification of smart contra… ▽ More

    Submitted 1 August, 2022; originally announced August 2022.

    Journal ref: FMBC: Formal Methods for Blockchains, 2022

  2. arXiv:2108.02995  [pdf, other

    cs.PL cs.LO

    Extracting functional programs from Coq, in Coq

    Authors: Danil Annenkov, Mikkel Milo, Jakob Botsch Nielsen, Bas Spitters

    Abstract: We implement extraction of Coq programs to functional languages based on MetaCoq's certified erasure. We extend the MetaCoq erasure output language with ty** information and use it as an intermediate representation, which we call $λ^T_\square$. We complement the extraction functionality with a full pipeline that includes several standard transformations (eta-expansion, inlining, etc) implemented… ▽ More

    Submitted 6 August, 2021; originally announced August 2021.

    Comments: 57 pages; Coq development: https://github.com/AU-COBRA/ConCert/tree/journal-2021. arXiv admin note: substantial text overlap with arXiv:2012.09138

  3. Extracting Smart Contracts Tested and Verified in Coq

    Authors: Danil Annenkov, Mikkel Milo, Jakob Botsch Nielsen, Bas Spitters

    Abstract: We implement extraction of Coq programs to functional languages based on MetaCoq's certified erasure. As part of this, we implement an optimisation pass removing unused arguments. We prove the pass correct wrt. a conventional call-by-value operational semantics of functional languages. We apply this to two functional smart contract languages, Liquidity and Midlang, and to the functional language E… ▽ More

    Submitted 26 April, 2021; v1 submitted 16 December, 2020; originally announced December 2020.

    Comments: Coq implementation: https://github.com/AU-COBRA/ConCert/tree/artifact-2020 Update: fixed the "author running" list, fixed a mistake in an evaluation rule for lambda-box (Section 3.1, item 2)

    Journal ref: CPP'2021: Proceedings of the 10th ACM SIGPLAN International Conference on Certified Programs and Proofs, January 18--19, 2021, Virtual, Denmark