Docs
  • Overview
  • Our Product Suite
    • Fiamma Bridge (Pragmatically Trustless BitVM Bitcoin Bridge)
      • Introduction
      • Consensus Validity
      • Fungible Transfer
      • Fiamma Bridge Status
      • User Guides
        • Testnet Alpha
          • How to Deposit and Withdraw on Fiamma Bridge?
    • Fiamma Layer (BitVM-Powered ZKP Verification Layer)
      • Introduction
        • Key Highlights
        • Challenges Tackled
        • Core Technologies
      • Architecture
        • General Flow (Soft Finality)
          • For Programmable Blockchains
          • For Non-Programmable Blockchains :
        • ZKP Verification Process
      • Ecosystem Layout
      • User Guides
        • QuickStart
        • Installation
        • Wallet and Tokens
          • Connect Keplr Wallet
          • Get $FIA
        • Manage Keys
        • Fiamma Testnet Explorer
      • Developer Guides
        • Network Information
        • Fiamma CLI
          • CLI Command Overview
          • CLI Tutorial
        • Fiamma-Committee CLI
        • Run a Fiamma Node
          • Set up a Node
          • Getting Testnet Tokens
          • Become a Bitvm Staker
          • Become a Validator
        • Rest API And GRPC
        • Fiamma ZKPVerify SDK
        • Supported ProofSystem
      • Roadmap
    • Other Essential Protocols
  • Support
Powered by GitBook
On this page
  • Components Involved:
  • Steps:
Edit on GitHub
  1. Our Product Suite
  2. Fiamma Layer (BitVM-Powered ZKP Verification Layer)
  3. Architecture
  4. General Flow (Soft Finality)

For Programmable Blockchains

PreviousGeneral Flow (Soft Finality)NextFor Non-Programmable Blockchains :

Last updated 6 months ago

Components Involved:

  1. Fiamma: The core network handling the verification of ZKPs.

  2. Data Availability (DA) Layer: Stores proof-related data securely.

  3. Ethereum: Executes smart contracts to verify data and signatures.

  4. 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 Check and Sig Check.

Step 4: Verification on Ethereum

  • Ethereum Smart Contracts:

    • Check Contract Execution: The smart contracts on Ethereum execute the checks (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 Ethereum network.

Fig1. The general flow of applications on Ethereum