Blockchain consists of a number of blocks as shown in Fig. REF . In this structure, except for the first block (i.e., genesis block), every block is essentially connected to its previous block through a backward reference, which is the hash value of its previous block. For instance, block \(i+1\)  contains the hash value of its previous block \(i\) . Each block also contains other data fields, such as a timestamp, a cryptographic nonce (a.k.a. a random number used once), a root hash of all the transactions, and a root hash of all the contracts [1]}. The fixed-size root hash values of both transactions and contracts are nearly immutable since even one-bit modification can result in a totally different hash value.
<FIGURE>