Smart Contract Development in Practice: Trends, Issues, and Discussions on Stack Overflow

Blockchain based platforms are emerging as a transformative technology that can provide reliability, integrity, and auditability without trusted entities. One of the key features of these platforms is the trustworthy decentralized execution of general-purpose computation in the form of smart contracts, which are envisioned to have a wide range of applications from finance to the Internet of Things. As a result, a rapidly growing and active community of smart contract developers has emerged in recent years. A number of research efforts have investigated the technological challenges that smart contract developers face. However, very little is known about the community itself, about the developers, and about the issues that they discuss and care about. To address this gap, we study the online community of smart contract developers on Stack Overflow. We provide insight into the topics that they discuss, their technological and demographic background, and their awareness of security issues and tools. Our results show that the community of smart contract developers is very active and growing rapidly, in comparison with the general user population. However, a large fraction of smart contract related questions remain unanswered, which can pose a real threat to the viability of a sustainable community and may indicate gaps in community knowledge. Further, we observe very limited discussion of security related topics, which is concerning since smart contracts in practice are plagued by security issues.

[1]  Elaine Shi,et al.  Step by Step Towards Creating a Safe Smart Contract: Lessons and Insights from a Cryptocurrency Lab , 2016, Financial Cryptography Workshops.

[2]  Prateek Saxena,et al.  Finding The Greedy, Prodigal, and Suicidal Contracts at Scale , 2018, ACSAC.

[3]  Aron Laszka,et al.  Designing Secure Ethereum Smart Contracts: A Finite State Machine Based Approach , 2017, Financial Cryptography.

[4]  Daniel Davis Wood,et al.  ETHEREUM: A SECURE DECENTRALISED GENERALISED TRANSACTION LEDGER , 2014 .

[5]  Gabor Karsai,et al.  TRANSAX: A Blockchain-Based Decentralized Forward-Trading Energy Exchanged for Transactive Microgrids , 2018, 2018 IEEE 24th International Conference on Parallel and Distributed Systems (ICPADS).

[6]  Vincent Gramoli,et al.  Vandal: A Scalable Security Analysis Framework for Smart Contracts , 2018, ArXiv.

[7]  Aron Laszka,et al.  Tool Demonstration: FSolidM for Designing Secure Ethereum Smart Contracts , 2018, POST.

[8]  Mohsen Guizani,et al.  When Energy Trading meets Blockchain in Electrical Power System: The State of the Art , 2019, Applied Sciences.

[9]  Ali Dehghantanha,et al.  Empirical Vulnerability Analysis of Automated Smart Contracts Security Testing on Blockchains , 2018, CASCON.

[10]  Gernot Salzer,et al.  SoK: Development of Secure Smart Contracts - Lessons from a Graduate Course , 2019, Financial Cryptography Workshops.

[11]  Sarah Underwood,et al.  Blockchain beyond bitcoin , 2016, Commun. ACM.

[12]  Michael I. Jordan,et al.  Latent Dirichlet Allocation , 2001, J. Mach. Learn. Res..

[13]  Abhishek Dubey,et al.  VeriSolid: Correct-by-Design Smart Contracts for Ethereum , 2019, Financial Cryptography.

[14]  Albert Rubio,et al.  EthIR: A Framework for High-Level Analysis of Ethereum Bytecode , 2018, ATVA.

[15]  Michael Devetsikiotis,et al.  Blockchains and Smart Contracts for the Internet of Things , 2016, IEEE Access.

[16]  Russell O'Connor,et al.  Simplicity: A New Language for Blockchains , 2017, PLAS@CCS.

[17]  Massimo Bartoletti,et al.  A Survey of Attacks on Ethereum Smart Contracts (SoK) , 2017, POST.

[18]  Petar Tsankov,et al.  Securify: Practical Security Analysis of Smart Contracts , 2018, CCS.

[19]  Gernot Salzer,et al.  A Survey of Tools for Analyzing Ethereum Smart Contracts , 2019, 2019 IEEE International Conference on Decentralized Applications and Infrastructures (DAPPCON).

[20]  Ahmed E. Hassan,et al.  What are developers talking about? An analysis of topics and trends in Stack Overflow , 2014, Empirical Software Engineering.

[21]  Ali Dehghantanha,et al.  Smart Contract Programming Languages on Blockchains: An Empirical Evaluation of Usability and Security , 2018, ICBC.

[22]  Prateek Saxena,et al.  Making Smart Contracts Smarter , 2016, IACR Cryptol. ePrint Arch..

[23]  Gordon J. Pace,et al.  Runtime Verification of Ethereum Smart Contracts , 2018, 2018 14th European Dependable Computing Conference (EDCC).

[24]  Massimo Bartoletti,et al.  Financial Cryptography and Data Security , 2017, Lecture Notes in Computer Science.

[25]  Uwe Zdun,et al.  Design Patterns for Smart Contracts in the Ethereum Ecosystem , 2018, 2018 IEEE International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData).

[26]  Tao Zhang,et al.  Blockchain in the Eyes of Developers , 2018, ArXiv.