## 4 Blockchain-Assisted Cloud Frameworks: Security Perspective
### Decentralized Data Integrity Verification Techniques  
In traditional cloud data integrity verification, entities like a CSP, user, and TPA are involved. Whenever a user issues a challenge to verify the integrity of its data stored in the CSP, the CSP sends a proof of challenge to the TPA. The TPA then compares this proof with the original one generated by the user at the time of data storage [79]. The user will then receive the verification result from the TPA. This challenge-proof verification process can be of different types, such as hash-based verification (which involves generating and comparing hashes of the data file on both the CSP side and the user side to ensure data consistency), and random sampling (instead of verifying the hash of the entire data file, this method checks the integrity of randomly selected data chunks), etc. Some of the problems with the above kinds of data integrity verification are listed below: \begin{table}
\begin{tabular}{p{42.7 pt} p{42.7 pt} p{42.7 pt} p{42.7 pt} p{42.7 pt} p{42.7 pt}} \hline \hline
**Year, Ref.** & **Availability** & **Access Control** & **Privacy** & **Method Used for Authentication** & **Time Taken for User Authentication Verification** \\ \hline
2018, [74] & True & True & False & Token & - \\ \hline
2019, [75] & True & False & True & JWT and ask security question & 2 X time taken for hash (JWT, random number) + time for verification of both hashes \\ \hline
2019, [76] & True & False & False & User signature and current index value verification & Time taken for calculation of x (x = last stored index AND current hash value AND time stamp AND nonce) + verification time for (current index value \textgreater{} x) \\ \hline
2023, [77] & True & True & True & SSO token & Verification time for user’s authentication credential \\ \hline
2023, [78] & True & True & True & User’s attribute token & Verification time for user’s identity attribute \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Comparison of blockchain-based IDM models for cloud environment. Figure 12: IAS token generation and authentication verification [78]. * This integrity verification method is controlled by the TPA; hence, centralization/single point of failure is one of the possible problems. * The verification process is not transparent to the user. To avoid the TPA for data integrity verification in cloud, the authors of paper [35] have suggested a blockchain-based solution, where they have used a P2P Cloud Storage Server (P2P CSS), blockchain, and Merkle hash tree (MHT). The user splits the data into shards before uploading them to the P2P CSS. Then, the digest of each shard is computed and the MHT is used to obtain the root hash of these shards. The MHT is split into public and private hash trees in this instance. The public hash tree is the portion of the MHT where the data digests of each shard are concatenated with each other to form a root hash, and the private hash is the part in which the digests of each shard are calculated. The user will store the root hash calculated from the MHT on a blockchain and upload the data along with the public hash tree in the P2P CSS. As an acknowledgement of this upload, the P2P CSS sends the data address to the user. The user can run integrity verification of their stored data by choosing a particular shard number and sending the request to the P2P CSS. The cloud calculates the digest of the requested shard and sends the result to the blockchain. After receiving the digest, the blockchain will calculate the root hash and compare it with the previously stored hash. If both are the same, the integrity of the data is maintained, and the blockchain notifies the requested user. The aforementioned process is shown in detail in Figure 13, where the data upload and integrity verification steps are defined by the prefix notations S and V.  
A solution is suggested in [80] to overcome the dependency on semi-trusted cloud servers and provide the facility for a user to audit the TPA's behavior.