Findel: Secure Derivative Contracts for Ethereum

  • Alex Biryukov
  • Dmitry Khovratovich
  • Sergei TikhomirovEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10323)


Blockchain-based smart contracts are considered a promising technology for handling financial agreements securely. In order to realize this vision, we need a formal language to unambiguously describe contract clauses. We introduce Findel – a purely declarative financial domain-specific language (DSL) well suited for implementation in blockchain networks. We implement an Ethereum smart contract that acts as a marketplace for Findel contracts and measure the cost of its operation. We analyze challenges in modeling financial agreements in decentralized networks and outline directions for future work (See the author’s post-print at and the related source code at


Blockchain Smart contracts Financial engineering Domain-specific language 


  1. [ABC16]
    Atzei, N., Bartoletti, M., Cimoli, T.: A survey of attacks on ethereum smart contracts. IACR Cryptol. ePrint Arch. 2016, 1007 (2016)Google Scholar
  2. [Bis16]
    Statistical release. OTC derivatives statistics at end-june 2016 (2016).
  3. [Bro16]
    Browser-solidity online compiler (2016).
  4. [But14]
    A next-generation smart contract and decentralized application platform (2014).
  5. [CBB16]
    Clack, C.D., Bakshi, V.A., Braine, L.: Smart contract templates: foundations, design landscape and research directions. CoRR, abs/1608.00771 (2016)Google Scholar
  6. [CF14]
    Yakoubov, S., Fromknecht, C., Velicanu, D.: A decentralized public key infrastructure with identity retention. Cryptology ePrint Archive, Report 2014/803 (2014).
  7. [Cha15]
    Chaudhary, S.: Adventures in financial and software engineering (2015).
  8. [CRR79]
    Cox, J.C., Ross, S.A., Rubinstein, M.: Option pricing: a simplified approach. J. Finan. Econ. 7(3), 229–263 (1979)CrossRefzbMATHGoogle Scholar
  9. [dC16]
    del Castillo, M.: JP Morgan, credit suisse among 8 in latest bank blockchain test (2016).
  10. [Eth17]
    Ethstats (2017).
  11. [FpE17]
    Functional programming for ethereum (2017).
  12. [FSNB09]
    Frankau, S., Spinellis, D., Nassuphis, N., Burgard, C.: Commercial uses: going functional on exotic trades. J. Func. Program. 19(01), 27–45 (2009)CrossRefGoogle Scholar
  13. [Gai11]
    Gaillourdet, J.-M.: A software language approach to derivative contracts in finance (2011).
  14. [Gib13]
    Gibbons, J.: Functional programming for domain-specific languages. In: Zsók, V., Horváth, Z., Csató, L. (eds.) CEFP 2013. LNCS, vol. 8606, pp. 1–28. Springer, Cham (2015). Google Scholar
  15. [Gre16]
    Greenspan, G.: Why many smart contract use cases are simply impossible (2016).
  16. [Hvi10]
    Hvitved, T.: A survey of formal languages for contracts. In: Fourth Workshop on Formal Languages and Analysis of Contract-Oriented Software (FLACOS 2010), pp. 29–32. Citeseer (2010)Google Scholar
  17. [Ico17]
    Icos, token sales, crowdsales (2017).
  18. [JE03]
    Peyton Jones, S.L., Eber, J.-M.: How to write a financial contract, The Fun of Programming (2003)Google Scholar
  19. [JES00]
    Peyton Jones, S.L., Eber, J.-M., Seward, J.: Composing contracts: an adventure in financial engineering, functional pearl. In: ICFP, pp. 280–292. ACM (2000)Google Scholar
  20. [Kho16]
  21. [LC16]
    Lewison, K., Corella, F.: Backing rich credentials with a blockchain PKI (2016).
  22. [Lex00]
    Ocaml at lexifi (2000).
  23. [Mor16]
    Mortensen, S.: Universal contracts (2016).
  24. [Ora16]
    Oraclize (2016).
  25. [Rea16]
    Reality keys (2016).
  26. [Rev16]
    Revere, R.R.: What is the difference between transaction cost and execution cost in browser solidity? (2016).
  27. [Sch13]
    Schiller, T.: Financial domain-specific language listing (2013).
  28. [Sch14]
    Schuldenzucker, S.: Decomposing contracts (2014).
  29. [Sch16]
    Schuldenzucker, S.: An axiomatic framework for no-arbitrage relationships in financial derivatives markets (2016).
  30. [Sir16]
    Gün Sirer, E.: Thoughts on the dao hack (2016).
  31. [STM16]
    Seijas, P.L., Thompson, S., McAdams, D.: Scripting smart contracts for distributed ledger technology. Cryptology ePrint Archive, Report 2016/1156 (2016).
  32. [Sza97]
    Szabo, N.: Formalizing and securing relationships on public networks (1997).
  33. [Sza02]
    Szabo, N.: A formal language for analyzing contracts (2002).
  34. [Tls16]
    Tlsnotary (2016).
  35. [Tok16]
    Ethereum improvement proposal: Token standard (2016).
  36. [vS07]
  37. [Wal12]
    Walton, C.: Scala contracts project (2012).
  38. [Woo14]
    Wood, G.: Ethereum: a secure decentralised generalised transaction ledger (2014).
  39. [Wor16]
    Gross domestic product 2015 (2016).
  40. [Wor17]

Copyright information

© International Financial Cryptography Association 2017

Authors and Affiliations

  • Alex Biryukov
    • 1
  • Dmitry Khovratovich
    • 1
  • Sergei Tikhomirov
    • 1
    Email author
  1. 1.SnTUniversity of LuxembourgEsch-sur-AlzetteLuxembourg

Personalised recommendations