Relic Protocol involves three processes. These processes are designed to provide a secure and efficient way for users to access historical data.

The first process is Commitment. In this process, the ZK Prover rolls up historical data on-chain. This process is trustless and enables cheap and secure access to historical data during verification.

The second process is Verification. During this process, the user verifies the historical data that has been stored on-chain and creates a Fact. The Fact is a cryptographic proof that can be used to prove the authenticity and validity of the data.

The final process is Access. In this process, the dApp contract uses the Fact to access the stored historical data.This ensures that the data is correct and cannot be manipulated or tampered by anyone.

Overall, this is a secure and reliable way to store and access historical data by using ZKP technology and an on-chain system; our protocol ensures that data is secure, tamper-proof, and accessible only to authorized parties.


Commitment is the process of the ZK Prover storing the Merkle tree hash of block headers on-chain. The ZK Prover submits the Merkle root, which includes the hashes of each block header and the corresponding ZK Proof, to the BlockHistory contract. To ensure data integrity, the BlockHistory contract only stores Merkle roots that have been verified by the zk-SNARKs verifier in its mapping.


Verification is the process of a user checking the validity of historical data. To verify this data, the user submits block headers and proofs to the Prover contract. The StateVerifier contract then uses the submitted proof along with the Merkle root stored in the BlockHistory contract to validate the historical data. Once the data is verified, it is optionally stored in the Reliquary contract. This process ensures the integrity of historical data.


Access is the process of a dApp using historical data. The dApp contract can access the historical data stored in the Reliquary by an earlier verification, or it can request a verification of one-time use data. The Reliquary is the source of truth in the Relic Protocol.