by Nicholas Stifter, Aljosha Judmayer, and Edgar Weippl (SBA Research)
Secure Execution of Smart Contracts (SESC) aims to identify and analyse security aspects of smart contracts and the platforms on which they execute from a holistic viewpoint. We focus on the long-term sustainability and security of smart contract infrastructures.
The advent of Bitcoin as a decentralised cryptocurrency has a fundamental impact on both practical applications and scientific research, reaching well beyond its immediate use-case as a form of currency. Many concepts that previously needed to rely on a trusted third party now become feasible as decentralised implementations, thanks to Bitcoin's underlying blockchain technology.
One such application relates to smart contracts i.e., "a computerised transaction protocol that executes the terms of a contract" [1]. Conceptually, smart contracts can be understood as program code that is executed for transacting parties. A blockchain-based smart contract platform serves as a decentralised arbiter to both verify and enforce the execution of these smart contracts based on the platform's defined rules. In practice, smart contract platforms may be more closely related to the field of trusted computing as they offer the ability to execute code with relatively high trust in a decentralised environment.
Smart contract platforms generally follow an open, permissionless model where anyone can deploy their own smart contract code and where both publishing and executing smart contracts incurs transaction fees. The expressiveness of the programming language and code used to define smart contracts plays an important role in such systems because it greatly influences what can and cannot be achieved. As an example, Bitcoin provides limited smart contract functionality because its transactions are governed by the execution of stateless scripts in a simple, non-Turing-complete stack-based language. Other platforms, such as Ethereum support complex and stateful Turing-complete contracts can cover a much wider range of application scenarios. The correct and secure execution of such smart contracts depends not only on the contract's code and its execution environment itself, but also on the underlying properties of the distributed system that actually facilitates such a decentralised smart contract platform [2]. Therefore, a holistic approach towards smart contract security which integrates all these aspects and their interactions is not only prudent, but necessary.
The difficulties and obstacles encountered when trying to ensure both the correctness and the security of more complex smart contract code are manifold, and it is not surprising that the recent history of decentralised smart contract platforms contains a number of serious security incidents [3]. Many of these incidents can, at least partially, be attributed to a lack of established paradigms and best-practices and in particular the complex interaction patterns of the different components and aspects that arise in decentralised smart contract platforms.
Figure 1: A blockchain-based smart contract according to [L2].
The “Secure Execution of Smart Contracts (SESC)” project aims to systemise available technologies and explore the emerging requirements for safely and reliably creating and maintaining smart contracts and their governing (blockchain) infrastructures in the long-term. This encases elements and approaches such as formal verification and automated analysis; security impact analysis on smart contract infrastructures on client side devices; and the applicability of container technologies. These elements outline how properties of the underlying distributed system may adversely affect both smart contracts and the hosting platform itself.
One aspect of particular interest is what effects later parts of the development lifecycle of smart contracts and their governing infrastructures will have on security. While this can have a significant impact on both security and maintainability, the topic area has received little attention from developers and researchers alike. It is largely unclear how future approaches and solutions towards sustainability and scalability might influence smart contracts that are being deployed today. The current predominant paradigms render smart contract code difficult, if not impossible, to change once it has been deployed. Clearly, the topic of smart contract security is of paramount importance if such decentralised smart contract platforms are to gain widespread adoption. SESC will provide much needed insights into this relatively new problem domain. We will explore the fundamental requirements for long-term maintenance and sustainability of smart contract systems. Through SESC, we aim to both identify and address new application domain-specific problems, thereby enabling the community to take a more proactive stance towards smart contract security.
SESC is a collaborative project of SBA Research, Venionaire Capital, and handcheque. It is supported by the Austrian Research Promotion Agency (FFG) under the BRIDGE 1 programme and kicked off in January 2017.
Links:
[L1] https://kwz.me/Xc
[L2] http://eprint.iacr.org/2015/460.pdf
References:
[1] N. Szabo: “Smart Contracts”, 1994, https://kwz.me/XS
[2] C. Natoli and V. Gramoli: “The blockchain anomaly”, IEEE NCA 2016.
[3] N. Atzei and M. Bartoletti and T. Cimoli: “A survey of attacks on Ethereum smart contracts (SoK)”, International Conference on Principles of Security and Trust 2017.
Please contact:
Nicholas Stifter ,SBA Research
+43 (1) 505 36 88