# Secure and Transparent Space Exploration Data Management Using a Hybrid Blockchain Model
## 3 Proposed Model
### Data Integrity Verification Using Zero-Knowledge Proofs  
The process of proving data integrity consists of two main stages: Data Registration and Data Verification. In the data registration stage, the raw data generated during the \begin{table}
\begin{tabular}{p{113.8 pt} p{113.8 pt} p{113.8 pt} p{113.8 pt}} \hline
**Feature** & **Public Blockchain** & **Private Blockchain** & **Hybrid Blockchain** \\ \hline Access Control & Everyone & Authorized users & Public data are accessible to all, private data are restricted to authorized users \\ \hline Governance & Fully decentralized & Centralized & Hybrid model \\ \hline Transparency & Publicly visible & Transactions are only visible within the organization & Public data are open, private data remains protected \\ \hline Security & High integrity due to distributed storage, but low confidentiality & High confidentiality due to restricted access, but potential trust issues & Combines the security advantages of both public and private blockchains to ensure integrity and confidentiality \\ \hline Data Integrity & Strong immutability ensured by blockchain consensus & Integrity is guaranteed within the organization, but not publicly verifiable & Uses ZKP on the public blockchain to ensure data integrity without exposing sensitive data \\ \hline \end{tabular}
\end{table} 
Table 1: Comparison of blockchain types based on key characteristics. Figure 1: Hybrid blockchain-based data storage and access model. exploration is collected, and a cryptographic hash function is applied to the original data \(D\) to generate a hash value \(H(D)\). Then, a zero-knowledge proof algorithm is applied to \(H(D)\) to generate a cryptographic proof \(\pi(D)\). The generated ZKP proof is published on the public blockchain without disclosing the actual data \(D\). To verify the integrity of private data later, the system retrieves the data from the private blockchain and re-computes the hash and ZKP proof. It then compares these with the originally published hash and proof using a verification smart contract. If the hashes and ZKPs match, it confirms that the data have not been altered. This process ensures that verifiers can confirm data integrity without accessing the underlying sensitive data, thus preserving confidentiality. ZKP algorithm selection and overhead:  
In our implementation, we adopt zk-SNARKs, short for zero-knowledge succinct non-interactive argument of knowledge, which provide efficient and compact proof sizes suitable for blockchain environments. zk-SNARKs allow for fast on-chain verification with minimal gas costs and do not require interaction between the prover and verifier. While zk-STARKs offer post-quantum security and transparency, they generally incur higher proof sizes and computation time, which are less optimal for current smart contract deployment. Therefore, zk-SNARKs were chosen to balance efficiency and practicality. The computational overhead for generating a zk-SNARK proof for a single data record was approximately 0.6-0.8 s in our tests, while on-chain verification time was under 0.1 s. This performance is sufficient for periodic integrity verification and aligns with the resource constraints of typical space communication systems. For the implementation of zk-SNARK proofs, we employed the Circum and SnarkJS toolchain, which are widely used frameworks for generating and verifying zero-knowledge proofs. The system setup required a trusted setup phase, which involved the generation of a common reference string to ensure the validity of the proofs without revealing sensitive data. Parameters were configured to balance proof size and generation time, optimizing for efficient on-chain verification. Verification flow summary:  
1. Data \(D\) is hashed: \(H(D)\). 2. A ZKP proof \(\pi(D)\) is generated using zk-SNARK algorithms. 3. The hash and proof are stored on the public blockchain. 4. When verification is needed, a new hash \(H^{\prime}(D)\) and proof \(\pi^{\prime}(D)\) are generated and compared with stored values. 5.