“…Liu et al [40] proposed to perform the fuzz testing on smart contracts by iteratively generating random but diverse transactions to detect reentrancy bugs. 1) Readability • Human readable code [34], [35] • Human readable execution [36], [37] • Re-entrancy [38], [39], [40] 2) Functional issues • Block randness [41], [42], [43] • Overcharging [44], [45] Deployment • Bytecode analysis [46], [47], [48], [49], [50], [51], [52], [53] 1) Contract correctness • Source code analysis [54], [55], [56], [57] • Machine learning based analysis [58], [59], [60] • Graph based analysis [61], [62] 2) Dynamic control flow • Path-searching [63] • Execution environment [64] Execution 1) Trustworthy oracle • Third-party involved [65] • Decentralized [66], [67] 2) Transaction-ordering dependence • Sequential execution [68] • Predefining contract [69] 3) Execution efficiency • Execution serialization [70], [71], [72] • Inspection of contract [73] Completion 1) Privacy and Security • Privacy [74],…”