Skip to content

Latest commit

 

History

History
40 lines (27 loc) · 1.79 KB

File metadata and controls

40 lines (27 loc) · 1.79 KB

For Non-Programmable Blockchains:

Fig2. The general flow of applications on Bitcoin

Components Involved:

  1. Fiamma: The core network handling the verification of ZKPs.
  2. Data Availability (DA) Layer: Stores proof-related data securely.
  3. Bitcoin: Executes scripts to verify data and signatures.
  4. Check Contracts for Various ZKP Systems: Includes Fflonk, Boojum, Stark, and others.

Steps:

Step 1: Proof Generation and Submission

  • 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, 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 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.
  • Bitcoin:
    • Check Script: Bitcoin executes scripts to verify the data and signatures.

Step 4: Verification on Bitcoin

  • Bitcoin Scripts:
    • Check Script Execution: The scripts on Bitcoin perform checks on DA Check and Sig Check to verify the data and signatures.
    • Final State Update: Once the checks are successful, the final state is updated on the Bitcoin network.