## 2 Preliminaries and Related Work  
### Blockchain Technology  
Blockchain [14] is a technical solution to collectively maintain a reliable append-only ledger in a decentralized way, and it can provide complete scripts to support various business logics. In a typical blockchain system, data are stored in blocks, which are connected in a chained data structure in chronological order. All nodes participate in the consensus of a blockchain system, including data verification, storage and maintenance. Blockchain is an ordered, reverse-linked list of transaction blocks based on hash pointers. As the basic structural unit of blockchain, a block is composed of a block header \(\eta\) containing metadata and a block body \(\beta\) containing transaction data. The block body records various parameters of each transaction \(tsi\) in detail within time interval \([\tau_{pre},\tau_{pre}+T_{interval}]\), including the index of \(tsi\) in the block, the brief information of the block \(bi\), the information of participants \(pi\) and the subject information of \(tsi\). There are generally three types of information stored in the block header: the information maintaining the relationship between blocks \(re\), such as the hash value of the parent block and uncle blocks; a set of metadata describing the production of blocks and block restriction \(me\), such as the hash value and number of the block, the timestamp, the miner's signature and the data about consensus or packaging blocks; and the root structure of the data storage, usually the Merkle root \(ro\). \[ \begin{split}& Transaction_{index}\longleftarrow(index,bi,pi,tsi)\\ &\beta_{i}\longleftarrow\sum_{\tau_{pre}}^{\tau_{pre}+T_{interval }}Transaction\\ & ro\longleftarrow Merkle(Hash(\sum Transaction_{index}))\\ &\eta_{i}\longleftarrow(re,me,ro)\\ & Block_{(miner\to i)}\longleftarrow(\eta_{i},\beta_{i}),\quad i =\textit{premumber}+1\end{split}  \tag{1}\]  
A Merkle tree is used to quickly verify data within the time complexity of \(O(\log_{2}^{n})\). The digital signature can ensure that each record comes from the user with a specific private key. Instructions on the simplified verification of blocks and transactions can be found in the Bitcoin white paper [14] and the Ethereum project yellow paper [15]. Figure 1 is a schematic diagram of a block. There are three main types of blockchain systems. For public blockchains with open network policies, such as Bitcoin [14] or Ethereum [15], any node can participate in producing blocks and the consensus. It is highly transparent and decentralized, but not suitable for scenarios requiring authentication and control. Introducing varying levels of permission, private blockchain and consortium blockchain are proposed. Consortium blockchain,  
Figure 1: Block structure diagram. which still has the sufficient advantage of decentralization, is now widely adopted by various industry alliances. Some mature frameworks in this field include Hyperledger Fabric [16], R3 Corda [17] and Quorum [18] (based on Ethereum). A private blockchain is a strictly controlled blockchain belonging to individuals or a centralized organization. Ethereum and Hyperledger Fabric also provide the development of private blockchain. A consensus algorithm usually solves the problems of decision-making and consensus-reaching in a distributed system [19]. In a blockchain system, the blocks are validated, shared and synchronized across nodes via a P2P and decentralized consensus mechanism. The first and most popular consensus algorithm is PoW (proof of work) [14], applied in Bitcoin, in which miners need to solve a calculation puzzle. Aiming at mitigating the high cost of PoW, PoS (proof of take) [20] has been proposed. Miners' assets, not their computing power, are used as the criterion. DPoS (delegated proof of stake) [21] is a consensus algorithm that requires stakeholders to vote for delegates. It counteracts the sizeable power of stake-holders that PoS systems entail.