## 3 Preliminaries
### Review of the Novel Blockchain-Based Data Preservation System of [PERSON] et al.  
[PERSON] et al. [7] proposed a novel blockchain-based data preservation system (DPS) for medical data. Their scheme comprises preservation submission (PS) and primitiveness verification (PV), as follows.  
(1) Preservation submission (PS):  
In the PS phase, the user uploads text or files that need to be preserved. After confirmation that the uploaded content is correct, this content is stored officially in the DPS and cannot be changed. The three steps in this process are as follows.  
Step 1: Receiving and processing the as-yet unpreserved health data that have been uploaded by the user.  
The DPS can accept health data in two formats--as a file or as text. If the preserved data is of the file type, then the system will process the file, store it in randomly generated folders, and calculate the hashr of the file using the SHA-256 algorithm. If the preserved data are text files, then they will be stored temporarily in the database, and the hashr of the text files will be calculated using the SHA-256 algorithm. Finally, a pair of asymmetrical keys is generated by the ECC algorithm.  
Step 2: Protecting the processed data by encryption  
This function is invoked when a user verifies the validity of the data to be preserved. If the user confirms the preservation, then the DPS uses the AES algorithm to encrypt the as-of-yet unpreserved data using a symmetric key _Ksym_. Next, _Ksym_ is encrypted using the public key _pubKey_, which is the asymmetric key that was generated in step 1. Finally, the encrypted data are returned. The stored files in the random folder or text in the database will be deleted.  
Step 3: Storing data to be preserved in the blockchain.  
First, the identity of the user is checked to determine whether she/he is legal, based on the user's registration information and past preserve operations. If the user is legal,then the preserved data will be stored in the blockchain, and the DPS will then return the transaction hash \(Tx\).  
Primitiveness verification (PV).  
The PV module implements three main steps.  
Step 4: Viewing the preserved health data that are stored in the blockchain.  
First, the DPS retrieves the stored and encrypted data from the blockchain by using \(Tx\). Then, the private key _priKey_ is used to decrypt the data \(C\). Second, the consistency with the stored hashr, which hash is extracted from the original data, with hashc, which is the calculated hash of content \(M\), is checked. If they are consistent, then the preserved information is decrypted and returned. Otherwise, null is returned.  
Step 5: Verifying consistency with original data.  
The data that are uploaded by users must be verified by the DPS, which calculates hashc using the SHA-256 algorithm and hash from the original data. If they are consistent, then the health data to be verified are deemed identical to the preserved data.  
Step 6: Extracting health data from the blockchain.  
The DPS obtains all information using the transaction hash \(Tx\) and extracts the health data that were previously preserved.  
[PERSON] et al. [7] used a cryptographic mechanism to securely and reliably share a patient's data, but if the user stores many files, he or she will need to record the private key and \(Tx\) of each file separately. As the number of patients increases daily, this fact makes the management of patients' key pairs a huge challenge in their system.