## 4 Blockchain-Assisted Cloud Frameworks: Security Perspective
### Decentralized Data Integrity Verification Techniques
The working process of this model is divided into two phases: verification of data integrity by the TPA and audit of the TPA's behavior by the requested user. The TPA retrieves the hash values of the most recent 12 successive blocks on the blockchain in order to verify the integrity. Based on the obtained hash values, the TPA generates a single challenging message and sends it to the cloud. After receiving the challenge message, the cloud calculates the proof and responds to the TPA. The TPA verifies the validity of the proof; if it is legitimate, it creates a single log file. Then, it logs the proof and hash values, and creates a single transaction for the user. The TPA notifies the user if the proof is invalid. The user checks the verification time in the second phase, after which the hash values are extracted from the log entry, a challenging message is generated, and the accompanying proof is verified. To make data integrity verification transparent to users, in [81] a method is suggested, which uses a cuckoo filter, a lattice signature, rejection sampling, a blockchain, and the  
Figure 13: The decentralized solution of upload and integrity verification of data files proposed in [35]. cloud. There is no direct communication between the cloud and user. The blockchain is working here as an intermediate between these two entities. First of all, the user will split the data file into blocks of a fixed size, and each block's signature will be determined by running sigGen(). With the help of a MHT, the signature of the DF is generated by taking the signature of each block as a leaf node. A cuckoo filter is a data structure used by the user to keep the signature of each data block. Then, the user will upload the user_ID, CSP_ID, data file, hash of file, data file_ID, user's signature, signature set of data blocks, and time stamp to the blockchain. The blockchain sends the aforementioned data to the respective CSP; with this, the data upload is complete. Whenever the cloud receives an integrity verification request from a user through a blockchain, it will first calculate the signature of the data block and prepare a proof by adding the CSP_ID, user_ID, time stamp, data file_ID, data file, calculated signature set of data blocks, and signature of the CSP. Then, the cloud sends the proof to the blockchain and the blockchain will forward the message to the user. The user will compare each data block's received signatures with the signatures kept in the cuckoo filter. Integrity of the data file is accomplished if they match; otherwise, they do not have integrity. The diagrammatic representation is shown in Figure 14, where the data upload and verification processes are represented with theprefixes S and V.  
A multi-cloud storage data auditing scheme is proposed by [PERSON] et al. [82], where an organizer is there which is responsible for managing the CSPs. The user divides the data into blocks and sends the blocks to the organizer; then, they distribute the blocks among the CSPs. The user then determines each data block's verification tag and publishes it in smart contracts. The TCSPs compute the tag of the data block they receive and compare the output to the tags that have been published to the blockchain. If the outcome of the comparison is accurate, the CSPs confirm the tags on the smart contracts. The user sends the organizer the set of data block numbers, their coefficients, and a challenge nonce in order to verify the integrity of data. The organizer locates the data blocks first, and then notifies the respective CSPs with the data blocks, coefficient set, and challenge nonce. The CSPs generate the integrity proof and forward it to the organizer. The organizer generates a proof hash by combining all the proofs, and forwards it to the user via blockchain for verification. A secure auditable and deduplication scheme is proposed in [83], which protects the ownership privacy of users. In this approach, a blockchain is in charge of managing encryption keys and serves as an intermediate entity between the TPA and the CSP.