Fig2. The general flow of applications on Bitcoin
- Fiamma: The core network handling the verification of ZKPs.
- Data Availability (DA) Layer: Stores proof-related data securely.
- Bitcoin: Executes scripts to verify data and signatures.
- Check Contracts for Various ZKP Systems: Includes Fflonk, Boojum, Stark, and others.
- ZKP Systems (Fflonk, Boojum, Stark, etc.):
- Various ZKPs are generated by different systems and submitted to the Fiamma network.
- Fiamma:
- Generate Schnorr Signature: Fiamma generates a Schnorr signature which includes
data_hash
,proof_hash
,result
, andnew_state
.
- Generate Schnorr Signature: Fiamma generates a Schnorr signature which includes
- Fiamma to DA Layer:
- Send Data: Fiamma sends the transaction data (
txdata
), proof, and result to the DA layer for storage.
- Send Data: Fiamma sends the transaction data (
- DA Layer:
- Store Data: The DA layer securely stores the received data ensuring its availability and integrity.
- DA Layer to Bitcoin:
- Send Tuple Data: The DA layer sends a tuple of data (
tuple_data{data_hash, proof_hash, result, new_state}
) to Bitcoin for further verification.
- Send Tuple Data: The DA layer sends a tuple of data (
- Bitcoin:
- Check Script: Bitcoin executes scripts to verify the data and signatures.
- Bitcoin Scripts:
- Check Script Execution: The scripts on Bitcoin perform checks on
DA Check
andSig Check
to verify the data and signatures. - Final State Update: Once the checks are successful, the final state is updated on the Bitcoin network.
- Check Script Execution: The scripts on Bitcoin perform checks on