ZKP Verification Process
The following diagram illustrates the comprehensive workflow of the Fiamma verification layer.
Last updated
The following diagram illustrates the comprehensive workflow of the Fiamma verification layer.
Last updated
Public Chains: These are the major blockchain networks like Bitcoin and Ethereum, where final transactions and state updates are recorded.
ZK Apps: Applications that generate and aggregate Zero-Knowledge Proofs, ensuring privacy and integrity of transactions.
Objective Nodes: Nodes participating in the Proof-of-Stake consensus mechanism to validate proofs.
Intersubjective Nodes : User-operated nodes run on mobile devices involved in fetching, verifying, and submitting proofs.
Fiamma Chain: The core network handling the verification of Zero-Knowledge Proofs built with Cosmos SDK.
DA : Data Availability layer that stores proof-related data securely.
Staking: Mechanism within the Fiamma ecosystem responsible for staking operations and state updates.
Finalize: Finalization layer where transactions and state updates are recorded on the Bitcoin blockchain.
Step 1: Proof Submission and Aggregation
ZK Apps:
Submit individual proofs to the Fiamma network.
Aggregate Proofs (Optional): Aggregate proofs before submission to save costs. Note that this can increase the processing time from seconds to hours depending on the situation.
Step 2:Objective Finality and Consensus
Objective Nodes (PoS):
Begin Objective Finality: The process to reach consensus on the submitted proofs begins.
Consensus: Nodes collaborate to validate the proof, ensuring its accuracy.
Send Hash, Proof Results, and Multi-Signatures: The validated proof, along with hash and signatures, is sent to the DA module.
Fiamma Chain:
Return Commitment: The chain returns the commitment to the data.
Pre-Sign Asset Transaction: Prepares to sign the asset transaction for further processing.
Step 3:Data Request and Proof Validation
ZK Apps:
Request Merkle Proof: Applications request the Merkle proof to construct transactions sent to the L1 chain.
Access Proofs: The requested proofs are accessed for validation.
Objective Nodes (PoS):
Provide Merkle Proof Request: Nodes process the request for Merkle proofs.
Access Proof Data: Data required for proof validation is accessed and prepared.
Fiamma Chain:
Begin Intersubjective Finality: The process for final validation involving intersubjective nodes begins.
Step 4: Intersubjective verification and hard Finality
Intersubjective Nodes (User):
Verify ZKP: Nodes verify the Zero-Knowledge Proof.
If Valid (Happy Path): If the proof is valid, the result is marked as TRUE.
Collect Intersubjective Results: The results from various nodes are collected to confirm the proof’s validity. if the number exceeds the threshold, the proof state will be updated to hard finality.
Step 5: Happy Path
Intersubjective Nodes (User):
Send Results if TRUE: If the proof is valid, the results are sent as TRUE.
Achieve Objective and Intersubjective Finality: Both objective and intersubjective finality are achieved, confirming the proof’s validity.
Public Chains:
Process Transactions (Soft Finality): Transactions are processed if the network trusts the soft finality of the proof.
Fiamma Chain:
State Updates: The chain updates its state, confirming the successful verification of proofs.
Step 6: Unhappy Path (Orange)
Intersubjective Nodes (User):
If Invalid (Unhappy Path): If the proof is invalid, the unhappy path is triggered.
Read Commitments: Nodes read the commitments to identify discrepancies.
Send Disputed Sub-Script: A disputed sub-script is sent for further verification.
Fiamma Chain:
Handle Dispute: The chain processes the dispute, verifying the invalid proof.
Initiate Slashing: Penalizes the involved parties for submitting invalid proofs.
Babylon Chain:
Manage Penalties and Slashing: Manages the penalties and slashing operations for invalid proofs.
Bitcoin Chain:
Record Commitments and Checkpoints: Records the necessary commitments and checkpoints for validation.
Public Chains:
Process Transactions (Hard Finality): Transactions are processed if the network trusts the hard finality of the proof.
Step 7: Finalization and Penalties
Fiamma Chain:
Ensure Finalization: Ensures that all processes are finalized, managing stakes and penalties appropriately.
Bitcoin Chain:
Record Timestamps and Checkpoints: Records final timestamps and checkpoints to validate the process.
*Additional Details:
Unhappy Path Handling: When an invalid proof is detected (Proof_0), it follows the "Unhappy Path," triggering the Slash mechanism and involving steps like reading commitments, issuing challenge transactions, and validating through consensus.
Happy Path Processing: Valid proofs follow the "Happy Path," ensuring smooth and efficient processing without triggering penalties.
Here's a table comparing the Happy Path and Unhappy Path in Fiamma's ZKP handling:
Aspect
Unhappy Path
Happy Path
Definition
Error-handling workflow triggered by invalid proofs
Standard, error-free workflow with valid proofs
Proof Submission
Users submit zero-knowledge proofs to the Fiamma chain
Users submit zero-knowledge proofs to the Fiamma chain
Proof Reception
Proofs are received and processed
Proofs are received and processed
Objective Finality
Invalid proof triggers error handling
Consensus is reached, and proof results are sent to the Fiamma chain
Proof Validation
Invalid proof detected, challenge process is initiated
Proofs are validated, multi-signatures are generated
Data Request
Commitments are read to identify discrepancies
Merkle proof is requested and accessed
Intersubjective Finality
Disputed sub-script is sent for verification
Users verify proofs and confirm validity (results marked TRUE)
Consensus Process
Nodes handle disputes and initiate slashing
Nodes achieve both objective and intersubjective finality
State Updates
State update is paused for further verification
State is updated with validated proofs
Commitments Handling
Invalid commitments handled through dispute resolution
Valid commitments sent to Bitcoin chain
Penalty Mechanism
Slashing mechanism is triggered for invalid proofs
Not applicable
Transaction Processing
Transactions processed if hard finality is trusted
Transactions processed if soft finality is trusted
User Notification
Users are informed of invalid proof and penalties
Users are informed of successful validation
Finalization
Ensures disputes are resolved, and penalties managed
Ensures all processes are finalized and recorded
Efficiency
More complex with additional steps for error handling
Smooth, efficient, and straightforward
Outcome
Invalid proofs lead to penalties and potential delays
Valid proofs lead to state updates and rewards
User Experience
More complex due to error handling and validation processes
Positive, with timely processing