Advertisement

A Language-Independent Approach to Smart Contract Verification

  • Xiaohong ChenEmail author
  • Daejun Park
  • Grigore Roşu
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11247)

Abstract

This invited paper reports the current progress on smart contract verification with the \(\mathbb {K}\) framework in a language-independent style.

Notes

Acknowledgments

We thank the \(\mathbb {K}\) team (http://www.kframework.org/index.php/People) for their sustained dedication and help, as well as to numerous other contributors to the \(\mathbb {K}\) framework.

References

  1. 1.
    Atzei, N., Bartoletti, M., Cimoli, T.: A survey of attacks on ethereum smart contracts (SoK). In: Maffei, M., Ryan, M. (eds.) POST 2017. LNCS, vol. 10204, pp. 164–186. Springer, Heidelberg (2017).  https://doi.org/10.1007/978-3-662-54455-6_8CrossRefGoogle Scholar
  2. 2.
    Barnett, M., Chang, B.-Y.E., DeLine, R., Jacobs, B., Leino, K.R.M.: Boogie: a modular reusable verifier for object-oriented programs. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2005. LNCS, vol. 4111, pp. 364–387. Springer, Heidelberg (2006).  https://doi.org/10.1007/11804192_17CrossRefGoogle Scholar
  3. 3.
    Breidenbach, L., Daian, P., Juels, A., Gün Sirer, E.: An in-depth look at the parity multisig bug (2017). http://hackingdistributed.com/2017/07/22/deep-dive-parity-bug/
  4. 4.
    Buterin, V.: Thinking about smart contract security (2016). https://blog.ethereum.org/2016/06/19/thinking-smart-contract-security/
  5. 5.
    Ştefănescu, A., Park, D., Yuwen, S., Li, Y., Roşu, G.: Semantics-based program verifiers for all languages. In: Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2016), pp. 74–91. ACM, November 2016Google Scholar
  6. 6.
  7. 7.
    Filliâtre, J.-C., Marché, C.: The Why/Krakatoa/Caduceus platform for deductive program verification. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol. 4590, pp. 173–177. Springer, Heidelberg (2007).  https://doi.org/10.1007/978-3-540-73368-3_21CrossRefGoogle Scholar
  8. 8.
    Hildenbrandt, E., et al.: KEVM: a complete semantics of the ethereum virtual machine. In: Proceedings of the 31st IEEE Computer Security Foundations Symposium (CSF 2018). IEEE (2018). http://jellopaper.org
  9. 9.
    KEVM Team: KEVM: semantics of EVM in K (2017). https://github.com/kframework/evm-semantics
  10. 10.
    The Coq Development Team: The Coq proof assistant reference manual. LogiCal Project (2004)Google Scholar
  11. 11.
    Moore, B., Peña, L., Roşu, G.: Program verification by coinduction. In: Ahmed, A. (ed.) ESOP 2018. LNCS, vol. 10801, pp. 589–618. Springer, Cham (2018).  https://doi.org/10.1007/978-3-319-89884-1_21CrossRefGoogle Scholar
  12. 12.
    Park, D., Zhang, Y., Saxena, M., Daian, P., Roşu, G.: A formal verification tool for ethereum VM bytecode. In: Proceedings of the 2018 ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2018) (2018)Google Scholar
  13. 13.
    Roşu, G., Şerbănuţă, F.T.: An overview of the K semantic framework. J. Log. Algebr. Program. 79(6), 397–434 (2010)MathSciNetCrossRefGoogle Scholar
  14. 14.
    Steiner, J.: Security is a process: a postmortem on the parity multi-sig library self-destruct (2017). http://goo.gl/LBh1vR
  15. 15.
    The Isabelle Development Team: Isabelle (2018). https://isabelle.in.tum.de/
  16. 16.
    Wood, G.: Ethereum: a secure decentralised generalised transaction ledger (2014). Updated for EIP-150 in 2017. http://yellowpaper.io/

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  1. 1.University of Illinois at Urbana-ChampaignChampaignUSA
  2. 2.Runtime Verification Inc.UrbanaUSA

Personalised recommendations