IELE: A Rigorously Designed Language and Tool Ecosystem for the Blockchain

  • Theodoros KasampalisEmail author
  • Dwight Guth
  • Brandon Moore
  • Traian Florin Șerbănuță
  • Yi Zhang
  • Daniele Filaretti
  • Virgil Șerbănuță
  • Ralph Johnson
  • Grigore Roşu
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11800)


This paper proposes IELE, an LLVM-style language, together with a tool ecosystem for implementing and formally reasoning about smart contracts on the blockchain. IELE was designed by specifying its semantics formally in the K framework. Its implementation, a IELE virtual machine (VM), as well as a formal verification tool for IELE smart contracts, were automatically generated from the formal specification. The automatically generated formal verification tool allows us to formally verify smart contracts without any gap between the verifier and the actual VM. A compiler from Solidity, the predominant high-level language for smart contracts, to IELE has also been (manually) implemented, so Ethereum contracts can now also be executed on IELE.



We are grateful to IOHK ( for funding the IELE project, as well as for insightful discussions, encouragements and constructive criticisms along the way. The work on the K framework and its tooling was supported in part by NSF grant CNS 16-19275 and by the United States Air Force and DARPA under Contract No. FA8750-18-C-0092.


  1. 1.
    Atzei, N., Bartoletti, M., Cimoli, T.: A survey of attacks on Ethereum smart contracts. IACR Cryptology ePrint Archive 2016, 1007 (2016).
  2. 2.
    Blockstream: Simplicity blog post and resources (2019).
  3. 3.
    Bogdanas, D., Rosu, G.: K-Java: a complete semantics of Java. In: Proceedings of the 42nd Symposium on Principles of Programming Languages (POPL2015), pp. 445–456. ACM, January 2015.
  4. 4.
    Breidenbach, L., Daian, P., Juels, A., Sirer, E.G.: An in-depth look at the parity multisig bug (2017).
  5. 5.
    Buterin, V., Ethereum Foundation: Ethereum White Paper (2013).
  6. 6.
    Ştefănescu, A., Park, D., Yuwen, S., Li, Y., Roşu, G.: Semantics-based program verifiers for all languages. In: Proceedings of the 31th Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2016), pp. 74–91. ACM, November 2016.
  7. 7.
  8. 8.
    de Moura, L., Bjørner, N.: Z3: an efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008). Scholar
  9. 9.
    Ellison, C., Rosu, G.: An executable formal semantics of C with applications. In: Proceedings of the 39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2012), pp. 533–544. ACM, January 2012.
  10. 10.
    Ethereum: Ethereum C++ Client (2019).
  11. 11.
    Ethereum: Solidity documentation (2019).
  12. 12.
    Ethereum: Vyper documentation (2019).
  13. 13.
    Etherscan: Ethereum Transaction Growth (2019).
  14. 14.
    Hathhorn, C., Ellison, C., Rosu, G.: Defining the undefinedness of C. In: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2015), pp. 336–345. ACM, June 2015.
  15. 15.
    Hildenbrandt, E., et al.: KEVM: a complete semantics of the Ethereum virtual machine. In: 2018 IEEE 31st Computer Security Foundations Symposium, pp. 204–217. IEEE (2018).
  16. 16.
    IOHK: IELE Testnet (2019).
  17. 17.
    IOHK: KEVM Testnet (2019).
  18. 18.
    IOHK: Mantis Ethereum Classic Client (2019).
  19. 19.
    IOHK: Plutus testnet (2019).
  20. 20.
    Kasampalis, T., et al.: IELE: a rigorously designed language and tool ecosystem for the blockchain. Technical report, University of Illinois, July 2019.
  21. 21.
    KEVM: Jello paper (2019).
  22. 22.
    Lattner, C., Adve, V.: LLVM: a compilation framework for lifelong program analysis & transformation. In: Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization, CGO 2004, p. 75. IEEE Computer Society, Washington, DC, USA (2004).
  23. 23.
    Milner, R., Tofte, M., Harper, R., MacQueen, D.: The Definition of Standard ML: Revised. MIT Press, Cambridge (1997)CrossRefGoogle Scholar
  24. 24.
    Nakamoto, S.: Bitcoin: a peer-to-peer electronic cash system (2008).
  25. 25.
    Park, D., Stefanescu, A., Rosu, G.: KJS: a complete formal semantics of JavaScript. In: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2015), pp. 346–356. ACM, June 2015.
  26. 26.
    Park, D., Zhang, Y., Saxena, M., Daian, P., Roşu, G.: A Formal verification tool for Ethereum VM bytecode. In: Proceedings of the 26th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2018). ACM, November 2018.
  27. 27.
    PeckShield: New batchOverflow Bug in Multiple ERC20 Smart Contracts (CVE-2018-10299) (2018).
  28. 28.
    RChain Cooperative: Rchain and rholang documentation (2019).
  29. 29.
    Rosu, G., Serbanuta, T.F.: An overview of the K semantic framework. J. Logic Algebraic Program. 79(6), 397–434 (2010).
  30. 30.
    RuntimeVerification: ERC20-K: Formal Executable Specification of ERC20 (2017).
  31. 31.
  32. 32.
    RuntimeVerification: Formal Smart Contract Verification (2019).
  33. 33.
    RuntimeVerification: The formal semantics for IELE – source code (2019).
  34. 34.
    Solana, J.: \$500K hack challenge backfires on blockchain lottery SmartBillions (2017).
  35. 35.
    Steiner, J.: Security is a process: a postmortem on the parity multi-sig library self-destruct (2017).
  36. 36.
    Tezos: Michelson documentation (2019).
  37. 37.
    The Ethereum Foundation: ERC20 token standard (2019).
  38. 38.
    Wood, G.: Ethereum: a secure decentralised generalised transaction ledger. Ethereum Proj. Yellow Pap. 151, 1–32 (2014)Google Scholar
  39. 39.
    Zilliqa: Scilla language webpage (2019).

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  • Theodoros Kasampalis
    • 1
    Email author
  • Dwight Guth
    • 2
  • Brandon Moore
    • 2
  • Traian Florin Șerbănuță
    • 2
    • 3
  • Yi Zhang
    • 1
  • Daniele Filaretti
    • 2
  • Virgil Șerbănuță
    • 2
  • Ralph Johnson
    • 2
  • Grigore Roşu
    • 1
    • 2
  1. 1.University of Illinois at Urbana-ChampaignUrbanaUSA
  2. 2.Runtime VerificationUrbanaUSA
  3. 3.University of BucharestBucharestRomania

Personalised recommendations