[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ Skip to content
BY 4.0 license Open Access Published by De Gruyter September 4, 2023

A systematic literature review of undiscovered vulnerabilities and tools in smart contract technology

  • Oualid Zaazaa EMAIL logo and Hanan El Bakkali

Abstract

In recent years, smart contract technology has garnered significant attention due to its ability to address trust issues that traditional technologies have long struggled with. However, like any evolving technology, smart contracts are not immune to vulnerabilities, and some remain underexplored, often eluding detection by existing vulnerability assessment tools. In this article, we have performed a systematic literature review of all the scientific research and papers conducted between 2016 and 2021. The main objective of this work is to identify what vulnerabilities and smart contract technologies have not been well studied. In addition, we list all the datasets used by previous researchers that can help researchers in building more efficient machine-learning models in the future. In addition, comparisons are drawn among the smart contract analysis tools by considering various features. Finally, various future directions are also discussed in the field of smart contracts that can help researchers to set the direction for future research in this domain.

1 Introduction

Following the incorporation of the smart contract concept into the renowned Ethereum blockchain, numerous projects have been established and upheld by the community of Dapp developers. Moreover, a multitude of decentralized applications (Dapps) has been constructed using this technology, exhibiting diverse complexities and functionalities, facilitating individuals in executing their business logic in a decentralized manner. The market capitalization of over 20 blockchain-based cryptocurrencies has notably exceeded the threshold of 3 billion dollars [1]. Unfortunately, the growing adoption of smart contracts and the escalated utilization of the Ethereum blockchain have exposed a plethora of challenges associated with gas fees, transaction speed, and various optimization-related issues within the Ethereum ecosystem. These challenges have catalyzed numerous researchers worldwide to embark upon the development of novel Blockchain networks that address these concerns and propose enhanced services.

In addition to all the optimization problems that blockchain technology suffer from, the increased use of smart contract has also added a new attack interface [2]. In addition, every newly created blockchain has usually a dedicated technology to build a smart contract with a different logic. This helped increase the number and the type of vulnerabilities that can be found. Many smart contracts built every day suffer from multiple vulnerabilities that can be exploited by attackers and cause serious financial losses to their owners. The DAO [3], Parity Multisig Wallet [4], and many other blockchain attacks were a result of a vulnerability in the used smart contracts.

What makes the situation of smart contracts even worst is their immutability feature. This simply means that if a vulnerability was discovered in a smart contract after its deployment in the mainnet, then no patching can be deployed to fix this issue. Therefore, ensuring that smart contracts are clean from any type of vulnerabilities before final deployment is necessary to avoid such situations.

To be able to discover those vulnerabilities, smart contract developers and auditors should know what kind of coding mistakes could result in vulnerabilities. However, relying on manual checking of those vulnerabilities is not always possible. The increased adoption of smart contracts in different life aspects has increased the complexity of those apps and the number of lines in their source code that should be audited. Therefore, building tools to assist both developers and auditors in their research of vulnerabilities is necessary.

1.1 Scope

Recently, many researchers have published review articles in this field with different types and numbers of vulnerabilities discussed. However, most of them have focused on smart contracts built on Ethereum or based on Ethereum virtual machine (EVM) . In the last few years, other blockchain technologies were proposed by the community to solve some Ethereum technical limitations [57]. Most of those blockchains support smart contract building and deploying and offer their languages and concepts.

Unfortunately, smart contracts built on the newer blockchain are still not mature, and there is a huge gap between vulnerability-based security research on them and the number of apps built each day. Therefore, in this article, we try to identify what are the smart contract-building technologies that were deeply studied and those that have less scientific research. We also try to identify the researches that applied machine learning (ML) techniques to find security vulnerabilities in smart contracts.

1.2 Motivation

The motivation for this survey is to help developers, students, and security researchers in the field of smart contract security auditing. The existing surveys do not give a systematic understanding of the different vulnerabilities that can affect multiple types of blockchains. Most reviews either deal with the blockchain attacks that target the network protocol or a specific blockchain technology [8,9], like Ethereum smart contract vulnerabilities.

Therefore, there is a strong requirement for a concise source of systematized information for understanding other blockchain vulnerabilities, their root causes, and the existing tools that can be used to find those vulnerabilities.

1.3 Contributions

We perform a systematic survey of smart contract security vulnerabilities that were identified in every studied blockchain and their detection tools, over the period 2016–2021. Our work helps to provide a thorough understanding of the various blockchain smart contract vulnerabilities. Here are our main contributions:

  1. We identify all less-studied smart contract development technologies in terms of security.

  2. A deep insight into all discussed smart contract vulnerabilities with their detection and analysis tools.

  3. We identify 296 primary studies that discuss smart contract vulnerabilities.

  4. We further select 107 studies that meet the inclusion and exclusion criteria we set for the paper screening phase.

  5. We conduct an in-depth assessment through a critical analysis of the 107 selected articles and provided a deep insight into the discussed smart contract vulnerabilities.

  6. We provide a brief comparison of detection and analysis tools for these vulnerabilities based on five parameters such as type of tool, targeted blockchain smart contract, type of analysis, and availability of the tool to use.

  7. We then listed and compared the ML-based solutions according to the blockchain tested on, and the used technique to discover vulnerabilities.

  8. We provide a list of the most used vulnerable smart contracts datasets to help future ML-based solutions to train and test their models

1.4 Organization of the article

The organization of this article is as follows: Section 2 provides an overview of the fundamental principles of blockchain technology, including its application and associated terminologies in the current state of the art. Section 3 outlines the methodology employed for the selection and analysis of the researchers. Section 4 presents the findings and outcomes derived from our research, followed by an in-depth discussion of these results in Section 5. This article is concluded in Section 6, offering recommendations for future investigations in related directions.

2 Background

2.1 Blockchain technology

At its core, a blockchain represents a distributed database or public ledger comprising a comprehensive record of completed transactions or digital events exchanged among participating entities. This decentralized system serves as a foundational framework for ensuring transparency, immutability, and consensus in recording and verifying the integrity of information within the network [10]. The verification and validation of each transaction on the public ledger are achieved through a consensus mechanism involving a majority of the system’s users. Importantly, once data is recorded, it becomes immutable and cannot be altered. This results in a transparent and auditable record of every transaction ever conducted, thereby enhancing the verifiability and traceability of information within the blockchain.

The most well-known example of blockchain technology-related product is Bitcoin and Ethereum. They are also the most contentious since it contributes to the development of an unregulated, multibillion-dollar worldwide market for anonymous trade.

However, the technology behind blockchains is not debatable, and it has operated without a glitch for years and is now being effectively used in both financial and nonfinancial applications.

The four main types of blockchain systems now in use are consortium blockchain, private blockchain, public blockchain, and hybrid blockchain. In a public blockchain, everyone can see all records and participate in the consensus procedure. On the other hand, with a consortium blockchain, the consensus process would only include a select few nodes. Regarding private blockchain, only nodes from a single company would be permitted to participate in the consensus process. A private blockchain is viewed as a centralized network since only one company has complete control over it. Since just a limited number of nodes would be chosen to decide the consensus, the consortium blockchain built by numerous organizations is only partially centralized. A hybrid blockchain is a combination of permissionless and permissioned blockchains. The idea here is that some processes like validating new blocks could be private where only a few known nodes of the same organization or from multiple organizations are able to participate. However, checking transactions and verifying them could be a task allowed for any public node.

2.2 Smart contract and alike

In recent years, the growth of blockchain technology has made it possible to store adaptable programing logic in a decentralized manner. As a result, the idea of smart contracts, which Nick Szabo initially introduced in 1994 [11] and are also known as blockchain contracts, digital contracts, or self-executing contracts, has been revitalized. Smart contracts are self-executing agreements between parties that contain the conditions of the deal. A distributed, decentralized blockchain network contains program codes that are used to create the contracts. Without the requirement for a centralized authority, smart contracts allow transactions to be carried out between unidentified or untrusted parties. Blockchain 1.0, which underpins Bitcoin [12] and other cryptocurrencies, contains the standard properties of decentralization, tamper-resistance, anonymity, and audibility. However, the restrictions of the Bitcoin programing language prevent building contracts with intricate logic.

Bitcoin can only be viewed as the prototype of smart contracts because of its limited capabilities. Newly developed blockchain systems, like Ethereum [13], support the notion of executing user-defined programs on the blockchain and using a Turing complete programing language to create expressive, customizable smart contracts. The EVM executes the stack-based bytecode language used to create the smart contract programs. Solidity is a high-level language that may be used to create Ethereum smart contracts. This language’s source code can then be turned into executable EVM bytecodes. Blockchain 2.0 is known as Ethereum since it is the most widely used platform for creating smart contracts at the moment. However, multiple newly created Blockchains are also offering the same capabilities for building smart contracts. Some of them use even different nominations for smart contracts. Hyperledger blockchain call includes another term “chaincode” to define a set of smart contracts that may have the same characteristics [5]. Solana calls smart contracts programs [7].

2.3 Smart contract vulnerabilities

Smart contracts, like conventional programs created by human developers, are prone to significant security vulnerabilities. Unfortunately, given their involvement in direct financial transactions, any exploited vulnerability within a smart contract can result in substantial financial losses. One notable instance of a widespread smart contract breach is the DAO attack, which led to a staggering loss of 60 million dollars and necessitated a hard fork of the Ethereum blockchain [3].

The heightened risk associated with vulnerable smart contracts, surpassing that of conventional applications, stems from the relative immaturity of the language utilized for their development. This immaturity becomes evident upon analyzing the frequency of annual releases [14]. Furthermore, due to the novelty of smart contract technology, a significant portion of smart contract developers remain unaware of the optimal practices for constructing secure smart contracts. These factors, alongside various other elements, collectively contribute to producing vulnerable smart contracts.

Furthermore, the increasing adoption of smart contracts as a solution for diverse applications [2] has resulted in the escalating complexity of smart contract source code. Consequently, the manual verification of smart contracts has become increasingly impractical due to the extensive number of lines of code involved.

3 Methodology

The present systematic review of the literature was carried out using the Preferred Reporting Items for Systematic Reviews and Meta-Analyses (PRISMA) [15]. In addition, the standard guidelines specified by Kitchenham and Charters [16] were applied. The following subsections describe the different steps of this methodology.

3.1 Research questions

Despite the significant advancements witnessed by the Ethereum blockchain in recent years, this technology still exhibits various technical limitations that hinder its maturity. These limitations encompass concerns such as gas fees and transaction processing capacity. Consequently, numerous research groups have undertaken the development of alternative blockchains to augment this technology and propose more robust blockchain networks. Many of these newly developed blockchains have garnered remarkable community adoption due to the solutions they offer. Moreover, developers are provided with the opportunity to build Dapps on several of these blockchains, facilitating the growth of their respective communities.

Regrettably, there is a lack of comprehensive coverage concerning vulnerabilities in blockchain Dapps, with certain security aspects being inadequately addressed. Hence, this article adopts the method and recommendations outlined by Kitchenham et al. to identify the following research questions. The aim is to enhance developers’ understanding of the vulnerabilities that may arise in their source code, particularly in the context of the Ethereum blockchain and any other blockchain platforms.

RQ1: What are all the studied smart contract vulnerabilities?

RQ2: What are the vulnerabilities that have not been widely studied?

RQ3: What are the developed frameworks and methods to find those vulnerabilities?

RQ4: To what kind of smart contract vulnerabilities ML was applied?

RQ5: What are the used smart contract datasets?

3.2 Information sources and database

Based on a search strategy created to find the pertinent research, the literature search was carried out utilizing several database sources. A thorough automated search was conducted to achieve this goal utilizing five database sources: PubMed, SCOPUS, IEEE Xplore, Science Direct, and ACM. Following the PRISMA criteria at all phases, we created a search strategy to find pertinent literature [17]. Figure 1 shows the article screening and selection procedures that the two authors of this study evaluated.

Figure 1 
                  Number of articles included and excluded through paper screening.
Figure 1

Number of articles included and excluded through paper screening.

3.3 Search strategy and key terms

The word name smart contract was originally proposed by the Ethereum community to describe the apps that work on the EVM. However, not all the recent Blockchains call those apps a smart contract. Some blockchains like Solana call those apps as Dapps programs. Therefore, we have tried to use both keywords to search for relevant articles.

The following search phrases were used to tailor the search strategy for the five databases:

  1. Dapp

  2. Smart contract

  3. Blockchain application

  4. Blockchain programs

  5. Vulnerability

Table 1 shows in detail the query that was used for each database search engine.

Table 1

Search queries used in the different databases

Database Query
PubMed (((Smart contract vulnerability[Title/Abstract]) OR (Dapp vulnerabilities[Title/Abstract])) OR (Blockchain applications vulnerabilities[Title/Abstract])) OR (Blockchain programs vulnerabilities[Title/Abstract]) AND (2016:2021[pdat])
Scopus (TITLE-ABS-KEY (“smart contract vulnerabilities”) OR TITLE-ABS-KEY (“smart contract vulnerability”) OR TITLE-ABS-KEY (“Dapp vulnerabilities”) OR TITLE-ABS-KEY (“Blockchain applications vulnerabilities”) OR TITLE-ABS-KEY (“Blockchain programs vulnerabilities”)) AND PUBYEAR > 2015 AND PUBYEAR < 2022 AND (LIMIT-TO (LANGUAGE, “English”))
IEEE Xplore (((((“Abstract”:Dapp) OR (“Abstract”:Smart contract) OR (“Abstract”:Blockchain application) OR (“Abstract”:Blockchain programs)) AND ((“Abstract”:vulnerability) OR (“Abstract”:vulnerabilities))) OR (((“Document Title”:Dapp) OR (“Document Title”:Smart contract) OR (“Document Title”:Blockchain application) OR (“Document Title”:Blockchain programs)) AND ((“Document Title”:vulnerability) OR (“Document Title”:vulnerabilities)))))
Science Direct “Dapp vulnerabilities” OR “Smart contract vulnerability” OR “Blockchain applications vulnerabilities” OR “Blockchain programs vulnerabilities”
ACM ((ContentGroupTitle:(“Dapp”) OR ContentGroupTitle:(“Smart contract”) OR ContentGroupTitle:(“Blockchain applications”) OR ContentGroupTitle:(“Blockchain programs”)) AND ( ContentGroupTitle:(“Vulnerability”) OR ContentGroupTitle:(“Vulnerabilities”))) OR ( ( Abstract:(“Dapp”) OR Abstract:(“Smart contract”) OR Abstract:(“Blockchain applications”) OR Abstract:(“Blockchain programs”)) AND (Abstract:(“Vulnerability”) OR Abstract:(“Vulnerabilities”)))

3.4 Eligibility criteria

Following the initial selection from the aforementioned databases, the next step is the paper screening, which entails evaluating each article’s eligibility in accordance with a variety of inclusion and exclusion criteria, as shown in Table 2, to only retrieve the most pertinent studies that focus on smart contract vulnerabilities detection.

Table 2

Inclusion and exclusion criteria list

Inclusion criteria Exclusion criteria
Main focus on smart contract vulnerabilities Discussing none technical vulnerabilities
Peered review conference or journal article Prediction models
Computer science subject area Main focus on fixing vulnerabilities
Published between 2016 and 2021
Only English articles

3.5 Selection results

After querying the different articles databases and filtering them for only English articles and those published between 2016 and 2021, we were able to collect 331 research articles. To maintain the quality of the review, all duplicate records were thoroughly checked and removed to reduce the number to 296 articles. In particular, the abstracts of all research articles included in the review process were checked in detail and filtered to ensure their quality and relevance and respect to the different inclusion criteria to keep only 144 of them. Next, we performed a deeper analysis of those articles to filter those that match one of our exclusion criteria. This latest step was able to reduce the number of the included articles to 107 articles. Figure 1 better illustrates this process and the result of each step.

3.6 Data extraction

Selected studies were placed into a data extraction spreadsheet using Google Sheets. The data extracted from the studies were as follows the blockchain technology used in the research, input code type, the smart contract vulnerabilities, methods, and frameworks developed and used to discover them. In addition, the sources of smart contract code are used to test those frameworks and models.

4 Results and findings

Following the selection of the main studies, two forms of analysis – bibliometric analysis and technical analysis, which are covered in the following subsections – were carried out in this section to analyze and synthesize the primary research.

4.1 Bibliometric analysis

In this part, which followed the paper screening process, we evaluated the included articles in terms of their publishers and publication years.

According to Figure 2, more than 51% of the included articles in this research come from IEEE. A total of 36.4% of the articles were published by Scopus and 10.3% by ACM. In addition, both PubMed and Science Direct have equally published 0.9% of the included papers.

Figure 2 
                  Number of primary studies according to their publishers.
Figure 2

Number of primary studies according to their publishers.

It is important to note that security researchers are becoming increasingly concerned about smart contract vulnerabilities. Figure 3 clearly shows the increased number of articles published on this subject each year. As shown in Figure 3, the number of published articles has increased from 6 in 2018 to reach 41 papers in 2021. The decrease in the growth of the number of articles published between 2020 and 2021 could be explained by the global situation caused by the Covid19 and the concentration on finding a solution to the pandemic.

Figure 3 
                  Number of primary studies published over time.
Figure 3

Number of primary studies published over time.

However, the increased adaptation of blockchain technology and the growth of use cases indicate that more researchers will get interested in this subject and more research would be published in the near future [18]. In addition, the increased impact caused by such vulnerabilities is pushing companies to invest more and more in securing their Dapps.

4.2 Technical analysis

In this section, we present all the results of our systematic literature review. The analysis process performed on the selected articles has shown that all the vulnerabilities that have been studied by researchers in the field of blockchain have targeted one of the following blockchains:

  • Hyperledger Fabric

    Hyperledger Fabric is an open-source blockchain framework designed for enterprise applications. It offers a modular architecture, enabling customizable consensus protocols and permissioned network configurations. With a focus on scalability, privacy, and interoperability, Hyperledger Fabric provides a robust foundation for building secure and scalable distributed ledger applications in diverse industries [5].

  • EOSIO

    EOSIO is a blockchain protocol known for its high throughput and scalability, making it suitable for decentralized applications (Dapps) that require fast and efficient transaction processing. Utilizing a delegated proof-of-stake consensus mechanism, EOSIO achieves consensus through a network of elected block producers, ensuring decentralized governance and robust performance [19].

  • VNT Chain

    VNT Chain is a blockchain platform that emphasizes privacy, scalability, and interoperability for decentralized applications (Dapps). It leverages innovative techniques such as zero-knowledge proofs and sharding to ensure data confidentiality and enhance transaction throughput. With its focus on secure and efficient data management, VNT Chain offers a compelling solution for various industry applications [6].

  • Ethereum

    Ethereum, a decentralized blockchain platform, revolutionizes the realm of smart contracts and decentralized applications (Dapps). It employs a Turing-complete scripting language and a consensus algorithm called proof of stake to facilitate secure, transparent, and programmable transactions. Ethereum’s vibrant ecosystem and broad developer community contribute to its continuous growth and widespread adoption in various domains [13].

As the name of the same vulnerability could change from one paper to another, we have decided to map the discussed vulnerabilities in those papers to our previous work [20] about vulnerabilities. In addition, for better communication of the results, we have used the same proposed codification.

Table 3 summarizes all the vulnerabilities that have been discussed in our previous work [20]. The first column of this table represents the blockchain platforms where the listed vulnerability could be found according to the selected paper analysis.

Table 3

List of previously discussed vulnerabilities [20]

Primarily examined in Code Vulnerability title
Ethereum SWE-100 Function or state variable default visibility
Ethereum, EOSIO, Hyperledger Fabric SWE-101 Integer overflow and underflow
Ethereum SWE-102 Outdated compiler version
Ethereum SWE-103 Floating compiler version
Ethereum SWE-104 Unchecked call return value
Ethereum, EOSIO, VNT Chain SWE-107 Reentrancy
Ethereum SWE-109 Uninitialized storage pointer
Ethereum SWE-110 Assert violation
Ethereum SWE-111 Use of deprecated solidity functions
Ethereum SWE-112 Delegatecall to untrusted callee
Ethereum SWE-113 DoS with failed call
Ethereum, EOSIO, Hyperledger Fabric SWE-114 Transaction order dependence
Ethereum SWE-115 Authorization through tx.origin
Ethereum, EOSIO, VNT Chain SWE-116 Block values as a proxy for time
Ethereum SWE-117 Signature malleability
Ethereum SWE-118 Incorrect constructor name
Ethereum SWE-119 Shadowing state variables
Ethereum, EOSIO SWE-120 Weak sources of randomness from chain attributes
Ethereum SWE-121 Missing protection against signature replay attacks
Ethereum SWE-122 Lack of proper signature verification
Ethereum SWE-123 Requirement violation by the called smart contract
Ethereum SWE-124 Write to arbitrary storage location
Ethereum SWE-125 Incorrect inheritance order
Ethereum SWE-126 Insufficient gas griefing
Ethereum SWE-127 Arbitrary jump with function type variable
Ethereum, VNT Chain SWE-128 DoS with block gas limit
Ethereum SWE-129 Typographical error
Ethereum SWE-132 Unexpected balance
Ethereum SWE-133 Hash collisions with multiple variable length arguments
Ethereum SWE-134 Message call with the hardcoded gas amount
Ethereum SWE-135 Code with no effects
Ethereum SWE-136 Unencrypted private data on-chain
Ethereum, EOSIO SWE-137 Access control management
Ethereum SWE-138 Locked money
Ethereum SWE-139 Limited stack size
Ethereum, EOSIO, Hyperledger Fabric SWE-140 Improper handling of exceptions
Ethereum, EOSIO SWE-141 Dynamic library
Ethereum, Hyperledger Fabric SWE-142 Typecast
Ethereum SWE-143 Call to the unknown
Ethereum SWE-144 Assembly-based vulnerabilities
Ethereum SWE-145 Loss of ether
Ethereum SWE-146 Double constructor
Ethereum SWE-147 Untrustworthy data feeds
Ethereum SWE-148 Improper or missing event handling
EOSIO SWE-149 Forged transfer notification
Ethereum SWE-150 Money leak
Ethereum SWE-151 Unchecked division
Ethereum SWE-152 Token API violation
Ethereum SWE-153 Using components with known vulnerabilities
Ethereum SWE-154 Built-in symbol shadowing
Ethereum SWE-155 Hardcoded addresses
Ethereum SWE-156 Send to zero address
Ethereum SWE-157 Multiple calls in a single transaction
Ethereum SWE-158 Function clashing
Ethereum, Hyperledger Fabric SWE-159 Business logic vulnerabilities
Ethereum SWE-160 Identity verification
Ethereum SWE-161 Array length manipulation
Hyperledger Fabric SWE-162 Nondeterminism arising from global variable
Hyperledger Fabric SWE-163 Nondeterminism arising from KVS structure iteration
Hyperledger Fabric SWE-164 Nondeterminism arising from reified object addresses
Hyperledger Fabric SWE-165 Nondeterminism arising from concurrency of program
Hyperledger Fabric SWE-166 Nondeterminism arising from generating random number
Hyperledger Fabric SWE-167 Nondeterminism arising from system timestamp
Hyperledger Fabric SWE-168 Nondeterminism arising from Web service
Hyperledger Fabric SWE-169 Nondeterminism arising from system command execution
Hyperledger Fabric SWE-170 Nondeterminism arising from external file accessing
Hyperledger Fabric SWE-171 Nondeterminism arising from external library calling
Hyperledger Fabric SWE-172 Phantom read from a range query
Hyperledger Fabric SWE-173 Field declarations in chaincode structure
Hyperledger Fabric SWE-174 Cross channel chaincode invocation
Hyperledger Fabric SWE-175 Read–write conflict
EOSIO SWE-176 Fake EOS transfer

Tables 47 lists all the vulnerabilities that have been discussed in the selected papers categorized by the type of blockchain that have been studied. Table 4 lists all the discussed vulnerabilities in each selected article that focused on the Hyperledger Fabric blockchain. Table 5 lists all the discussed vulnerabilities in each selected article that focused on the EOSIO blockchain. Table 6 lists all the discussed vulnerabilities in each selected article that focused on the VNT Chain blockchain. Table 7 lists all the discussed vulnerabilities in each selected article that focused on the Ethereum blockchain.

Table 4

Vulnerabilities discovered in Hyperledger Fabric

Article Vulnerability Tools Datasets
[21] SWE-142, SWE-159, SWE-101 go-fuzz, HFContractFuzzer foodtrack, example01, drm, smallbank, marbles
[22] SWE-140, SWE-162, SWE-163, SWE-164, SWE-165, SWE-166, SWE-167, SWE-168, SWE-169, SWE-170, SWE-171, SWE-172, SWE-173, SWE-174, SWE-175, Gochecknoglobals, Errcheck, Gosec, Golint, go test-race, Chaincode Scanner, Kazuhiro et al, tool Two private none disclosed private smart contracts
[23] SWE-114, SWE-104, SWE-175, SWE-162, SWE-163, SWE-164, SWE-165, SWE-166, SWE-167, SWE-168, SWE-169, SWE-170, SWE-171. SCaaS, ZEUS No mention
[24] SWE-107 No mention No mention
[25] SWE-140, SWE-162, SWE-163, SWE-165, SWE-166, SWE-167, SWE-168, SWE-169, SWE-170, SWE-171, SWE-172, SWE-173, SWE-175 Fabric tool, Zeus, ChainCode scanner No mention
Table 5

Vulnerabilities discovered in EOSIO

Paper Vulnerability Tools Datasets
[26] SWE-116, SWE-120, SWE-149, SWE-176, WANA 3,964 smart contract from:
  1. EOSPark

  2. EOS Jungle

  3. Open source platforms

[19] SWE-176, SWE-149, SWE-120, SWE-116 EOSFuzzer, EVulHunter 3,963 smart contract (source not specified)
[27] SWE-101,SWE-137, SWE-140, SWE-114, SWE-120, SWE-107, SWE-141, SWE-176 EvulHunter, EOSafe No mention
[24] SWE-107 Shasha et al, framework No mention
Table 6

Vulnerabilities discovered in VNT Chain

Papers Vulnerability Tools Datasets
[28] SWE-107, SWE-116, SWE-128 Jolt, SMT, PDA, Looper, Zhenguang et al., tool 4,170 SC from VNT Chain
[29] SWE-107, SWE-116, SWE-128 Jolt, SMT, PDA, Looper, Zhenguang et al., tool 4,170 SC from VNT Chain
[30] SWE-107, SWE-116, SWE-128 Jolt, SMT, PDA, Looper, Zhenguang et al., tool 4,170 SC from VNT Chain
[24] SWE-107 Shasha et al, framework No mention
Table 7

Vulnerabilities discovered in Ethereum

Paper Vulnerabilities Tools Datasets
[31] SWE-107, SWE-128, SWE-113, SWE-115 Keras, COLAB web resource Vulnerabilities dataset
SC dataset: Etherscan, SWC registry [32], Consensys [33]
[34] SWE-137, SWE-101, SWE-114, SWE-138, SWE-107, SWE-116, SWE-104, SWE-140 Oyente, Mythril-classical, Securify, SmartCheck, Pied-Piper Etherscan crawling
[35] SWE-137, SWE-101, SWE-128, SWE-113, SWE-114, SWE-107, SWE-116, SWE-140, SWE-138 Securify, SmartCheck, Slither, Oyente, Mythril, Osiris, ContractFuzzer, sFuzz, ILF Smart Contract Benchmark Suites [36]
[37] SWE-101, SWE-107, SWE-116,SWE-114, SWE-137, SWE-139, SWE-140 VeriSolid, ZEUS, Oyente, Osiris, Securify, Vandal, MAIAN, GASPER, SASC No mention
[38] SWE-113 SmartScan, SmartCheck 500 SC from Etherscan
[39] SWE-107, SWE-107, SWE-115, SWE-101 SGUARD 5,000 SC from Etherscan
[26] SWE-138, SWE-112, SWE-116 WANA Ethereum smart contract WASM code was generated using SOLL compiler but without an effective result in the conversion (out of 15,000 SC, only 10 were able to compile to WASM)
[40] SWE-101, SWE-104, SWE-107, SWE-113, SWE-115, SWE-116, SWE-128, SWE-132, SWE-136, SWE-137 SWE-138 Smartcheck Etherscan
[41] SWE-104, SWE-107, SWE-115, SWE-118, SWE-126, SWE-134, SWE-137, SWE-140, SWE-144, SWE-146 Remix IDE static analysis plug-in, Slither, Oyente, Mythril, SmartCheck No mention
[42] SWE-101, SWE-107, SWE-113, SWE-114, SWE-116, SWE-128, SWE-137, SWE-138 SWE-140 Oyente (to label vulnerabilities in those contracts), ContractWard 49,502 real-world smart contracts
[43] depends on the used tools SmartCheck, Securify, VERX, Solidity Instrumentation framework, FSolidM, MAIAN, Mythril No mention
[44] SWE-107 ReDefender Articles, Etherscan
[45] functions call-related vulnerabilities EVM extension 73 SC from Etherscan
[23] SWE-101, SWE-104, SWE-107, SWE-113 SWE-114, SWE-115, SWE-116, SWE-118, SWE-120, SWE-124, SWE-126, SWE-128, SWE-142, SWE-147 SCaaS, Color-inspired Inspection, F* Framework, Isabelle/HOL Framework, KEVM, Vandal, VeriSolid, Oyente, EthIR, Mythril, MAIAN, Manticore, Securify, teEther, SASC No mention
[46] SWE-100, SWE-101, SWE-107, SWE-113 SWE-116, SWE-121, SWE-137 SWE-140, SWE-148 Deckard, SmartCheck, SMARTEMBED 22,725 SC from Etherscan
[47] SWE-107 No mention No mention
[48] No mention Targy, sFuzz No mention
[49] SWE-101, SWE-104, SWE-107, SWE-109, SWE-111, SWE-112, SWE-113, SWE-114, SWE-115, SWE-116, SWE-118, SWE-120, SWE-121, SWE-124, SWE-125, SWE-127, SWE-128, SWE-132, SWE-137, SWE-138, SWE-140, SWE-154, SWE-158 SWE-159 Securify2, Mythril, Slither No mention
[50] SWE-107 EtherSolver [50] 1,000 SC from EtherScan
Benchmark shared by Ghaleb and Pattabiraman
[51] SWE-137, SWE-112, SWE-116, SWE-120 Correas et al tool 1,800 SC from Etherscan whose source code was available on 15th October 2020
[52] SWE-107, SWE-116 Smartcheck, Oyenete, Mythril, Securify, Slither, Osiris, DeeSCVHunter GraphDeeSmartContract [53]
[54] SWE-101, SWE-116, SWE-112, SWE-126 EVM* (a reinforced version of EVM) Embedded the 4 vulnerabilities in 100 smart contracts [55]
[56] SWE-107,SWE-116,SWE-148, SWE-140, SWE-100, SWE-101 Eth2Vec (final created tool), PV-DM 5,000 SC from Etherscan
[57] Not specified VSCL framework, Oyenete, Mythril, Vandal No mention
[58] SWE-114, SWE-116, SWE-128, SWE-113, SWE-101, SWE-120, SWE-136, SWE-153, SWE-125, SWE-141 Slither, SmartCheck, Securify, Mythril, Manticore, sFuzz, Solhint, Ethlint, Mythos 16 Smart contracts from: GitHub repositories such as SWC Registry, not-so-smart-contracts, and Solidity-Security. Ethernaut is an online game for smart contract attacking challenges; blog.positive
[59] SWE-107, SWE-140, SWE-143, SWE-142, SWE-136, SWE-120, SWE-116, SWE-139, SWE-145 Oyente, Solgraph, Madmax, Manticore, SmartCheck, Mythril, ContractLarva, SolMet, Vandal, EthIR, MAIAN, Erays, Rattle, Osiris, Securify, Slither, Ethertrust No mention
[60] Not specified Solidifier No mention
[61] SWE-107, SWE-101, SWE-116 ABCNN 8,632 SC from Etherscan
[62] SWE-107 Peculiar SmartBugs Wild Dataset [63]
[64] SWE-107 Mythril, Slither, Oyente, SmartCheck Etherscan
[65] Not specified Slither No mention
[66] SWE-107, SWE-138, SWE-159 EtherProv Etherscan
[67] SWE-104, SWE-107, SWE-109 SWE-116, SWE-119, SWE-120, SWE-132, SWE-138, SWE-150, SWE-156 Slither Ethereum dataset [68]
[69] SWE-116, SWE-126, SWE-140, SWE-112, SWE-107 SMARTGIFT 66,528 transaction records
Benchmark released with ContractFuzzer [70]
[71] SWE-107, SWE-116 Yuqi et al tool, SmartBugs SolidiFi SmartBugs
[28] SWE-107, SWE-116, SWE-128 Zhenguang et al tool 40,932 SC from Ethereum
[72] SWE-110, SWE-116, SWE-107, SWE-104 OYENTE, Remix Etherscan
[73] SWE-107, SWE-101, SWE-137, SWE-128, SWE-113, SWE-104, SWE-120, SWE-114 Yingjie et al tool, SmartBugs SmartBugs [63]
SolidiFI benchmark [74]
[29] SWE-128, SWE-107, SWE-116 Oyente, Mythril, Smartcheck, Securify, Slither Ethereum network
[75] SWE-101, SWE-107, SWE-120, SWE-137, SWE-140 Jianjun et al tool 2 M SC from the Ethereum in bytecode
CVE hosted vulnerable smart contracts
[76] SWE-101, SWE-104, SWE-107, SWE-110, SWE-137, SWE-137, SWE-112, SWE-114, SWE-120 Echidna, Mythril, Manticore Capture the Ether smart contract game
Ethernaut game
[77] SWE-128, SWE-126, SWE-101 MadMax Scrapped
[78] SWE-107 eThor No mention
[79] SWE-107, SWE-116, SWE-104, SWE-140, SWE-114, SWE-101, SWE-115 SolidiFI [74], Oyente, Securify, Mythril, Manticore, Smartcheck, Slither 50 SC
[80] SWE-107, SWE-137 ÆGIS, ECFChecker, Sereum 675,444 SC from Ethereum
[81] SWE-107 Noama et al tool, Reguard, ContractFuzzer 6 SC from Etherscan
[82] SWE-118, SWE-100, SWE-119, SWE-142, SWE-125, SWE-109, SWE-129, SWE-111 Smart contract analyzer [83] 55,046 SC from Etherscan
[84] SWE-124, SWE-116, SWE-115, SWE-112, SWE-138, SWE-113, SWE-143, SWE-151, SWE-101, SWE-136, SWE-107, SWE-104, SWE-114, SWE-145, SWE-137, SWE-137, SWE-100, SWE-128, Static analyzers: OYENTE, Maian, Gasper, Teether, sCompile, Solar, Securify, MadMax, Vandal, EtherTrust, Zeus, LSTM (Tann et al machine learning), Ether* (N-gram model machine learning), SmartCheck, Servois, SIF, Slither, SmartEmbed, Mythril, SmartScopy, EasyFlow, EVulnHunter No tests where made
Dynamic analyzer: ContractFuzzer, ETHRacer, Harvey, Bran, Reguard, ContraMaster, Annotary, Manticore, FEther, ContractMut, Hydra framework, ContractVis, (Runtime monitors), ECFChecker, DappGuard, ContractLarva, Sereum, HoneyBadger (honeypot discover)
[85] SWE-126, SWE-140, SWE-107, SWE-116, SWE-112, SWE-101, SWE-138 sfuzz, ContractFuzzer, Oyente 4,112 SC from EtherScan
[86] SWE-138, SWE-116, SWE-126, SWE-112 Artemis, Maian 13,100 SC from Etherscan
[87] SWE-100, SWE-101, SWE-104, SWE-107, SWE-112, SWE-113, SWE-114, SWE-115, SWE-116, SWE-120, SWE-121, SWE-123, SWE-126, SWE-128, SWE-136, SWE-137, SWE-138, SWE-140, SWE-141, SWE-142, SWE-143, SWE-145 No mention No mention
[88] SWE-107, SWE-137, SWE-101, SWE-104, SWE-113, SWE-120 SCScan 1,000 SC from the Etherscan
[89] Not specified SmartEmbeed [90] 22 K SC from Ethereum
[91] SWE-140, SWE-126, SWE-107, SWE-116, SWE-112, SWE-138, GasFuzzer, Contractfuzzer 3,170 SC from Etherscan
[92] SWE-100, SWE-141, SWE-115, SWE-159, SWE-113, SWE-128, SWE-136, SWE-114, SWE-101, SWE-151, SWE-104 No mention No mention
[93] SWE-159 DEPOSafe Not specified
[94] SWE-107 Clairvoyance, Slither, Oyente, Securify 11714 real-world contracts from Etherscan
[95] SWE-107 Clairvoyance, Slither, Oyente, Securify 11714 real-world contracts from Etherscan
[96] SWE-137, SWE-101, SWE-120, SWE-113, SWE-114, SWE-107, SWE-116, SWE-104, SWE-109, SWE-138 SmartBugs [63], HoneyBadger, Maian, Manticore, Mythril, Osiris, Oyente, Securify, Slither, SmartCheck, SolHint 143 annotated vulnerable contracts with 208 tagged vulnerabilities
47,518 SC from Etherscan
[97] SWE-116, SWE-126, SWE-120, SWE-107, SWE-112 Solar, teether, Mythril, ContractFuzzer Etherscan
[98] SWE-137, SWE-101, SWE-120, SWE-113, SWE-114, SWE-107, SWE-116, SWE-104 SmartBugs, contractLarva, E-EVM, Echidna, Erays, Ether, Ethersplay, EtherTrust, EthIR, FSolidM, Gasper, HoneyBadger, KEVM, MadMax, Maian, Manticore, Mythril, Octopus, Osiris, Oyente, Porosity, rattle, ReGuard, Remix, SASC, sCompile, Securify, Slither, Smartcheck, Solgraph, Solhint, SolMet, teEther, Vandal, VeriSol, Zeus GitHub repositories
Blog posts that analyze contracts
The Ethereum network
[99] SWE-101, SWE-128, SWE-104, SWE-107, SWE-112, SWE-132, SWE-113, SWE-100, SWE-109, SWE-118, SWE-141, SWE-142, SWE-121, SWE-115, SWE-137, SWE-150, SWE-136, SWE-102 No mention No mention
[9] SWE-137, SWE-137, SWE-128, SWE-115, SWE-126, SWE-127, SWE-100, SWE-100, SWE-136, SWE-112, SWE-107 No mention No mention
[100] SWE-107, SWE-101, SWE-120, SWE-137 TestBreeder to generate test cases, Manticore, SmartCheck, Slither, MythX, Securify No mention
[101] SWE-114, SWE-151, SWE-116, SWE-101, SWE-139, SWE-107, SWE-145, SWE-143, SWE-120, SWE-115 Fuse Framework, the bugs framework, GoatCasino, Truffle framework, MythX No mention
[102] SWE-107, SWE-116, SWE-120, SWE-126, SWE-136, SWE-139 SWE-140, SWE-142, SWE-143, SWE-145 Oyente, Remix-IDE, Solgraph, MadMax, Manticore, SmartCheck, Mythril, ContractLarva, SolMet, Vandal, EthIR, MAIAN, Erays, Rattle, Osiris, Scurify, Slither, EtherTrust No mention
[103] SWE-107, SWE-113, SWE-140, SWE-126, SWE-141, SWE-137, SWE-150, SWE-101, SWE-128, SWE-114, SWE-116, SWE-115, SWE-139, SWE-120, Zeus, VeriSolid, Vandal, Teether, SmartScopy, SmartCheck, Securify, Oyente, Osiris, MadMax, KFrameWork-EVM-Semantics, Interactive theorem Provers, Gasper, FsolidM, FVF*, EtherTrust, DappGaurd, sCompile, Vultron, Sereum, Regaurd, Maian, EasyFlow, ContractFuzzer No mention
[104] SWE-107, SWE-139, SWE-116, SWE-101, SWE-104, SWE-137 Ziyuan et al tool Dataset, Etherscan
[105] SWE-107 Re-entrancy Analyzer Not specified
[27] SWE-101, SWE-137, SWE-140, SWE-114, SWE-120, SWE-107, SWE-141 Oyente, Securify, Mythril, Manticore, teEther, MAIAN, ContractFuzzer, EvulHunter, EOSafe No mention
[106] SWE-100, SWE-101, SWE-104, SWE-107, SWE-116, SWE-120, SWE-137, SWE-160 Oyente, Mythril, porosity No mention
[107] Oyente detected vulnerabilities MSgram model, S-gram, Oyente Etherscan.io
[108] SWE-100, SWE-101, SWE-102, SWE-103, SWE-104, SWE-107, SWE-109, SWE-111, SWE-112, SWE-113, SWE-114, SWE-115, SWE-116, SWE-119, SWE-120, SWE-122, SWE-123, SWE-124, SWE-125, SWE-126, SWE-128, SWE-129, SWE-136, SWE-137, SWE-139, SWE-143, SWE-144, SWE-147, SWE-151, Asset violation SmartCheck, Slither, Oyente, Mythril, Securify No mention
[30] SWE-107, SWE-116, SWE-128 Smartcheck, Oyente, Mythril, Securify, Vanilla-rnn, lstm, gru, gcn, dr-gcn, tmp 40,932 SC from Ethereum
[24] SWE-107 No mention No mention
[109] SWE-107 ReJection, Slither 8 SC vulnerable to reentrancy
[110] SWE-107, SWE-101, SWE-112, SWE-100, SWE-114, SWE-116 Slither, Mythx, Mythril, manticore, Securify, Smartcheck, Echidna, Oyente, Vandal, Zeus No mention
[111] SWE-107 VulDeeSmartContract (their tool also called BLSTM-ATT) [112], Securify, SmartCheck, Mythril, Oyente 42,000 SC from Etherscan
[113] SWE-101, SWE-128, SWE-113, SWE-116, SWE-100, SWE-109, SWE-115, SWE-112, SWE-114, SWE-107, SWE-118 No mention No mention
[114] INVALID bytecodes SAFEVM, VeryMax, SeaHorn, CPAchecker, Oyente, EthIR 10,796 SC from Etherscan
[115] SWE-100, SWE-101, SWE-103, SWE-104, SWE-107, SWE-113, SWE-114, SWE-115, SWE-116, SWE-120, SWE-126, SWE-128, SWE-129, SWE-132, SWE-137, SWE-140, SWE-141, SWE-143, SWE-144, SWE-151, SWE-155, SWE-161 Oyente, ContractFuzzer, Securify, SmartCheck No mention
[116] Not specified SolMet, MAIAN, ZEUS, Securify, Mythril, SmartDec, Solgraph No mention
[117] SWE-159 No mention
[118] Not specified MPro, Mythril-Classic, Slither. No mention
[119] SWE-101, SWE-151, SWE-116, SWE-115, SWE-104, SWE-140 SolAnalyser, Oyente, Securify, Maian, SmartCheck, Mythril 1,838 SC from Etherscan
[25] SWE-107, SWE-137, SWE-101, SWE-138, SWE-112, SWE-114, SWE-120, SWE-116, SWE-140, SWE-121 Oyente, Securify, Zeus, Octopus, Thether, Mythril, Smartchack, Manticore No mention
[120] SWE-107, SWE-116 Oyente 20 SC from Ethereum
[55] SWE-101, SWE-116 EVM* 10 SC with known vulnerabilities
[121] SWE-107, SWE-140, SWE-126, SWE-101 VULTRON No mention
[122] SWE-114, SWE-116, SWE-140, SWE-107 OYENTE, MAIAN, Mythril, Evmdis, Miasm, Porosity 4,979,625 SC from Ethereum
[123] SWE-126 -Mythril-enhanced version 167,698 SC From Ethereum
[124] SWE-101, SWE-104, SWE-107, SWE-109, SWE-111, SWE-112, SWE-115, SWE-119, SWE-120 SWE-132, SWE-137, SWE-138, SWE-140, SWE-144, SWE-150, SWE-152, SWE-154, SWE-155, SWE-157 Slither, Mythril Classic, their own ML tool No mention
[125] SWE-119, SWE-109, SWE-107, SWE-137, SWE-138, SWE-132 Slither, Securify, SmartCheck, Solhint, Surya 1,000 most used smart contracts
[126] SWE-143, SWE-126, SWE-140, SWE-142, SWE-107, SWE-136, SWE-145, SWE-139, SWE-120, SWE-116 Mythril No mention
[127] SWE-116, SWE-104, SWE-107, SWE-114 NPChecker, Securify, Oyente, Mythril 30K SC from Ethereum’s main net
[128] SWE-101, SWE-104, SWE-107, SWE-110, SWE-114, SWE-115, SWE-116, SWE-137 SWE-144, SoliAudit, Oyente, remix 21,044 SC from etherscan
Vulnerabilities labeled by Oyente and Remix
[129] SWE-101 Gbadebo et al tool No mention
[130] SWE-107, SWE-101, SWE-112, SWE-114, SWE-137, SWE-140, SWE-104 Mythril (their enhanced version) 1,000 SC from Etherscan
[131] SWE-128, SWE-126, SWE-101 MadMax No mention
[21] SWE-126, SWE-140, SWE-107, SWE-116, SWE-112, SWE-138 ContractFuzzer No mention
[132] SWE-107 ReGuard 5 SC from Etherscan
[133] SWE-100 SWE-101, SWE-103, SWE-104, SWE-107, SWE-113, SWE-115, SWE-116, SWE-128, SWE-132, SWE-136, SWE-138, SWE-143, SWE-151, SWE-152 SmartCheck 4,600 SC from etherscan
[134] SWE-139, SWE-107, SWE-114, SWE-116 SASC, oyente 4,744 SC from etherscan
[8] SWE-141, SWE-120, SWE-116, SWE-136, SWE-114, SWE-147, SWE-145, SWE-140, SWE-143, SWE-126, SWE-104, SWE-142, SWE-107, SWE-101, SWE-100, SWE-115, SWE-113 Oyente, Remix, F*, Gasper, Securify, S. Analysis, SmartCheck, Imandra, Mythril Smart contract extracted from Openzeppelin’s blog

From each article, we have identified what tools were used to discover those vulnerabilities and the datasets that contain those vulnerabilities that have been used to test the used tools. Most articles listed in those tables have deployed their frameworks and models to find those vulnerabilities. However, some of them have only benchmarked the existing tools in the market to check their effectiveness in discovering multiple critical ones.

Unfortunately, not all researchers have published their tools or at least their datasets, which makes their verification a difficult task.

Due to the absence of scientific articles that substantiate or elucidate the employed techniques for all the tools mentioned in the preceding tables, our selection for inclusion in Table 8 is based on two criteria:

  1. The tool should be proposed by one of the articles selected for this research.

  2. The proposed tool, framework, or technique should be technically implemented and tested and not only theoretically discussed.

Table 8

List of proposed tools and frameworks for smart contract vulnerability detection in the selected papers

Tool Blockchain Type Based on ML/ALGO Articles Source code availability
HFContractFuzzer Hyperledger Fabric Dynamic ALGO [21] No
MadMax Ethereum Static ALGO [77,131] https://github.com/nevillegrech/MadMax.
eThor Ethereum Static ALGO [78] https://secpriv.wien/ethor
SAFEVM Ethereum Static ALGO [114] http://costa.fdi.ucm.es/papers/costa/safevm.ova
SCStudio Ethereum Static ALGO [34] https://github.com/FISCO-BCOS/SCStudio
ÆGIS Ethereum Dynamic ALGO [80] https://github.com/christoftorres/Aegis
ContractFuzzer Ethereum Hybrid ALGO [21] https://github.com/gongbell/ContractFuzzer
Noama et al. Ethereum Hybrid ALGO [81] No
SmartScan Ethereum Hybrid ALGO [38] https://smartscan.cs.ryerson.ca:4638/
SGUARD Ethereum Static ALGO [39] https://github.com/reentrancy/sGuard
WANA EOSIO, Ethereum Static ALGO [26] https://github.com/gongbell/wana
MPro Ethereum Static ALGO [118] https://github.com/QuanZhang-William/M-Pro
SolAnalyser Ethereum Hybrid ALGO [119] No
sFuzz Ethereum Dynamic ALGO [85] https://sfuzz.github.io
Smartcheck Ethereum Static ALGO [40] https://github.com/smartdec/smartcheck
Artemis Ethereum Static ALGO [86] No
ContractWard Ethereum Static ML [42] No
ReGuard Ethereum Dynamic ALGO [132] No
SCScan Ethereum Static ML [88] No
SmartEmbed Ethereum Static ML [89] https://github.com/beyondacm/SmartEmbed
GasFuzzer Ethereum Hybrid ALGO [91] No
SmartCheck Ethereum Static ALGO [133] https://github.com/smartdec/smartcheck
DEPOSafe Ethereum Hybrid ALGO [93] No
ReDefender Ethereum Dynamic ALGO [44] No
Clairvoyance Ethereum Static ALGO [94] https://toolman-demo.readthedocs.io/en/latest/index.html
Sooyeon et al. tool Ethereum Hybrid ALGO [45] No
Zemin Tian, OYENTE Ethereum Static ALGO [120] No
SmartCheck Extended Ethereum Static ALGO [96] https://smartbugs.github.io
Solar Ethereum Static ALGO [97] No
VULTRON Ethereum Dynamic ALGO [121] No
YuXing et al. tool Ethereum Dynamic ALGO [47] No
Targy (implemented in sFuzz) Ethereum Dynamic ALGO [48] No
enhanced version of OYENTE Ethereum Static ALGO [122] No
Kazuhiro et al. Hyperledger Fabric Static ALGO [22] No
Mythril (extended) Ethereum Static ALGO [123] No
Pouyan et al. Ethereum Static ML [124] No
Kim et al. Ethereum Static ALGO [100] No
Slither Ethereum Static ALGO [125] https://github.com/crytic/slither
SASC Ethereum Static ALGO [134] No
EtherSolve Ethereum Static ALGO [50] https://github.com/SeUniVr/EtherSolve/tree/ICPC-2021
CORREAS et al. Ethereum Static ALGO [51] NO
DeeSCVHunter Ethereum Static ML [52] https://github.com/MRdoulestar/DeeSCVHunter
Fuchen et al. Ethereum Dynamic ALGO [54] https://github.com/FISCO-BCOS/FISCO-BCOS
Eth2Vec Ethereum Static ML [56] https://github.com/fseclab-osaka/eth2vec
VSCL Ethereum Static ML [57] No
ESAF Ethereum Hybrid ALGO [59] https://github.com/alopezvivar/ESAF-PSEUDOCODE
Solidifier Ethereum Static ALGO [60] https://github.com/blockhousetech/research/tree/master/Solidifier
Yuhang et al. Ethereum Static ML [61] No
Peculiar Ethereum Static ML [62] https://github.com/wuhongjun15/Peculiar
Ben et al. Ethereum Static ML [64] No
Wanqing et al. Ethereum Static ML [65] No
EtherProv Ethereum Hybrid ALGO [66] https://github.com/shomzy/EtherProv
SmartGift Ethereum Dynamic ML [69] https://github.com/chaoweilanmaohahaha/SmartGift
Yuqi et al. Ethereum Static ML [71] No
Zhenguang et al. Ethereum, VNT Chain Static ML [28] https://github.com/Messi-Q/AMEVulDetector
SC-VDM Ethereum Static ML [72] No
Yingjie et al. Ethereum Static ML [73] No
GPSCVulDetector Ethereum, VNT Chain Static ML [29] https://github.com/Messi-Q/GPSCVulDetector
Jianjun et al. Ethereum Static ALGO [75] No
Ziyuan et al. Ethereum Static ALGO [104] No
EOSFuzzer EOSIO Hybrid ALGO [19] No
RA Ethereum Static ALGO [105]
Zhen et al. Ethereum Static ML [107] https://github.com/yz1019117968/MSgramDataset.git
Yuan et al. (AI) Ethereum, VNT Chain Static ML [30] No
Shasha et al. generic Static ALGO [24] No
ReJection Ethereum Static ALGO [109] No
PENG et al. Ethereum Static ML [111] https://github.com/MessiQ/VulDeeSmartContract
NPChecker Ethereum Static ALGO [127] No
SoliAudit Ethereum Hybrid ML [128] https://github.com/jianwei76/SoliAudit
MENGLIN et al. Ethereum Hybrid ALGO [130] No

The collected tools are presented in Table 8 and classified based on three main characteristics:

  • Blockchain technology supporting

  • Type of the tools (static, dynamic, or hybrid)

  • The type of logic used to find vulnerabilities (artificial intelligence or algorithm)

  • Source code availability

5 Discussion

This section aims at answering the research questions, by combining the different aforementioned smart contract vulnerabilities. It should be noted that the systematic review results may have been impacted by multiple parts such as the selection of databases, researchers’ ideas, and time restrictions.

5.1 What are all the studied smart contract vulnerabilities?

According to our analysis performed on the selected articles, all smart contracts were developed utilizing the Hyperledger Fabric, EOSIO, Ethereum, or VNT Chain as the underlying platforms. Consequently, the classification of smart contract vulnerabilities often aligns with the specific Blockchain platforms on which they manifest. Nevertheless, certain vulnerabilities exhibit technical similarities and possess a more generic nature, enabling their occurrence across multiple types of blockchains.

Figure 3 illustrates the frequency of articles that have presented a comprehensive analysis of a specific vulnerability. As you can see, only 3 of 72 vulnerabilities have never been discussed in one of the selected articles.

In addition, multiple articles have extensively investigated vulnerabilities such as SWE-107, SWE-116, and SWE-101.

According to our research results, the SWE-107 vulnerability has emerged as the most prevalent vulnerability within the selected article. Its prominence can be attributed to its association with the infamous DAO hack, which served as a catalyst for the Ethereum hard fork. The widespread interest in addressing this vulnerability has spurred a substantial body of research, characterized by a multitude of scholarly articles dedicated to its investigation and mitigation. In addition, our current understanding suggests that the prevalence of this vulnerability in smart contracts can be attributed, in part, to the similarity of use cases observed across various types of smart contracts, such as tokens and nonfungible tokens (NFTs).

Moreover, some of the articles that addressed this vulnerability have even divided it into four subtypes: the fallback function-based re-entrancy, the create-based reentrancy, the cross-function reentrancy, and the delegated call Reentrancy. However, this categorization is not very popular among the papers that have discussed this vulnerability.

At some point in the development of any type of application, knowing the time or the date at which an operation is executed is mandatory. Therefore, a common behavior from developers was to use the block information as a source of such information. However, this behavior has created a popular vulnerability codified as SWE-116. Unfortunately, the wide use of this technique to know the time has made this vulnerability very common in smart contracts, which attracted more security researchers to analyze it and build frameworks to find it.

The SWE-101 vulnerability concern the integer over/underflow. This vulnerability is very common among programing languages especially those that are very close to the machine language. Therefore, abording this subject might be easily compared to more complex and blockchain-specific vulnerabilities.

5.2 What are the vulnerabilities that have not been widely studied?

According to the results of our research, the average number of articles for each vulnerability is about 9.4 (Figure 4). This result means that every 10 vulnerabilities have at least been cited in 94 articles. On the basis of this result, we have decided that a vulnerability is considered poorly studied if it has nine papers or fewer that cite it.

Figure 4 
                  Number of papers that have discussed each vulnerability.
Figure 4

Number of papers that have discussed each vulnerability.

Therefore, according to these criteria, we have found that more than 71% of the existing vulnerabilities were not widely discussed by research in this field. Those vulnerabilities are as follows: SWE-109, SWE-139, SWE-141, SWE-142, SWE-132, SWE-145, SWE-151, SWE-118, SWE-159, SWE-119, SWE-121, SWE-144, SWE-111, SWE-124, SWE-125, SWE-150, SWE-103, SWE-110, SWE-129, SWE-147, SWE-162, SWE-163, SWE-165, SWE-166, SWE-167, SWE-168, SWE-169, SWE-170, SWE-171, SWE-175, SWE-176, SWE-102, SWE-123, SWE-127, SWE-148, SWE-149, SWE-152, SWE-154, SWE-155, SWE-164, SWE-172, SWE-173, SWE-122, SWE-134, SWE-146, SWE-153, SWE-156, SWE-157, SWE-158, SWE-160, SWE-161, SWE-174, SWE-117, SWE-133, and SWE-135.

This result could be explained by the fact that some vulnerabilities are either not very dangerous compared to others or they are specific to blockchains that are themselves not widely used or simply not known enough to become subject to research.

The SWE-103 vulnerability is related to a floating pragma that may lead unintentionally to include compiler-based vulnerabilities if compiled by older or newer versions of solidity. This issue is a good example of a specific vulnerability that could only be found on Ethereum-based smart contracts, especially those built by solidity. Moreover, most security research works do not give this vulnerability a big intention as its impact could in some situations be considered negligible.

Three of the vulnerabilities listed in this research were never studied in all the selected articles, which are SWE-117, SWE-133, and SWE-135. Both SWE-117 and SWE-133 are vulnerabilities related to cryptography implementation issues. Both vulnerabilities are not very popular as that implementation could be considered a rare use case of smart contacts.

The SWE-135 vulnerability is related to code left in the smart contract with no effects. This vulnerability is very dangerous that could lead to financial losses. Unfortunately, no article has ever discussed these types of vulnerabilities among the selected articles.

In addition, only less than 24% were massively studied by the selected articles. Those vulnerabilities are SWE-107, SWE-116, SWE-101, SWE-137, SWE-114, SWE-140, SWE-120, SWE-104, SWE-128, SWE-113, SWE-112, SWE-115, SWE-126, SWE-138, SWE-100, SWE-136, and SWE-143.

5.3 What are the developed frameworks and methods to find those vulnerabilities?

As the adoption of smart contract technology proliferates among companies and individuals, the daily deployment rate of smart contracts continues to escalate. Furthermore, a growing number of individuals have harnessed smart contracts to address various challenges [135]. This widespread adoption across multiple domains has concurrently augmented the complexity of smart contracts, rendering manual vulnerability discovery a daunting and time-intensive task.

For this reason, many security researchers have proposed tools and frameworks to find those vulnerabilities using different concepts and techniques.

To address this inquiry, we formulated a selection criterion for our analysis. We specifically targeted articles that introduced novel frameworks, providing comprehensive insights into their internal workings. Consequently, articles primarily focused on framework comparisons were excluded from our examination. Moreover, articles solely presenting theoretical concepts lacking technical implementations were also disregarded.

Table 8 presents a comprehensive compilation of frameworks detailed in the selected articles, encompassing the employed vulnerability detection techniques as well as the availability of corresponding source code or binary. Our findings reveal a notable overlap between the vulnerability detection techniques utilized in traditional applications and those employed in smart contracts. This means that techniques like symbolic execution [120], pattern matching [34], data flow analysis [62], control flow [50] analysis, fuzzing, and many others [136,137] are used to find smart contract vulnerabilities.

These frameworks can be categorized into three primary types: static analysis-based frameworks, dynamic analysis-based frameworks, and hybrid analysis-based frameworks [136,137]. Furthermore, certain frameworks were specifically developed to address distinct vulnerabilities, such as re-entrancy (SWE-107), while others aimed to detect a range of vulnerabilities. Regrettably, only 31 of 69 frameworks have made their source code publicly available, facilitating verification and utilization in future research endeavors.

5.4 To what kind of smart contract vulnerabilities the ML was applied?

Likewise, in classic applications, ML technology was also used in vulnerability research in smart contracts. Ziyuan et al. [104] have used ML technology to discover vulnerabilities like the re-entrancy (SWE-107) and used block values as a proxy for time (SWE-116). Daojing et al. [106] have also used ML technology to find multiple vulnerabilities like SWE-107, SWE-116, SWE-148, SWE-140, SWE-100, and SWE-101. However, the most relevant research was the one performed by Momeni et al. [124] where they used four different machine-learning techniques to build multiple models that are capable to detect specific vulnerabilities.

The resulting model developed by this team was capable to find 16 different vulnerabilities with an average accuracy of 95%. What makes this research very relevant is the number of vulnerabilities that could be discovered with this level of accuracy.

Table 9 presents the result of our research:

Table 9

List of presented smart contract vulnerability detection ML models in the selected articles

Tool Paper Blockchain Type Vulnerabilities
ContractWard [42] Ethereum Static SWE-101, SWE-107, SWE-113, SWE-114, SWE-116, SWE-128, SWE-137, SWE-138, SWE-140
SCScan [88] Ethereum Static SWE-107, SWE-137, SWE-101, SWE-104, SWE-113, SWE-120
SmartEmbed [89] Ethereum Static Not specified
Momeni et al. [124] Ethereum Static SWE-101, SWE-104, SWE-107, SWE-109, SWE-111, SWE-112, SWE-115, SWE-119, SWE-120 SWE-132, SWE-137, SWE-138, SWE-140, SWE-144, SWE-150, SWE-152, SWE-154, SWE-155, SWE-157
DeeSCVHunter [52] Ethereum Static SWE-107, SWE-116
Eth2Vec [56] Ethereum Static SWE-107,SWE-116,SWE-148, SWE-140, SWE-100, SWE-101
VSCL [57] Ethereum Static Not specified
Sun and Gu [61] Ethereum Static SWE-107, SWE-101, SWE-116
Peculiar [62] Ethereum Static SWE-107
Wang et al. [64] Ethereum Static SWE-107
Jie et al. [65] Ethereum Static Not specified
SmartGift [69] Ethereum Dynamic SWE-116, SWE-126, SWE-140, SWE-112, SWE-107
Fan et al. [71] Ethereum Static SWE-107, SWE-116
Liu et al. [28] Ethereum, VNT Chain Static SWE-107, SWE-116, SWE-128
SC-VDM [72] Ethereum Static SWE-110, SWE-116, SWE-107, SWE-104
Xu et al. [73] Ethereum Static SWE-107, SWE-101, SWE-137, SWE-128, SWE-113, SWE-104, SWE-120, SWE-114
GPSCVulDetector [29] Ethereum, VNT Chain Static SWE-128, SWE-107, SWE-116
Yang et al. [107] Ethereum Static Not specified
Zhuang et al. (AI) [30] Ethereum, VNT Chain Static SWE-107, SWE-116, SWE-128
Qian et al. [111] Ethereum Static SWE-107
SoliAudit [128] Ethereum Hybrid SWE-101, SWE-104, SWE-107, SWE-110, SWE-114, SWE-115, SWE-116, SWE-137, SWE-144

However, according to our results, we have discovered that most ML implementations have targeted the Ethereum virtual machine-based smart contracts. Moreover, no machine-learning model has been developed to target Hyperledger fabric or any other private or public Blockchains.

5.5 What are the used Smart contract datasets?

Most of the used smart contracts came from the Etherscan platform. This platform offers a free service of continuous Ethereum blockchain scrapping to allow reading information. In addition, the platform allows developers to validate their smart contracts by submitting their source code and verifying it to add credibility to their smart contracts. This verification process helps increase the smart contract source code dataset. However, the dataset offered by Etherscan is not labeled in terms of vulnerable functions. About 35% of the researchers in the selected articles have used this dataset.

However, for labeled smart contracts source code, some researchers have used Smart bugs or Solidifi-benchmark or both to check their models and algorithms. Solidifi-benchmark has used 9369 defects from 7 distinct problem categories, including reentrancy, timestamp dependence, unchecked transmit, TOD, integer overflow/underflow, and usage of tx.origin, to build a dataset of flawed contracts in the SolidiFI-benchmark repository using SolidiFI.

The Smartbugs dataset also offers hundreds of labeled vulnerable smart contracts that can be used to train or test models.

Unfortunately, a big part of the selected articles did not specify the used dataset for their research and others have performed manual collection of vulnerable smart contracts using GitHub or any website citing vulnerable smart contracts or even CTFs like Ethernaut.

6 Conclusions

This research undertaking entails a comprehensive examination of the corpus of scholarly literature encompassing the period between 2016 and 2021, with a primary focus on the meticulous scrutiny of papers addressing the detection of vulnerabilities inherent in smart contract technology. The primary aim of this investigation is to undertake a systematic and thorough extraction and compilation of all vulnerabilities that have been meticulously examined and documented within the aforementioned corpus of scholarly articles. The secondary objective is to extract and analyze the various techniques employed by researchers in the identification and discovery of vulnerabilities inherent in smart contracts, with a specific emphasis on ML models. Furthermore, an additional goal of this study is to collect and consolidate a comprehensive repository of ML datasets that can be utilized by future researchers to construct robust machine learning (ML) models capable of effectively addressing the challenge of vulnerable smart contracts.

The outcomes obtained from our research yield cause for concern, as it reveals an inadequate level of coverage in addressing all the vulnerabilities identified within the domain of interest. A concerning aspect is the limited number of blockchain platforms that have been subjected to scientific investigations specifically centered around the security of their smart contracts. In our comprehensive analysis, we observed that only four blockchain platforms were the subject of such focused research. The growing prevalence of smart contracts as problem-solving tools, combined with the inherent instability of the technologies employed in their construction, contributes significantly to the emergence of vulnerable smart contracts. The findings discussed in our research serve as a valuable resource for developers, urging them to exercise increased diligence in their development practices to mitigate the occurrence of vulnerabilities. By prioritizing attention to detail, developers can enhance the overall safety and security of the blockchain network, thus maximizing its usability and minimizing potential risks for users.

It is important to acknowledge a constraint inherent in our study, namely, the analysis limited to articles published within the temporal framework of 2016 to 2021. This restriction imposes a temporal boundary on the comprehensiveness of our findings. In addition, the nomenclature disparity among blockchains, wherein some may not explicitly refer to their decentralized applications (Dapps) as “smart contract” potentially resulted in the inadvertent omission of relevant literature exploring similar themes. This limitation may have resulted in the exclusion of valuable insights and perspectives from the analysis.

  1. Author contributions: The author confirms sole responsibility for writing the entire paper and conducting all research, under the supervision of Professor Hanan El Bakkali.

  2. Conflict of interest: The authors declare that they have no conflicts of interest.

  3. Data availability statement: The data used to support the findings of this article are available from the corresponding author upon request.

References

[1] Cryptocurrency Prices, Charts And Market Capitalizations,” CoinMarketCap. https://coinmarketcap.com/ (accessed Dec. 02, 2022).Search in Google Scholar

[2] Ethereum Statistics (2022). https://www.alchemy.com/overviews/ethereum-statistics (accessed Dec. 02, 2022).Search in Google Scholar

[3] Shabani Baghani A, Rahimpour S, Khabbazian M. The DAO induction attack: Analysis and countermeasure. IEEE Internet Things J. Apr. 2022;9(7):4875–87. 10.1109/JIOT.2021.3108154.Search in Google Scholar

[4] A Postmortem on the Parity Multi-Sig Library Self-Destruct | Parity Technologies. https://www.parity.io/blog/a-postmortem-on-the-parity-multi-sig-library-self-destruct/ (accessed Nov. 18, 2022).Search in Google Scholar

[5] Androulaki E, Barger A, Bortnikov V, Cachin C, Christidis K, De Caro A, et al. Hyperledger fabric: a distributed operating system for permissioned blockchains. In: Proceedings of the Thirteenth EuroSys Conference. Porto Portugal: ACM; Apr. 2018. p. 1–15. 10.1145/3190508.3190538.Search in Google Scholar

[6] Chain VNT. https://vntchain.io/ (accessed Sep. 22, 2022).Search in Google Scholar

[7] Homepage | Solana Docs. https://docs.solana.com/ (accessed Nov. 18, 2022).Search in Google Scholar

[8] Dika A, Nowostawski M. Security vulnerabilities in Ethereum smart contracts. In: 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). Halifax, NS, Canada: IEEE; Jul. 2018. p. 955–62. 10.1109/Cybermatics_2018.2018.00182.Search in Google Scholar

[9] Bouichou A, Mezroui S, Oualkadi AE. An overview of Ethereum and Solidity vulnerabilities. In: 2020 International Symposium on Advanced Electrical and Communication Technologies (ISAECT). Marrakech, Morocco: IEEE; Nov. 2020. p. 1–7. 10.1109/ISAECT50560.2020.9523638 Search in Google Scholar

[10] Nakamoto S. Bitcoin: A Peer-to-Peer Electronic Cash System.Search in Google Scholar

[11] Nick S. Smart Contracts. https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html (accessed Nov. 18, 2022).Search in Google Scholar

[12] Bitcoin Wiki. https://fr.bitcoin.it/wiki/Accueil (accessed Nov. 18, 2022).Search in Google Scholar

[13] Buterin V. Ethereum: A Next-Generation Smart Contract and Decentralized Application Platform. p. 36.Search in Google Scholar

[14] Team S. Releases. https://blog.soliditylang.org/category/releases/ (accessed Dec. 02, 2022).Search in Google Scholar

[15] Ying I, Saposnik G, Vermeulen MJ, Leung A, Ray JG. Nonalcoholic fatty liver disease and acute ischemic stroke. Epidemiology. Jan. 2011;22(1):129–30. 10.1097/EDE.0b013e3181feb50a.Search in Google Scholar PubMed

[16] Kitchenham B, Charters S. Guidelines for performing Systematic Literature Reviews in Software Engineering. UK: Keele University and Durham University; Vol. 2, 2007.Search in Google Scholar

[17] Kitchenham B. Procedures for Performing Systematic Reviews. Keele, UK: Keele University. 2004 Jul, Vol. 33, No. 2004, p. 1–26.Search in Google Scholar

[18] Wang G, Zhang S, Yu T, Ning Y. A systematic overview of blockchain research. J Syst Sci Inf. Jun. 2021;9(3):205–38. 10.21078/JSSI-2021-205-34.Search in Google Scholar

[19] Huang Y, Jiang B, Chan WK. EOSFuzzer: Fuzzing EOSIO smart contracts for vulnerability detection. In: 12th Asia-Pacific Symposium on Internetware. Singapore Singapore: ACM; Nov. 2020. p. 99–109. 10.1145/3457913.3457920.Search in Google Scholar

[20] Zaazaa O, El Bakkali H. Unveiling the landscape of smart contract vulnerabilities: A detailed examination and codification of vulnerabilities in prominent blockchains. In: International Journal of Computer Networks & Communications; 2023.10.5121/ijcnc.2023.15603Search in Google Scholar

[21] Ding M, Li P, Li S, Zhang H. HFContractFuzzer: Fuzzing hyperledger fabric smart contracts for vulnerability detection. In: Evaluation and Assessment in Software Engineering. Trondheim Norway: ACM; Jun 2021. p. 321–8. 10.1145/3463274.3463351.Search in Google Scholar

[22] Yamashita K, Nomura Y, Zhou E, Pi B, Jun S. Potential risks of hyperledger fabric smart contracts. In: IEEE International Workshop on Blockchain Oriented Software Engineering (IWBOSE). Hangzhou, China: IEEE; Feb. 2019. p. 1–10. 10.1109/IWBOSE.2019.8666486.Search in Google Scholar

[23] Peng K, Li M, Huang H, Wang C, Wan S, Choo K-KR. Security challenges and opportunities for smart contracts in internet of things: A survey. IEEE Internet Things J. Aug. 2021;8(15):12004–20. 10.1109/JIOT.2021.3074544.Search in Google Scholar

[24] Du S, Huang H. A general framework of smart contract vulnerability mining based on control flow graph matching. In: Sun X, Wang J, Bertino E, editors. Artificial intelligence and security. Singapore: Springer Singapore; 2020. p. 166–75.10.1007/978-981-15-8101-4_16Search in Google Scholar

[25] Huang Y, Bian Y, Li R, Zhao JL, Shi P. Smart contract security: A software lifecycle perspective. IEEE Access. 2019;7:150184–202. 10.1109/ACCESS.2019.2946988.Search in Google Scholar

[26] Wang D, Jiang B, Chan WK. WANA: Symbolic execution of wasm bytecode for cross-platform smart contract vulnerability detection. p. 12. arXiv preprint arXiv:2007.15510.Search in Google Scholar

[27] Xu J, Dang F, Ding X, Zhou M. A survey on vulnerability detection tools of smart contract bytecode. In: 2020 IEEE 3rd International Conference on Information Systems and Computer Aided Education (ICISCAE). Dalian, China: IEEE, Sep 2020. p. 94–8. 10.1109/ICISCAE51034.2020.9236931.Search in Google Scholar

[28] Liu Z, Qian P, Wang X, Zhu L, He Q, Ji S. Smart contract vulnerability detection: From pure neural network to interpretable graph feature and expert pattern fusion. In: Proceedings of the Thirtieth International Joint Conference on Artificial Intelligence. Montreal, Canada: International Joint Conferences on Artificial Intelligence Organization; Aug. 2021. p. 2751–9. 10.24963/ijcai.2021/379.Search in Google Scholar

[29] Liu Z, Qian P, Wang X, Zhuang Y, Qiu L, Wang X. Combining graph neural networks with expert knowledge for smart contract vulnerability detection. IEEE Trans Knowl Data Eng. 2021;1. 10.1109/TKDE.2021.3095196.Search in Google Scholar

[30] Zhuang Y, Liu Z, Qian P, Liu Q, Wang X, He Q. Smart contract vulnerability detection using graph neural network. In: Proceedings of the Twenty-Ninth International Joint Conference on Artificial Intelligence. Yokohama, Japan: International Joint Conferences on Artificial Intelligence Organization; Jul. 2020. p. 3283–90. 10.24963/ijcai.2020/454.Search in Google Scholar

[31] Narayana KL, Sathiyamurthy K. Automation and smart materials in detecting smart contracts vulnerabilities in Blockchain using deep learning. Mater Today Proc. 2023;81:653–9. 10.1016/j.matpr.2021.04.125.Search in Google Scholar

[32] Overview Smart Contract Weakness Classification and Test Cases. http://swcregistry.io/ (accessed Sep. 30, 2022).Search in Google Scholar

[33] Index - Ethereum Smart Contract Best Practices https://consensys.github.io/smart-contract-best-practices/attacks/ (accessed Nov. 19, 2022).Search in Google Scholar

[34] Ren M, Ma F, Yin Z, Li H, Fu Y, Chen T, et al. SCStudio: A secure and efficient integrated development environment for smart contracts. In: Proceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis. Virtual Denmark: ACM; Jul. 2021. p. 666–9. 10.1145/3460319.3469078.Search in Google Scholar

[35] Ren M, Yin Z, Ma F, Xu Z, Jiang Y, Sun C, et al. Empirical evaluation of smart contract testing: what is the best choice. In: Proceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis. Virtual Denmark: ACM; Jul. 2021. p. 566–79. 10.1145/3460319.3464837.Search in Google Scholar

[36] renardbebe, Smart-Contract-Benchmark-Suites: A Unified Dataset. 2022. Nov. 19, 2022. https://github.com/renardbebe/Smart-Contract-Benchmark-Suites.Search in Google Scholar

[37] Garfatta I, Klai K, Gaaloul W, Graiet M. A survey on formal verification for solidity smart contracts. In: 2021 Australasian Computer Science Week Multiconference. Dunedin New Zealand: ACM; Feb. 2021. p. 1–10. 10.1145/3437378.3437879.Search in Google Scholar

[38] Samreen NF, Alalfi MH. SmartScan: An approach to detect denial of service vulnerability in Ethereum smart contracts. In: 2021 IEEE/ACM 4th International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB). Madrid, Spain: IEEE; May 2021. p. 17–26. 10.1109/WETSEB52558.2021.00010.Search in Google Scholar

[39] Nguyen TD, Pham LH, Sun J. SGUARD: Towards fixing vulnerable smart contracts automatically. In: 2021 IEEE Symposium on Security and Privacy (SP). San Francisco, CA, USA: IEEE, May 2021; p. 1215–29. 10.1109/SP40001.2021.00057.Search in Google Scholar

[40] Aidee NA, Johar MG, Alkawaz MH, Hajamydeen AI, Al-Tamimi MS. Vulnerability assessment on Ethereum based smart contract applications. 2021 IEEE International Conference on Automatic Control & Intelligent Systems (I2CACIS); Jun. 2021. p. 13–8. 10.1109/I2CACIS52118.2021.9495892.Search in Google Scholar

[41] Matulevicius N, Cordeiro LC. Verifying security vulnerabilities for blockchain-based smart contracts. In: 2021 XI Brazilian Symposium on Computing Systems Engineering (SBESC). Florianopolis, Brazil: IEEE; Nov. 2021. p. 1–8. 10.1109/SBESC53686.2021.9628229.Search in Google Scholar

[42] Wang W, Song J, Xu G, Li Y, Wang H, Su C. ContractWard: Automated vulnerability detection models for Ethereum smart contracts. IEEE Trans Netw Sci Eng. Apr. 2021;8(2):1133–44. 10.1109/TNSE.2020.2968505.Search in Google Scholar

[43] Sujeetha R, Preetha CASD. A literature survey on smart contract testing and analysis for smart contract based blockchain application development. In: 2021 2nd International Conference on Smart Electronics and Communication (ICOSEC). Trichy, India: IEEE; Oct. 2021. p. 378–85. 10.1109/ICOSEC51865.2021.9591750.Search in Google Scholar

[44] Pan Z, Hu T, Qian C, Li B. ReDefender: A tool for detecting reentrancy vulnerabilities in smart contracts effectively. In: 2021 IEEE 21st International Conference on Software Quality, Reliability and Security (QRS). Hainan, China: IEEE; Dec. 2021. p. 915–25. 10.1109/QRS54544.2021.00101.Search in Google Scholar

[45] Lee S, Cho E-S. Lightweight extension of an execution environment for safer function calls in Solidity/Ethereum Virtual Machine smart contracts. In: 2021 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER). Honolulu, HI, USA: IEEE; Mar. 2021. p. 689–95. 10.1109/SANER50967.2021.00087.Search in Google Scholar

[46] Gao Z, Jiang L, Xia X, Lo D, Grundy J. Checking smart contracts with structural code embedding. IEEE Trans Softw Eng. Dec. 2021;47(12):2874–91. 10.1109/TSE.2020.2971482.Search in Google Scholar

[47] Tang Y, Li Z, Bai Y. Rethinking of reentrancy on the Ethereum. In: 2021 IEEE Intl Conf on Dependable, Autonomic and Secure Computing, Intl Conf on Pervasive Intelligence and Computing, Intl Conf on Cloud and Big Data Computing, Intl Conf on Cyber Science and Technology Congress (DASC/PiCom/CBDCom/CyberSciTech). AB, Canada: IEEE; Oct. 2021. p. 68–75. 10.1109/DASC-PICom-CBDCom-CyberSciTech52372.2021.00025.Search in Google Scholar

[48] Ji S, Dong J, Qiu J, Gu B, Wang Y, Wang T. Increasing fuzz testing coverage for smart contracts with dynamic taint analysis. In: 2021 IEEE 21st International Conference on Software Quality, Reliability and Security (QRS); Dec. 2021. p. 243–7. 10.1109/QRS54544.2021.00035.Search in Google Scholar

[49] Dia B, Ivaki N, Laranjeiro N. An empirical evaluation of the effectiveness of smart contract verification tools. In: 2021 IEEE 26th Pacific Rim International Symposium on Dependable Computing (PRDC). Perth, Australia: IEEE, Dec; 2021. p. 17–26. 10.1109/PRDC53464.2021.00013.Search in Google Scholar

[50] Contro F, Crosara M, Ceccato M, Preda MD. EtherSolve: Computing an accurate control-flow graph from Ethereum bytecode. In: 2021 IEEE/ACM 29th International Conference on Program Comprehension (ICPC). Madrid, Spain: IEEE; May 2021. p. 127–37. 10.1109/ICPC52881.2021.00021.Search in Google Scholar

[51] Correas J, Gordillo P, Roman-Diez G. Static profiling and optimization of Ethereum smart contracts using resource analysis. IEEE Access. 2021;9:25495–507. 10.1109/ACCESS.2021.3057565.Search in Google Scholar

[52] Yu X, Zhao H, Hou B, Ying Z, Wu B. DeeSCVHunter: A deep learning-based framework for smart contract vulnerability detection. In: 2021 International Joint Conference on Neural Networks (IJCNN). Shenzhen, China: IEEE, Jul; 2021. p. 1–8. 10.1109/IJCNN52387.2021.9534324.Search in Google Scholar

[53] QIAN, GraphDeeSmartContractGraphDeeSmartContract. 2022. Accessed: Nov. 19, 2022. https://github.com/Messi-Q/GraphDeeSmartContract.Search in Google Scholar

[54] Ma F, Ren M, Fu Y, Wang M, Li H, Song H, et al. Security reinforcement for Ethereum virtual machine. Inf Process & Manag. Jul. 2021;58(4):102565. 10.1016/j.ipm.2021.102565.Search in Google Scholar

[55] Ma F, Fu Y, Ren M, Wang M, Jiang Y, Zhang K, et al. EVM: From offline detection to online reinforcement for Ethereum virtual machine. In: 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER). Hangzhou, China: IEEE; Feb. 2019. p. 554–8. 10.1109/SANER.2019.8668038.Search in Google Scholar

[56] Ashizawa N, Yanai N, Cruz JP, Okamura S. Eth2Vec: Learning contract-wide code representations for vulnerability detection on Ethereum smart contracts. Proceedings of the 3rd ACM International Symposium on Blockchain and Secure Critical Infrastructure. Virtual Event Hong Kong: ACM; May 2021. p. 47–59. 10.1145/3457337.3457841.Search in Google Scholar

[57] Mi F, Wang Z, Zhao C, Guo J, Ahmed F, Khan L. VSCL: Automating vulnerability detection in smart contracts with deep learning. In: 2021 IEEE International Conference on Blockchain and Cryptocurrency (ICBC). Sydney, Australia: IEEE; May 2021. p. 1–9. 10.1109/ICBC51069.2021.9461050.Search in Google Scholar

[58] Ahmadjee S, Mera-Gomez C, Bahsoon R. Assessing smart contracts security technical debts. In: 2021 IEEE/ACM International Conference on Technical Debt (TechDebt). Madrid, Spain: IEEE; May 2021. p. 6–15. 10.1109/TechDebt52882.2021.00010.Search in Google Scholar

[59] López Vivar A, Sandoval Orozco AL, García Villalba LJ. A security framework for Ethereum smart contracts. Comput Commun. Apr. 2021;172:119–29. 10.1016/j.comcom.2021.03.008.Search in Google Scholar

[60] Antonino P, Roscoe AW. Solidifier: bounded model checking solidity using lazy contract deployment and precise memory modelling. In: Proceedings of the 36th Annual ACM Symposium on Applied Computing. Virtual Event Republic of Korea: ACM; Mar. 2021. p. 1788–97. 10.1145/3412841.3442051.Search in Google Scholar

[61] Sun Y, Gu L. Attention-based machine learning model for smart contract vulnerability detection. J Phys: Conf Ser. Mar. 2021;1820(1):012004. 10.1088/1742-6596/1820/1/012004.Search in Google Scholar

[62] Wu H, Zhang Z, Wang S, Lei Y, Lin B, Qin Y, et al. Peculiar: Smart contract vulnerability detection based on crucial data flow graph and pre-training techniques. 2021 IEEE 32nd International Symposium on Software Reliability Engineering (ISSRE). Wuhan, China: IEEE; Oct. 2021. p. 378–89. 10.1109/ISSRE52982.2021.00047.Search in Google Scholar

[63] Smartbugs/dataset at master smartbugs/smartbugs, GitHub. https://github.com/smartbugs/smartbugs (accessed Nov. 19, 2022).Search in Google Scholar

[64] Wang B, Chu H, Zhang P, Dong H. Smart contract vulnerability detection using code representation fusion. In: 2021 28th Asia-Pacific Software Engineering Conference (APSEC). Taipei, Taiwan: IEEE; 2021. p. 564–5. 10.1109/APSEC53868.2021.00069.Search in Google Scholar

[65] Jie W, Koe ASV, Huang P, Zhang S. Full-stack hierarchical fusion of static features for smart contracts vulnerability detection. In: 2021 IEEE International Conference on Blockchain (Blockchain). Melbourne, Australia: IEEE; Dec. 2021. p. 95–102. 10.1109/Blockchain53845.2021.00091.Search in Google Scholar

[66] Linoy S, Ray S, Stakhanova N. EtherProv: Provenance-aware detection, analysis, and mitigation of Ethereum smart contract security issues. In: 2021 IEEE International Conference on Blockchain (Blockchain). Melbourne, Australia: IEEE; Dec. 2021. p. 1–10. 10.1109/Blockchain53845.2021.00014.Search in Google Scholar

[67] Usman TA, Selcuk AA, Ozarslan S. An analysis of Ethereum smart contract vulnerabilities. In: 2021 International Conference on Information Security and Cryptology (ISCTURKEY). Ankara, Turkey: IEEE; Dec. 2021. p. 99–104. 10.1109/ISCTURKEY53027.2021.9654305.Search in Google Scholar

[68] Ethereum in BigQuery: a Public Dataset for smart contract analytics, Google Cloud Blog. https://cloud.google.com/blog/products/data-analytics/ethereum-bigquery-public-dataset-smart-contract-analytics (accessed Nov. 19, 2022).Search in Google Scholar

[69] Zhou T, Liu K, Li L, Liu Z, Klein J, Bissyande TF. SmartGift: Learning to generate practical inputs for testing smart contracts. In: 2021 IEEE International Conference on Software Maintenance and Evolution (ICSME). Luxembourg: IEEE; Sep. 2021. p. 23–34. 10.1109/ICSME52107.2021.00009.Search in Google Scholar

[70] ContractFuzzer/examples at master gongbell/ContractFuzzer, GitHub. https://github.com/gongbell/ContractFuzzer (accessed Nov. 19, 2022).Search in Google Scholar

[71] Fan Y, Shang S, Ding X. Smart contract vulnerability detection based on dual attention graph convolutional network. In: Gao H, Wang X, Tan Y, Shi Y, Zomaya A, Yan H, Cai J, editors. Collaborative computing: Networking, applications and worksharing. Cham: Springer International Publishing; 2021. p. 335–51.10.1007/978-3-030-92638-0_20Search in Google Scholar

[72] Zhou K, Cheng J, Li H, Yuan Y, Liu L, Li X. SC-VDM: A lightweight smart contract vulnerability detection model. In: Tan Y, Shi Y, Zomaya A, Yan H, Cai J, editors. Data Mining and Big Data. Singapore: Springer Singapore; 2021. p. 138–49.10.1007/978-981-16-7476-1_13Search in Google Scholar

[73] Xu Y, Hu G, You L, Cao C. A novel machine learning-based analysis model for smart contract vulnerability. Secur Commun Netw. Aug. 2021;2021:1–12. 10.1155/2021/5798033.Search in Google Scholar

[74] SolidiFI Benchmark. Univ of British Columbia (UBC), 2022. Accessed: Nov. 19, 2022. https://github.com/DependableSystemsLab/SolidiFI-benchmark.Search in Google Scholar

[75] Huang J, Han S, You W, Shi W, Liang B, Wu J, et al. Hunting vulnerable smart contracts via graph embedding based bytecode matching. IEEE Trans Inform Forensic Secur. 2021;16:2144–56. 10.1109/TIFS.2021.3050051.Search in Google Scholar

[76] Leid A, van der Merwe B, Visser W. Testing Ethereum smart contracts: A comparison of symbolic analysis and fuzz testing tools. In: Conference of the South African Institute of Computer Scientists and Information Technologists 2020. Cape Town South Africa: ACM; Sep. 2020. p. 35–43. 10.1145/3410886.3410907.Search in Google Scholar

[77] Grech N, Kong M, Jurisevic A, Brent L, Scholz B, Smaragdakis Y. MadMax: analyzing the out-of-gas world of smart contracts. Commun ACM. Sep. 2020;63(10):87–95. 10.1145/3416262.Search in Google Scholar

[78] Schneidewind C, Grishchenko I, Scherer M, Maffei M. eThor: Practical and provably sound static analysis of Ethereum smart contracts. In: Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security. Virtual Event USA: ACM; Oct. 2020. p. 621–40. 10.1145/3372297.3417250.Search in Google Scholar

[79] Ghaleb A, Pattabiraman K. How effective are smart contract analysis tools? evaluating smart contract static analysis tools using bug injection. In: Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis. Virtual Event USA: ACM; Jul. 2020. p. 415–27. 10.1145/3395363.3397385.Search in Google Scholar

[80] Ferreira Torres C, Baden M, Norvill R, Fiz Pontiveros BB, Jonker H, Mauw S. “ÆGIS: Shielding Vulnerable Smart Contracts Against Attacks,”. Proceedings of the 15th ACM Asia Conference on Computer and Communications Security. Taipei Taiwan: ACM, Oct; 2020. p. 584–97. 10.1145/3320269.3384756.Search in Google Scholar

[81] Fatima Samreen N, Alalfi MH. Reentrancy vulnerability identification in Ethereum smart contracts. In: 2020 IEEE International Workshop on Blockchain Oriented Software Engineering (IWBOSE). London, ON, Canada: IEEE; Feb. 2020. p. 22–9. 10.1109/IWBOSE50093.2020.9050260.Search in Google Scholar

[82] Hwang S, Ryu S. Gap between theory and practice: an empirical study of security patches in solidity. In: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering. Seoul South Korea: ACM; Jun. 2020. p. 542–53. 10.1145/3377811.3380424.Search in Google Scholar

[83] Hwang S. Smart Contract Analyzer. 2022. Accessed: Nov. 19, 2022. https://github.com/sjmini/icse2020-Solidity.Search in Google Scholar

[84] Kim S, Ryu S. Analysis of blockchain smart contracts: Techniques and insights. In: 2020 IEEE Secure Development (SecDev), Atlanta. GA, USA: IEEE; Sep. 2020. p. 65–73. 10.1109/SecDev45635.2020.00026.Search in Google Scholar

[85] Nguyen TD, Pham LH, Sun J, Lin Y, Minh QT. sFuzz: an efficient adaptive fuzzer for solidity smart contracts. In: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering. Seoul South Korea: ACM; Jun. 2020. p. 778–88. 10.1145/3377811.3380334.Search in Google Scholar

[86] Wang A, Wang H, Jiang B, Chan WK. Artemis: An improved smart contract verification tool for vulnerability detection. In: 2020 7th International Conference on Dependable Systems and Their Applications (DSA). Xi’an, China: IEEE; Nov. 2020. p. 173–81. 10.1109/DSA51864.2020.00031.Search in Google Scholar

[87] Staderini M, Palli C, Bondavalli A. Classification of Ethereum vulnerabilities and their propagations. 2020 Second International Conference on Blockchain Computing and Applications (BCCA). Antalya, Turkey: IEEE; Nov. 2020. p. 44–51. 10.1109/BCCA50787.2020.9274458.Search in Google Scholar

[88] Hao X, Ren W, Zheng W, Zhu T. SCScan: A SVM-based scanning system for vulnerabilities in blockchain smart contracts. In: 2020 IEEE 19th International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom). Guangzhou, China: IEEE; Dec. 2020. p. 1598–605. 10.1109/TrustCom50675.2020.00221.Search in Google Scholar

[89] Gao Z. When Deep Learning Meets Smart Contracts, p. 3. ACM; 2020. 10.1145/3324884.3418918.Search in Google Scholar

[90] Gao ZP. SmartEmbed Web Tool. 2022. Accessed: Nov. 19, 2022. https://github.com/beyondacm/SmartEmbed.Search in Google Scholar

[91] Ashraf I, Ma X, Jiang B, Chan WK. GasFuzzer: Fuzzing Ethereum smart contract binaries to expose gas-oriented exception security vulnerabilities. IEEE Access. 2020;8:99552–64. 10.1109/ACCESS.2020.2995183.Search in Google Scholar

[92] Trojanowska N, Kedziora M, Hanif M, Song H. Secure decentralized application development of blockchain-based games. In: 2020 IEEE 39th International Performance Computing and Communications Conference (IPCCC). Austin, TX, USA: IEEE; Nov. 2020. p. 1–8. 10.1109/IPCCC50635.2020.9391556.Search in Google Scholar

[93] Ji R, He N, Wu L, Wang H, Bai G, Guo Y. DEPOSafe: Demystifying the fake deposit vulnerability in Ethereum smart contracts. In: 2020 25th International Conference on Engineering of Complex Computer Systems (ICECCS). Singapore: IEEE; Oct. 2020. p. 125–34. 10.1109/ICECCS51672.2020.00022.Search in Google Scholar

[94] Xue Y, Ma M, Lin Y, Sui Y, Ye J, Peng T. Cross-contract static analysis for detecting practical reentrancy vulnerabilities in smart contracts. In: Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering. Virtual Event Australia: ACM; Dec. 2020. p. 1029–40. 10.1145/3324884.3416553.Search in Google Scholar

