Abstract
Turing complete smart contract formalisms (e.g. Solidity) are conceptually appealing, but leave the door open to the problems of verifying completely arbitrary code, a task which can be of arbitrarily high complexity or can be undecidable. We argue that a more structured approach, in which smart contract families are designed ab initio with efficient verifiability in mind, provide a much more practical way forward. We emphasis that the boundary between on-chain and off-chain information, which must always be determined in an application specific manner, is crucial in determining the practicability of smart contract verification. We discuss the role of refinement technologies in breaking down the complexity of smart contract verification, and illustrate the argument using the Event-B formal modelling framework and Solidity as implementation vehicle.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
In practice, the mathematics needs to be capable of being reasoned about by the reasoning tools within the Rodin toolset [30], which curtails the usable expressivity quite firmly.
References
Conference on Financial Cryptography and Data Security (FC). Springer, LNCS (1997 onwards)
Workshop on Trustworthy Smart Contracts (WTSC). Springer, LNCS (2016 onwards)
Abrial, J.R.: The B-Book: Assigning Programs to Meanings. CUP (1996)
Abrial, J.R.: Modeling in Event-B: System and Software Engineering. CUP (2010)
Abrial, J.R., Butler, M., Hallerstede, S., Hoang, T., Mehta, F., Voisin, L.: Rodin: an open toolset for modelling and reasoning in event-B. Int. J. Soft. Tools Tech. Trans. 12, 447–466 (2010)
Al Khalil, F., Butler, T., O’Brien, L., Ceci, M.: Trust in smart contracts is a process as well. In: Brenner, M., et al. (eds.) Proceedings of WTSC 2017, vol. 10323, pp. 510–519. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-70278-0_32
Back, R., Kurki-Suonio, R.: Decentralisation of process nets with centralised control. In: Proceedings of PODC 1983, pp. 131–142. ACM (1983)
Back, R.J.R., Sere, K.: Stepwise refinement of action systems. In: van de Snepscheut, J.L.A. (ed.) MPC 1989. LNCS, vol. 375, pp. 115–138. Springer, Heidelberg (1989). https://doi.org/10.1007/3-540-51305-1_7
Back, R.J.R., von Wright, J.: Trace refinement of action systems. In: Jonsson, B., Parrow, J. (eds.) CONCUR 1994. LNCS, vol. 836, pp. 367–384. Springer, Heidelberg (1994). https://doi.org/10.1007/978-3-540-48654-1_28
Back, R., von Wright, J.: Refinement Calculus. Springer, New York (1998). https://doi.org/10.1007/978-1-4612-1674-2
Back, R., Sere, K.: Superposition refinement of reactive systems. Form. Asp. Comp. 8(3), 324–346 (1996)
Banach, R., Schellhorn, G.: Atomic actions and their refinements to isolated protocols. Form. Asp. Comp. 22, 33–61 (2010)
Bartoletti, M., Pompianu, L.: An empirical analysis of smart contracts: platforms, applications, and design patterns. In: Brenner, M., et al. (eds.) FC 2017. LNCS, vol. 10323, pp. 494–509. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-70278-0_31
Bhargavan, K., et al.: Formal verification of smart contracts. In: Proceedings of PLAS 2016, pp. 91–96. ACM (2016)
Burdy, L., Deharbe, D.: Teaching an old dog new tricks. In: Butler, M., Raschke, A., Hoang, T.S., Reichl, K. (eds.) ABZ 2018. LNCS, vol. 10817, pp. 415–419. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-91271-4_33
Chen, L., Xu, L., Shah, N., Gao, Z., Lu, Y., Shi, W.: Decentralized execution of smart contracts: agent model perspective and its implications. In: Brenner, M., et al. (eds.) FC 2017. LNCS, vol. 10323, pp. 468–477. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-70278-0_29
ClearSy. http://www.clearsy.com/
Davis, M., Weyuker, E.: Computability, Complexity and Languages. Academic Press, New York (1983)
Ellul, J., Pace, G.: Runtime verification of ethereum smart contracts. In: Proceedings of EDCC 2018, Workshop on Blockchain Dependability, pp. 158–163. IEEE (2018)
Ethereum. https://www.ethereum.org/
Hildenbrandt, E., et al.: KEVM: a complete formal semantics of the ethereum virtual machine. In: Proceedings of CSFS 2018, pp. 204–217. IEEE (2018)
Hirai, Y.: Defining the ethereum virtual machine for interactive theorem provers. In: Brenner, M., et al. (eds.) FC 2017. LNCS, vol. 10323, pp. 520–535. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-70278-0_33
Hopcroft, J., Ullman, J.: Introduction to Automata Theory, Languages and Computation. Addison Wesley, Boston (1983)
Lecomte, T.: Atelier B has Turned 20. In: Proceedings of ABZ 2016, vol. 9675, p. XVI. Springer, Cham (2016)
Lecomte, T., Deharbe, D., Prun, E., Mottin, E.: Applying a formal method in industry: a 25-year trajectory. In: Cavalheiro, S., Fiadeiro, J. (eds.) SBMF 2017. LNCS, vol. 10623, pp. 70–87. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-70848-5_6
Mavridou, A., Laszka, A.: Designing secure ethereum smart contracts: a finite state machine based approach. In: Meiklejohn, S., Sako, K. (eds.) FC 2018. LNCS, vol. 10957, pp. 523–540. Springer, Heidelberg (2018). https://doi.org/10.1007/978-3-662-58387-6_28
Mulligan, D., Owens, S., Gray, K., Ridge, T., Sewell, P.: Lem: reusable engineering of real-world semantics. SIGPLAN Not. 49, 175–188 (2014)
Oraclize. http://www.oraclize.it
Park, Y., Zhang, Y., Saxena, M., Daian, P., Rosu, G.: A formal verification tool for ethereum VM bytecode. In: Proceedings of ESEC/FSE-18, pp. 912–915. ACM (2018)
RODIN Tool. http://www.event-b.org/sourceforge.net/projects/rodin-b-sharp/
Sekerinski, E., Sere, K.: Program Development by Refinement: Case Studies Using the B-Method. Springer, London (1998). https://doi.org/10.1007/978-1-4471-0585-5
Sergey, I., Hobor, A.: A concurrent perspective on smart contracts. In: Brenner, M., et al. (eds.) FC 2017. LNCS, vol. 10323, pp. 478–493. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-70278-0_30
Sipser, M.: Introduction to the Theory of Computation. Thomson (2006)
Solidity. https://en.wikipedia.org/wiki/Solidity
Solidity Documentation. https://solidity.readthedocs.io
Solidity Github. https://github.com/ethereum/solidity
Voisin, L., Abrial, J.R.: The rodin platform has turned ten. In: Ait Ameur, Y., Schewe, K.D. (eds.) Proceedings of ABZ 2014. LNCS, vol. 8477. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-43652-3_1
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 International Financial Cryptography Association
About this paper
Cite this paper
Banach, R. (2020). Verification-Led Smart Contracts. In: Bracciali, A., Clark, J., Pintore, F., Rønne, P., Sala, M. (eds) Financial Cryptography and Data Security. FC 2019. Lecture Notes in Computer Science(), vol 11599. Springer, Cham. https://doi.org/10.1007/978-3-030-43725-1_9
Download citation
DOI: https://doi.org/10.1007/978-3-030-43725-1_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-43724-4
Online ISBN: 978-3-030-43725-1
eBook Packages: Computer ScienceComputer Science (R0)