## 1 Introduction  
Smart contracts are classes of complete transaction protocols that computer scientist [PERSON] created in 1994 [1] for autonomously carrying out, managing, or documenting events and behaviors connected to contracts. Smart contracts are blockchain-based protocols that enable blockchain to be completed securely and affordably without the need for centralized organizations. A significant issue in assessing whether blockchain can function regularly is the execution efficiency of smart contracts, which are globally distributed blockchain payment systems. The following traits apply to smart contracts: Smart contracts have the following features: (1) automatic execution, triggered by transactions without human intervention; (2) enforceability, once triggered, smart contracts cannot be stopped; (3) transparency, since smart contracts' correctness must be verified by the majority of nodes in the blockchain; and (4) flexibility, allowing them to adjust to a variety of scenarios. Based on the nature of smart contracts, they present both numerous obstacles and many conveniences. The most popular smart contract development language at the moment is Solidity [2], but due to numerous security flaws in its contracts, including large fees and unverified external calls, it is important to introduce a more secure and practical development language for most programmers. The security problems with smart contracts are caused by a variety of variables. (1) While open-source code can significantly lower the cost of intrusion, it can also increase user trust. Professional hacker groups will target any openly accessible smart contract. (2) For many programmers, the creation of programming languages and runtime environments for smart contracts, such as Solidity, is at a very early stage. Smart contracts will be vulnerable if coders are unable to address these issues. It is essential to carry out code analysis and discovery due to smart contracts' numerous vulnerabilities and the possibility of financial losses. Before a project is deployed and during the development of smart contracts, various tools and techniques can be used to accurately identify protocol flaws quickly, preventing an attacker from learning about them and ensuring the security of blockchain transactions. The following categories represent the primary methods for identifying smart contract vulnerabilities and are shown in Table 1:  
In recent years, more and more research on methods for the detection of smart contract vulnerabilities has been carried out, and in the literature [13], [PERSON] propose ContractWard as a model to effectively and efficiently detect six types of vulnerabilities of smart contracts based on extracted static characteristics. In the literature [14], [PERSON] presented and analyzed the state-of-the-art research and achievements concerning the formalization approaches in smart contracts. In the literature [15], [PERSON] et al. designed an executable formal specification based on the Ethereum Virtual Machine bytecode stack language, KEVM, which is mainly aimed at modifying the Ethereum Virtual Machine environment, providing a safer environment for the development of smart contracts, making the formal analysis of smart contracts simpler, and they also use the official Ethereum test suite to verify the performance of KEVM. In the literature [16], [PERSON] et al. also propose a formal verification tool based on Ethereum bytecode, which has been applied to verify advanced smart contracts such as ERC20, Ethereum Casper, etc. In the literature [7], [PERSON] et al. designed a static analysis tool, SASC, based on the perspective of developing smart contracts to generate a syntactic topology diagram of the call relationship in smart contracts and mark the locations where risks and vulnerabilities may occur. In the literature [17], [PERSON] et al. propose a semantic-aware security audit technology, S-gram