skip to main content
10.1145/3460319.3469078acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

SCStudio: a secure and efficient integrated development environment for smart contracts

Published:11 July 2021Publication History

ABSTRACT

With the increasing popularity of block-chain technologies, more and more engineers use smart contracts for application implementation. Traditional supporting tools can either provide code completions based on static libraries or detect a limited set of vulnerabilities, which results in the manpower waste during coding and miss-detection of bugs. In this work, we propose SCStudio, a unified smart contract development platform, which aims to help developers implement more secure smart contracts easily. The core idea is to realize real-time security-reinforced recommendation through pattern-based learning; and to perform security-oriented validation via integrated testing. SCStudio was implemented as a plug-in of VS Code. It has been used as the official development tool of WeBank and integrated as the recommended development tool by FISCO-BCOS community. In practice, it outperforms existing contract development environments, such as Remix, improving the average word suggestion accuracy by 30%-60% and helping detect about 25% more vulnerabilities.

The video is presented at https://youtu.be/l6hW3Ds5Tkg.

References

  1. Maher Alharby and Aad Van Moorsel. 2017. Blockchain-based smart contracts: A systematic mapping study. arXiv preprint arXiv:1710.06372 ( 2017 ).Google ScholarGoogle Scholar
  2. Miltiadis Allamanis and Charles A. Sutton. 2014. Mining idioms from source code. ArXiv abs/1404.0417 ( 2014 ).Google ScholarGoogle Scholar
  3. Nicola Atzei, Massimo Bartoletti, and Tiziana Cimoli. 2016. A survey of attacks on Ethereum smart contracts. IACR Cryptology ePrint Archive 2016 ( 2016 ), 1007.Google ScholarGoogle Scholar
  4. Massimo Bartoletti and Livio Pompianu. 2017. An empirical analysis of smart contracts: platforms, applications, and design patterns. In International conference on financial cryptography and data security. Springer, 494-509.Google ScholarGoogle ScholarCross RefCross Ref
  5. Pavol Bielik, Veselin Raychev, and Martin T. Vechev. 2016. PHOG: Probabilistic Model for Code. In ICML.Google ScholarGoogle Scholar
  6. ConsenSys. 2019. Mythril. https://github.com/ConsenSys/mythril-classic.Google ScholarGoogle Scholar
  7. Kevin Delmolino, Mitchell Arnett, Ahmed Kosba, Andrew Miller, and Elaine Shi. 2015. Lab: Step by Step towards Programming a Safe Smart Contract. ( 2015 ).Google ScholarGoogle Scholar
  8. Thomas Durieux, João F. Ferreira, Rui Abreu, and Pedro Cruz. 2019. Empirical Review of Automated Analysis Tools on 47 ,587 Ethereum Smart Contracts. arXiv: 1910. 10601 [cs.SE]Google ScholarGoogle Scholar
  9. Etherscan. 2019. Etherscan. https://etherscan.io/.Google ScholarGoogle Scholar
  10. Abram Hindle, Earl T. Barr, Zhendong Su, Mark Gabel, and Premkumar T. Devanbu. 2012. On the naturalness of software. In ICSE 2012.Google ScholarGoogle Scholar
  11. Yoichi Hirai. 2016. Formal verification of Deed contract in Ethereum name service. November-2016.[Online]. Available: https://yoichihirai. com/deed. pdf ( 2016 ).Google ScholarGoogle Scholar
  12. Sukrit Kalra, Seep Goel, Mohan Dhawan, and Subodh Sharma. 2018. ZEUS: Analyzing Safety of Smart Contracts. In NDSS.Google ScholarGoogle Scholar
  13. Jian Li, Yue Wang, Michael R. Lyu, and Irwin King. 2018. Code Completion with Neural Attention and Pointer Networks. ArXiv abs/1711.09573 ( 2018 ).Google ScholarGoogle Scholar
  14. Chang Liu, Xin Wang, Richard Shin, Joseph E. Gonzalez, and Dawn Song. 2017. Neural Code Completion.Google ScholarGoogle Scholar
  15. Loi Luu, Duc-Hiep Chu, Hrishi Olickel, Prateek Saxena, and Aquinas Hobor. 2016. Making Smart Contracts Smarter. IACR Cryptology ePrint Archive 2016 ( 2016 ), 633.Google ScholarGoogle Scholar
  16. F. Ma, Y. Fu, M. Ren, M. Wang, Y. Jiang, K. Zhang, H. Li, and X. Shi. 2019. EVM*: From Ofline Detection to Online Reinforcement for Ethereum Virtual Machine. In 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER). 554-558.Google ScholarGoogle Scholar
  17. Ivica Nikolic, Aashish Kolluri, Ilya Sergey, Prateek Saxena, and Aquinas Hobor. 2018. Finding The Greedy, Prodigal, and Suicidal Contracts at Scale. CoRR abs/ 1802.06038 ( 2018 ).Google ScholarGoogle Scholar
  18. Veselin Raychev, Martin T. Vechev, and Eran Yahav. 2014. Code completion with statistical language models. In PLDI '14.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Michael Rodler, Wenting Li, Ghassan O Karame, and Lucas Davi. 2018. Sereum: Protecting Existing Smart Contracts Against Re-Entrancy Attacks. ( 2018 ).Google ScholarGoogle Scholar
  20. Armin ronacher. 2010. Flask. https://flask.palletsprojects. com/en/1.1.x/.Google ScholarGoogle Scholar
  21. Sara Rouhani and Ralph Deters. 2019. Security, performance, and applications of smart contracts: A systematic survey. IEEE Access 7 ( 2019 ), 50759-50779.Google ScholarGoogle Scholar
  22. smartbugs. 2020. smart contracts dataset. https://github.com/smartbugs/ smartbugs-wild.Google ScholarGoogle Scholar
  23. Solidity. 2018. Solidity Programming Language. https://git.io/vFA47/.Google ScholarGoogle Scholar
  24. Sergei Tikhomirov, Ekaterina Voskresenskaya, Ivan Ivanitskiy, Ramil Takhaviev, and Yaroslav Alexandrov. 2018. SmartCheck: static analysis of ethereum smart contracts. In the 1st International Workshop.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Petar Tsankov, Andrei Marian Dan, Dana Drachsler-Cohen, Arthur Gervais, Florian Buenzli, and Martin T. Vechev. 2018. Securify: Practical Security Analysis of Smart Contracts. In ACM Conference on Computer and Communications Security.Google ScholarGoogle Scholar
  26. Tsinghua University. 2019. Pied-Piper: Revealing the Backdoor Threats in Smart Contracts. https://github.com/renardbebe/BackdoorDetector. 4 ( 21 %) 14 ( 58.3%) 0 ( 0 %) 4 ( 57.1%) 1 ( 50 %) 29 ( 90.6%) 0 ( 0 %) 72 ( 92.3%) 4 ( 57.1%) 128 ( 56.6%) 4 ( 21 %) 17 ( 70.8%) 48 ( 96 %) 4 ( 57.1%) 2 ( 100 %) 29 ( 90.6%) 2 ( 28.6%) 72 ( 92.3%) 7 ( 100 %) 185 ( 81.9%)Google ScholarGoogle Scholar

Index Terms

  1. SCStudio: a secure and efficient integrated development environment for smart contracts

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      ISSTA 2021: Proceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis
      July 2021
      685 pages
      ISBN:9781450384599
      DOI:10.1145/3460319

      Copyright © 2021 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 11 July 2021

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate58of213submissions,27%

      Upcoming Conference

      ISSTA '24

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader