  The immutable and trustable characteristics of blockchain enable smart
contracts to be applied in various fields. Unfortunately, smart contracts are
subject to various vulnerabilities, which are frequently exploited by
attackers, causing financial damage to users.In this paper, we study the
problem of vulnerable smart contract function locating. We construct a novel
Multi-Relational Nested contract Graph (MRNG) to better characterize the rich
syntactic and semantic information in the smart contract code, including the
relationships between data and instructions. An MRNG represents a smart
contract, where each node represents a function in the smart contract and each
edge describes the calling relationship between the functions. In addition, we
create a Multi-Relational Function Graph (MRFG) for each function, which
characterizes the corresponding function code. That is, each function is
characterized as an MRFG, which corresponds to a node in the MRNG. Each MRFG
uses different types of edges to represent the different control and data
relationships between nodes within a function. We also propose a
Multi-Relational Nested Graph Convolutional Network (MRN-GCN) to process the
MRNG. MRN-GCN first extracts and aggregates features from each MRFG, using the
edge-enhanced graph convolution network and self-attention mechanism. The
extracted feature vector is then assigned to the corresponding node in the MRNG
to obtain a new Featured Contract Graph (FCG) for the smart contract. Graph
convolution is used to further extract features from the FCG. Finally, a feed
forward network with a Sigmoid function is used to locate the vulnerable
functions. Experimental results on the real-world smart contract datasets show
that model MRN-GCN can effectively improve the accuracy, precision, recall and
F1-score performance of vulnerable smart contract function locating.