[95] Ye J, Ma M, Lin Y, Sui Y, Xue Y. Clairvoyance: cross-contract static analysis for detecting practical reentrancy vulnerabilities in smart contracts. In: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Companion Proceedings. Seoul South Korea: ACM; Jun. 2020. p. 274–5. 10.1145/3377812.3390908.Search in Google Scholar

[96] Ferreira JF, Cruz P, Durieux T, Abreu R. SmartBugs: a framework to analyze solidity smart contracts. In: Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering. Virtual Event Australia: ACM; Dec. 2020. p. 1349–52. 10.1145/3324884.3415298.Search in Google Scholar

[97] Feng Y, Torlak E, Bodik R. Summary-based symbolic evaluation for smart contracts. In: Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering. Virtual Event Australia: ACM; Dec. 2020. p. 1141–52. 10.1145/3324884.3416646.Search in Google Scholar

[98] Durieux T, Ferreira JF, Abreu R, Cruz P. Empirical review of automated analysis tools on 47,587 Ethereum smart contracts. In: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering. Seoul South Korea: ACM; Jun. 2020. p. 530–41. 10.1145/3377811.3380364.Search in Google Scholar

[99] Kaleem M, Mavridou A, Laszka A. Vyper: A security comparison with solidity based on common vulnerabilities. In: 2020 2nd Conference on Blockchain Research & Applications for Innovative Networks and Services (BRAINS). Paris, France: IEEE; Sep. 2020. p. 107–11. 10.1109/BRAINS49436.2020.9223278.Search in Google Scholar

[100] Kim KB, Lee J. Automated generation of test cases for smart contract security analyzers. IEEE Access. 2020;8:209377–92. 10.1109/ACCESS.2020.3039990.Search in Google Scholar

[101] Gupta R, Tanwar S, Al-Turjman F, Italiya P, Nauman A, Kim SW. Smart contract privacy protection using AI in cyber-physical systems: Tools, techniques and challenges. IEEE Access. 2020;8:24746–72. 10.1109/ACCESS.2020.2970576.Search in Google Scholar

[102] López Vivar A, Castedo AT, Sandoval Orozco AL, García Villalba LJ. An analysis of smart contracts security threats alongside existing solutions. Entropy. Feb. 2020;22(2):203. 10.3390/e22020203Search in Google Scholar PubMed PubMed Central

[103] Khan ZA, Namin AS. Ethereum smart contracts: Vulnerabilities and their Classifications. In: 2020 IEEE International Conference on Big Data (Big Data). Atlanta, GA, USA: IEEE; Dec. 2020. p. 1–10. 10.1109/BigData50022.2020.9439088.Search in Google Scholar

[104] Li Z, Guo W, Xu Q, Xu Y, Wang H, Xian M. Research on blockchain smart contracts vulnerability and a code audit tool based on matching rules. Proceedings of the 2020 International Conference on Cyberspace Innovation of Advanced Technologies. Guangzhou China: ACM; Dec. 2020. p. 484–9. 10.1145/3444370.3444617.Search in Google Scholar

[105] Chinen Y, Yanai N, Cruz JP, Okamura S. RA: Hunting for re-entrancy attacks in Ethereum smart contracts via static analysis. 2020 IEEE International Conference on Blockchain (Blockchain). Rhodes Island, Greece: IEEE, Nov; 2020. p. 327–36. 10.1109/Blockchain50366.2020.00048.Search in Google Scholar

[106] He D, Deng Z, Zhang Y, Chan S, Cheng Y, Guizani N. Smart contract vulnerability analysis and security audit. IEEE Netw. Sep. 2020;34(5):276–82. 10.1109/MNET.001.1900656.Search in Google Scholar

[107] Yang Z, Keung J, Zhang M, Xiao Y, Huang Y, Hui T. Smart Contracts Vulnerability Auditing with Multi-semantics. In: 2020 IEEE 44th Annual Computers, Software, and Applications Conference (COMPSAC). Madrid, Spain: IEEE; Jul. 2020. p. 892–901. 10.1109/COMPSAC48688.2020.0-153.Search in Google Scholar

[108] Gupta BC, Kumar N, Handa A, Shukla SK. An insecurity study of ethereum smart contracts. In: Batina L, Picek S, Mondal M, editors. Security, privacy, and applied cryptography engineering. Cham: Springer International Publishing; 2020. p. 188–207.10.1007/978-3-030-66626-2_10Search in Google Scholar

[109] Ma R, Jian Z, Chen G, Ma K, Chen Y. ReJection: A AST-based reentrancy vulnerability detection method. In: Han W, Zhu L, Yan F, editors. Trusted computing and information security. Singapore: Springer Singapore; 2020. p. 58–71.10.1007/978-981-15-3418-8_5Search in Google Scholar

[110] Sayeed S, Marco-Gisbert H, Caira T. Smart contract: Attacks and protections. IEEE Access. 2020;8:24416–27. 10.1109/ACCESS.2020.2970495.Search in Google Scholar

[111] Qian P, Liu Z, He Q, Zimmermann R, Wang X. Towards automated reentrancy detection for smart contracts based on sequential models. IEEE Access. 2020;8:19685–95. 10.1109/ACCESS.2020.2969429.Search in Google Scholar

[112] QIAN, VulDeeSmartContract; 2022. Accessed: Nov. 19, 2022. https://github.com/Messi-Q/ReChecker.Search in Google Scholar

[113] Lu S, Fan H, Wang Y, Mi H, Qin L. Manual audit for bitunits contracts. In: Zheng Z, Dai H-N, Tang M, Chen X, editors. Blockchain and trustworthy systems. Singapore: Springer Singapore; 2020. p. 476–82.10.1007/978-981-15-2777-7_38Search in Google Scholar

[114] Albert E, Correas J, Gordillo P, Román-Díez G, Rubio A. SAFEVM: A safety verifier for Ethereum smart contracts. Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis. Beijing China: ACM; Jul. 2019. p. 386–9. 10.1145/3293882.3338999.Search in Google Scholar

[115] Demir M, Alalfi M, Turetken O, Ferworn A. Security smells in smart contracts. In: 2019 IEEE 19th International Conference on Software Quality, Reliability and Security Companion (QRS-C). Sofia, Bulgaria: IEEE; Jul. 2019. p. 442–9. 10.1109/QRS-C.2019.00086.Search in Google Scholar

[116] Liu J, Liu Z. A survey on security verification of blockchain smart contracts. IEEE Access. 2019;7:77894–904. 10.1109/ACCESS.2019.2921624.Search in Google Scholar

[117] Liu Z, Liu J. Formal verification of blockchain smart contract based on colored petri net models. In: 2019 IEEE 43rd Annual Computer Software and Applications Conference (COMPSAC). Milwaukee, WI, USA: IEEE; Jul. 2019. p. 555–60. 10.1109/COMPSAC.2019.10265.Search in Google Scholar

[118] Zhang W, Banescu S, Pasos L, Stewart S, Ganesh V. MPro: Combining static and symbolic analysis for scalable testing of smart contract. In: 2019 IEEE 30th International Symposium on Software Reliability Engineering (ISSRE). Berlin, Germany: IEEE; Oct. 2019. p. 56–462. 10.1109/ISSRE.2019.00052.Search in Google Scholar

[119] Akca S, Rajan A, Peng C. SolAnalyser: A framework for analysing and testing smart contracts. 2019 26th Asia-Pacific Software Engineering Conference (APSEC). Putrajaya, Malaysia: IEEE; Dec. 2019. p. 482–9. 10.1109/APSEC48747.2019.00071.Search in Google Scholar

[120] Tian Z. Smart contract defect detection based on parallel symbolic execution. In: 2019 3rd International Conference on Circuits, System and Simulation (ICCSS). Nanjing, China: IEEE; Jun. 2019. p. 127–32. 10.1109/CIRSYSSIM.2019.8935603.Search in Google Scholar

[121] Wang H, Li Y, Lin S-W, Ma L, Liu Y. VULTRON: Catching vulnerable smart contracts once and for all. In: 2019 IEEE/ACM 41st International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER). Montreal, QC, Canada: IEEE; May 2019. p. 1–4. 10.1109/ICSE-NIER.2019.00009.Search in Google Scholar

[122] Chen T, Li Z, Zhang Y, Luo X, Wang T, Hu T, et al. A large-scale empirical study on control flow identification of smart contracts. IEEE Trans Softw Eng. 2022;48(11):4380–96.Search in Google Scholar

[123] Prechtel D, Gros T, Muller T. Evaluating spread of ‘Gasless Send’ in Ethereum smart contracts. In: 2019 10th IFIP International Conference on New Technologies, Mobility and Security (NTMS). Canary Islands, Spain: IEEE; Jun. 2019. p. 1–6. 10.1109/NTMS.2019.8763848.Search in Google Scholar

[124] Momeni P, Wang Y, Samavi R. Machine learning model for smart contracts security analysis. In: 2019 17th International Conference on Privacy, Security and Trust (PST). Fredericton, NB, Canada: IEEE; Aug. 2019. p. 1–6. 10.1109/PST47121.2019.8949045.Search in Google Scholar

[125] Feist J, Grieco G, Groce A. Slither: A static analysis framework for smart contracts. In: 2019 IEEE/ACM 2nd International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB). Montreal, QC, Canada: IEEE; May 2019. p. 8–15. 10.1109/WETSEB.2019.00008.Search in Google Scholar

[126] Min T, Cai W. A security case study for blockchain games. In: 2019 IEEE Games, Entertainment, Media Conference (GEM). New Haven, CT, USA: IEEE; Jun. 2019. p. 1–8. 10.1109/GEM.2019.8811555.Search in Google Scholar

[127] Wang S, Zhang C, Su Z. Detecting nondeterministic payment bugs in Ethereum smart contracts. Proceedings of the ACM on Programming Languages. Vol. 3, No. OOPSLA. p. 1–29, Oct. 2019. 10.1145/3360615.Search in Google Scholar

[128] Liao J-W, Tsai T-T, He C-K, Tien C-W. Soliaudit: Smart contract vulnerability assessment based on machine learning and fuzz testing. In: 2019 Sixth International Conference on Internet of Things: Systems, Management and Security (IOTSMS). Granada, Spain: IEEE; Oct. 2019. p. 458–65. 10.1109/IOTSMS48152.2019.8939256.Search in Google Scholar

[129] Ayoade G, Bauman E, Khan L, Hamlen K. Smart contract defense through bytecode rewriting. In: 2019 IEEE International Conference on Blockchain (Blockchain). Atlanta, GA, USA: IEEE; Jul. 2019. p. 384–9. 10.1109/Blockchain.2019.00059.Search in Google Scholar

[130] Fu M, Wu L, Hong Z, Zhu F, Sun H, Feng W. A critical-path-coverage-based vulnerability detection method for smart contracts. IEEE Access. 2019;7:147327–44. 10.1109/ACCESS.2019.2947146.Search in Google Scholar

[131] Grech N, Kong M, Jurisevic A, Brent L, Scholz B, Smaragdakis Y. MadMax: Surviving out-of-gas conditions in Ethereum smart contracts. Proc. ACM Program. Lang. Oct. 2018;2(OOPSLA):1–27. 10.1145/3276486.Search in Google Scholar

[132] Liu C, Liu H, Cao Z, Chen Z, Chen B, Roscoe B. ReGuard: Finding reentrancy bugs in smart contracts. Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings. Gothenburg Sweden: ACM; May 2018. p. 65–8. 10.1145/3183440.3183495.Search in Google Scholar

[133] Tikhomirov S, Voskresenskaya E, Ivanitskiy I, Takhaviev R, Marchenko E, Alexandrov Y. SmartCheck: Static analysis of Ethereum smart contracts. In: Proceedings of the 1st International Workshop on Emerging Trends in Software Engineering for Blockchain. Gothenburg Sweden: ACM; May 2018. p. 9–16. 10.1145/3194113.3194115.Search in Google Scholar

[134] Zhou E, Hua S, Pi B, Sun J, Nomura Y, Yamashita K, et al. Security assurance for smart contract. In: 2018 9th IFIP International Conference on New Technologies, Mobility and Security (NTMS). Paris: IEEE; Feb. 2018. p. 1–5. 10.1109/NTMS.2018.8328743.Search in Google Scholar

[135] State of Ethereum Network Quarterly Report. Jun. 22, 2022. https://dune.com/agaperste/The-State-of-Ethereum-Network (accessed Jun. 16, 2023).Search in Google Scholar

[136] Zaazaa O, El Bakkali H. Automatic static vulnerability detection approaches and tools: State of the art. Advances in Information, Communication and Cybersecurity: Proceedings of ICI2C’21; 2022. p. 449–59. 10.1007/978-3-030-91738-8_41.Search in Google Scholar

[137] Zaazaa O, El Bakkali H. Dynamic vulnerability detection approaches and tools: State of the Art. In: 2020 Fourth International Conference On Intelligent Computing in Data Sciences (ICDS); Oct. 2020. p. 1–6. 10.1109/ICDS50568.2020.9268686.Search in Google Scholar

Received: 2023-03-22
Revised: 2023-06-19
Accepted: 2023-07-23
Published Online: 2023-09-04

© 2023 the author(s), published by De Gruyter

This work is licensed under the Creative Commons Attribution 4.0 International License.

Downloaded on 5.3.2025 from https://www.degruyter.com/document/doi/10.1515/jisys-2023-0038/html
Scroll to top button