For Programmable Blockchains

Components Involved:
- Fiamma: The core network handling the verification of ZKPs. 
- Data Availability (DA) Layer: Stores proof-related data securely. 
- Ethereum: Executes smart contracts to verify data and signatures. 
- Check Contracts for Various ZKP Systems: Includes Boojum, Plonky2, Circle Stark, and others. 
Steps:
Step 1: Proof Generation and Submission
- ZKP Systems (Boojum, Plonky2, Circle Stark, etc.): - Various ZKPs are generated by different systems and submitted to the Fiamma network. 
 
- Fiamma: - Generate BLS Signature: Fiamma generates a BLS signature which includes - data_hash,- proof_hash,- result, and- new_state.
 
Step 2: Storing Data in DA Layer
- Fiamma to DA Layer: - Send Data: Fiamma sends the transaction data ( - txdata), proof, and result to the DA layer for storage.
 
- DA Layer: - Store Data: The DA layer securely stores the received data ensuring its availability and integrity. 
 
Step 3: Retrieving Data from DA Layer
- DA Layer to Ethereum: - Send Tuple Data: The DA layer sends a tuple of data ( - tuple_data{data_hash, proof_hash, result, new_state}) to Ethereum for further verification.
 
- Ethereum: - Check Contract: Ethereum smart contracts retrieve and verify the data from the DA layer. The contracts perform checks on - DA Checkand- Sig Check.
 
Step 4: Verification on Ethereum
- Ethereum Smart Contracts: - Check Contract Execution: The smart contracts on Ethereum execute the checks ( - DA Checkand- Sig Check) to verify the data and signatures.
- Final State Update: Once the checks are successful, the final state is updated on the Ethereum network. 
 
Last updated