Skip to main content

Showing 1–8 of 8 results for author: Annenkov, D

.
  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:2203.08016  [pdf, other

    cs.LO cs.CR

    Formalising Decentralised Exchanges in Coq

    Authors: Eske Hoy Nielsen, Danil Annenkov, Bas Spitters

    Abstract: The number of attacks and accidents leading to significant losses of crypto-assets is growing. According to Chainalysis, in 2021, approx. $14 billion has been lost due to various incidents, and this number is dominated by Decentralized Finance (DeFi) applications. In order to address these issues, one can use a collection of tools ranging from auditing to formal methods. We use formal verification… ▽ More

    Submitted 11 March, 2022; originally announced March 2022.

  3. Certified Compilation of Financial Contracts

    Authors: Danil Annenkov, Martin Elsman

    Abstract: We present an extension to a certified financial contract management system that allows for templated declarative financial contracts and for integration with financial stochastic models through verified compilation into so-called payoff-expressions. Such expressions readily allow for determining the value of a contract in a given evaluation context, such as contexts created for stochastic simulat… ▽ More

    Submitted 6 August, 2021; originally announced August 2021.

    Comments: Published: Proceedings of the 20th International Symposium on Principles and Practice of Declarative Programming (PPDP'18) Coq formalisation: https://github.com/annenkov/contracts

    Journal ref: 20th International Symposium on Principles and Practice of Declarative Programming 2018 (PPDP'18)

  4. 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

  5. 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

  6. ConCert: A Smart Contract Certification Framework in Coq

    Authors: Danil Annenkov, Jakob Botsch Nielsen, Bas Spitters

    Abstract: We present a new way of embedding functional languages into the Coq proof assistant by using meta-programming. This allows us to develop the meta-theory of the language using the deep embedding and provides a convenient way for reasoning about concrete programs using the shallow embedding. We connect the deep and the shallow embeddings by a soundness theorem. As an instance of our approach, we dev… ▽ More

    Submitted 20 December, 2019; v1 submitted 24 July, 2019; originally announced July 2019.

    Comments: Extended the related work section. Significantly extended sections on translation and semantics. Added more examples and details about the formalisation. Commented of unquote and the trusted computing base. Commented on adequacy

    Journal ref: CPP 2020: Proceedings of the 9th ACM SIGPLAN International Conference on Certified Programs and Proofs, January 2020, Pages 215-228

  7. arXiv:1811.11317  [pdf, other

    cs.PL

    Adventures in Formalisation: Financial Contracts, Modules, and Two-Level Type Theory

    Authors: Danil Annenkov

    Abstract: We present three projects concerned with applications of proof assistants in the area of programming language theory and mathematics. The first project is about a certified compilation technique for a domain-specific programming language for financial contracts (the CL language). The code in CL is translated into a simple expression language well-suited for integration with software components imp… ▽ More

    Submitted 27 November, 2018; originally announced November 2018.

    Comments: PhD thesis defended in January 2018 at University of Copenhagen, Department of Computer Science

  8. Two-Level Type Theory and Applications

    Authors: Danil Annenkov, Paolo Capriotti, Nicolai Kraus, Christian Sattler

    Abstract: We define and develop two-level type theory (2LTT), a version of Martin-Löf type theory which combines two different type theories. We refer to them as the inner and the outer type theory. In our case of interest, the inner theory is homotopy type theory (HoTT) which may include univalent universes and higher inductive types. The outer theory is a traditional form of type theory validating uniquen… ▽ More

    Submitted 27 February, 2023; v1 submitted 9 May, 2017; originally announced May 2017.

    Comments: 58 pages

    MSC Class: F.4.1 ACM Class: F.4.1

    Journal ref: Mathematical Structures in Computer Science. Special Issue: Homotopy Type Theory, 2023, pp. 1-56