Bitcoin Data Availability (DA), Zero-Knowledge Proofs (ZKP), and Decentralized Oracle Network

What is Data Availability?

Data availability refers to the assurance that the data for a new block on the blockchain has been published and is accessible to all participants. When a node receives a new block, it attempts to download all transaction data to verify its availability. Successful verification confirms that the block data has been properly published and can be accessed by the network. This process is crucial for maintaining the security and integrity of the blockchain, as it prevents data withholding attacks where block producers could withhold transaction data, leading to potential disruptions in the network. By ensuring data availability, all nodes can inspect the ledger of transactions, verify the chain's integrity, and participate in consensus processes. Efficient data availability mechanisms, such as data availability sampling used in modular blockchains like Celestia, allow for scalable verification without the need for every node to download all transaction data.

Why DA is important?

The booming development of Bitcoin on-chain applications such as Ordinals, BRC-20 tokens, and Runes has significantly increased the importance and richness of Bitcoin's data. These innovations, alongside advancements like the Taproot upgrade, which enhances privacy and scalability, and the UTXO (Unspent Transaction Output) model, which ensures efficient transaction processing, have made Bitcoin's blockchain more versatile and valuable. This enriched data environment underscores the critical role of Data Availability (DA) in Bitcoin. DA ensures that all transaction data for new blocks is published and accessible, allowing network participants to verify transactions and maintain the integrity of the blockchain. Without reliable DA, the network could fall victim to data withholding attacks, which can disrupt operations and enable fraudulent activities. For Biturbo, Bitcoin DA is especially crucial due to its unique Proof of Transaction (PoT) mechanism, which leverages Bitcoin's extensive and secure transaction data to validate and secure the network. By utilizing Bitcoin's robust transaction history and data integrity, Biturbo's PoT mechanism ensures that its own blockchain remains secure, transparent, and decentralized. This integration allows Biturbo to benefit from Bitcoin's well-established security infrastructure, enhancing the overall reliability and trustworthiness of the Biturbo network.

Zero-Knowledge Proof Generation and Commitment Verification

Biturbo leverages advanced Zero-Knowledge Proof (ZKP) technology, powered by a decentralized ZK computing power network, to ensure secure and efficient transaction validation. The ZKP system in Biturbo ensures that data integrity and privacy are maintained throughout the transaction process.

Generation of Proof

Similar to other advanced blockchain systems, Biturbo handles the generation and verification of transaction proofs through a specialized component known as zkProver. The zkProver is responsible for generating zero-knowledge proofs for transactions, ensuring they comply with all necessary rules to modify the state tree or exit the tree.

The zkProver performs complex mathematical calculations using polynomials and assembly language, followed by verification on smart contracts. These rules act as constraints that transactions must meet to ensure the validity and security of the blockchain.

Interaction with Nodes and Databases

The zkProver interacts primarily with two components: nodes and databases. The process can be broken down into four main steps:

  1. Merkle Tree Storage: The node sends the contents of the Merkle tree to the database and stores them there.

  2. Transaction Input: The node then sends the input transaction data to the zkProver.

  3. Data Access and Proof Generation: The zkProver accesses the database to obtain the necessary information, including Merkle roots, related sibling keys, and hash values, to generate verifiable proofs for the transactions.

  4. Proof Submission: The zkProver generates transaction proofs and sends these proofs back to the node for further processing.

This overview only scratches the surface of zkProver's capabilities. The detailed operations involve a sophisticated state machine that ensures accurate and efficient proof generation.

State Machine

The zkProver follows a modular design, consisting of a cluster of finite-state machines (FSMs). This design includes a main finite-state machine and several auxiliary finite-state machines that handle specific tasks. The modularization allows the main FSM to delegate tasks to specialized FSMs, improving overall efficiency.

Main Finite-State Machine

The main FSM is responsible for the core operations, coordinating with auxiliary FSMs through specific instructions known as "operations." These operations dictate how each FSM should transition states and perform calculations.

Auxiliary Finite-State Machines

Auxiliary FSMs handle various tasks, including:

  • Binary SM: Handles binary operations.

  • Storage SM: Manages data storage tasks.

  • Memory SM: Manages memory operations.

  • Arithmetic SM: Performs arithmetic calculations.

  • Keccak Function SM: Handles Keccak hash function operations.

  • PoseidonG SM: Manages Poseidon hash function operations.

Each auxiliary FSM operates under the guidance of the main FSM, executing tasks as instructed to ensure efficient proof generation.

Zero-Knowledge Assembly (zkASM)

Zero-Knowledge Assembly (zkASM) language maps instructions from the main FSM to other FSMs. For FSMs with firmware, zkASM acts as the interpreter, ensuring that calculations are performed correctly according to the specified assembly code. This code specifies how each FSM executor must perform calculations, adhering to strict logic and conventions to facilitate easy verification.

Polynomial Identity Language (PIL)

Polynomial Identity Language (PIL) is specifically designed for zkProver. Almost all FSMs use polynomials to express calculations. State transitions within FSMs must satisfy specific polynomial identities, which are encoded in PIL. This ensures that all computations are verifiable and correct.

Proving Execution Correctness

The zkProver ensures that all programs execute correctly by representing computations as FSMs, capturing state changes as polynomial identities, and verifying these identities through polynomial commitment schemes. This process involves:

  1. FSM Representation: Representing computations as FSMs.

  2. Polynomial Representation: Expressing state changes as polynomials.

  3. Execution Tracking: Capturing state changes as rows in a lookup table.

  4. Polynomial Constraints: Forming polynomial identities to verify state transitions.

  5. Proof Submission: Using polynomial commitment schemes to submit and prove knowledge of the polynomials.

Components of zkProver

The zkProver comprises four main components:

  1. Actuator (Main FSM Actuator): Handles the execution of zkEVM and interprets EVM bytecode using zkASM.

  2. STARK Recursive Component: Facilitates fast zk-STARK proofs using the Fast Reed-Solomon Interactive Oracle Proximity Proof (RS-IOPP).

  3. CIRCOM Library: Defines arithmetic circuits and generates valid allocations for circuits.

  4. zk-SNARK Prover: Generates zk-SNARK proofs quickly using CIRCOM's output.

These components work together to ensure that all proposed batches meet specific polynomial constraints and identities, ensuring the correctness and security of all transactions on the Biturbo network.

Decentralized Oracle Network (DON)

In Biturbo's architecture, the decentralized Oracle network (DON) is integral to achieving secure and efficient Bitcoin Data Availability (DA). The network ensures that Bitcoin transaction data is accurately fetched, verified, and made accessible to the Biturbo network, thereby enhancing the overall security and efficiency of Biturbo's operations.

Workflow of Biturbo’s DON

The decentralized Oracle network in Biturbo operates by collecting, verifying, and transmitting Bitcoin transaction data. Here’s an outline of the process:

  1. Transaction Collection and Batching: The sequencer node collects and batches transactions from the Bitcoin network, generating compressed transaction data, ZK state roots, and proofs through zkProver. Transaction raw data, Merkle trees, Bitcoin state, and other relevant data are aggregated to form a joint proof.

  2. Data Compilation and Synchronization: The compiled L2 data is then synchronized with the Oracle network. Upon receiving this data, the Oracle network performs circuit compilation, preparing the data for upload to the Bitcoin mainnet.

  3. Upload to Bitcoin Mainnet: The Oracle nodes upload the compiled data and commitment proofs to the Bitcoin mainnet’s taproot, ensuring that it is publicly accessible and verifiable by the entire network.

Responsibilities of Oracle Nodes

Oracle nodes play a crucial role in Biturbo’s architecture. Their responsibilities include:

  1. L2 Data Compilation: Oracle nodes compile transaction data collected and batch-processed by the sequencer node, ensuring the data is in the correct format for upload. This includes compressed transaction data, ZK state roots, and proofs.

  2. Circuit Compilation: After receiving L2 data from the sequencer, Oracle nodes perform a circuit compile operation, converting complex computational logic into a form that can be verified on the Bitcoin taproot.

  3. Uploading to Bitcoin Mainnet: Oracle nodes upload the compiled data and commitment proofs to the taproot on the Bitcoin mainnet. This operation allows all network participants to publicly verify and access the data.

  4. Batch Verification and Hash Transfer: Oracle nodes verify the integrity and authenticity of batch data, transmitting batch data and hash values to other Oracle nodes in the network.

  5. Signature Generation and Submission: Each Oracle node generates a signature for the batch hash, confirming its integrity and authenticity. The sequencer collects these signatures and the original batch hashes, then submits them to the Bitcoin network’s taproot.

  6. Bitcoin Threshold Signature Verification: Oracle nodes participate in the Bitcoin Threshold Signature Verification process, ensuring that submitted signatures meet the network's security requirements and provide sufficient approval for batch hashing.

  7. ZKP Final Settlement: Oracle nodes assist the proof aggregator in preparing a Zero-Knowledge Proof (ZKP) and submitting it to the taproot of the Bitcoin block. This proof confirms the validity of the batch transaction and updates the chain state of Layer 2 without revealing details.

  8. Decentralized Verification: The Oracle node network ensures combined verification of data availability and zkProof. Each node independently participates in the verification process, enhancing the security and decentralization of the system.

Oracle Node Staking Mechanism

The staking mechanism is a key component in maintaining security, incentivizing participants, and ensuring decentralization. This mechanism allows users to become Oracle nodes by staking different encrypted assets or by proxy staking to existing Oracle nodes.

  1. Diverse Staking Options: Users can stake BTC, MERL, and other mainstream assets. The staking weight is dynamically adjusted based on the market value and liquidity of each asset, allowing small investors to qualify as Oracle nodes.

  2. Rewards Based on Staking: The amount of a user’s stake directly affects the rewards they receive. Larger stakes result in higher rewards, encouraging active participation in network maintenance and governance.

  3. Stake Delegation: Users can delegate their assets to reputable Oracle nodes, participating in network governance and receiving rewards based on the proxy node's performance.

  4. Asset Security and Transparency: Multi-signature and cold storage technologies protect staked assets. All staking and reward distribution processes are open and transparent, with real-time monitoring and flexible exit mechanisms.

Staking Rewards

Staking rewards for Oracle nodes include block rewards and transaction fees. Block rewards are issued in native tokens based on staking weight and network performance, while transaction fees are distributed proportionally among stakers of different assets.

Security Measures

  1. Node Selection and Elimination: Oracle nodes are selected based on criteria such as staking amount, online duration, and verification success rate. Nodes with poor performance are eliminated, ensuring only reliable nodes participate.

  2. Protection of Pledged Assets: Multi-signature technology and cold storage solutions protect staked assets, with all transactions secured by smart contracts for immutability and transparency.

Integration with ZKP

The decentralized Oracle network combines DA and zkProof verification through the following steps:

  1. Batch Formation: User transactions are collected and organized into batches by the sequencer.

  2. Batch Validation: Validated batch data and hash values are transmitted to Oracle nodes.

  3. Data Verification and Storage: Oracle nodes independently verify batch data, storing the verified hash values.

  4. Signature Generation: Oracle nodes generate signatures for batch hashes.

  5. Communication with Bitcoin: The sequencer submits signatures and batch hashes to Bitcoin’s taproot.

  6. Threshold Signature Verification: Oracle nodes verify signatures against valid Oracle network members.

  7. ZKP Final Settlement: The proof aggregator prepares and submits a ZKP to Bitcoin’s taproot, confirming batch transaction validity and updating the L2 chain state.

This process ensures secure, efficient, and decentralized data verification and storage, integrating seamlessly with Bitcoin’s mainnet to enhance Biturbo’s network.

Biturbo seamlessly integrates Zero-Knowledge Proofs (ZKP) and the Decentralized Oracle Network (DON) to ensure secure and efficient data availability from the Bitcoin blockchain. The ZKP mechanism verifies the integrity and validity of Bitcoin transaction data without revealing the actual data, thus maintaining privacy and security. This cryptographic method allows Biturbo to securely use Bitcoin transaction data in its Proof of Transaction (PoT) mechanism. Concurrently, the DON fetches, compiles, and uploads Bitcoin transaction data to Biturbo, ensuring it is publicly accessible and verifiable. The DON handles the collection and verification of data, while ZKPs ensure that the data remains secure and tamper-proof. Together, these technologies create a robust system where data integrity is maintained through ZKPs, and comprehensive data availability is achieved through the DON. This integration guarantees that Biturbo can leverage the security and extensive transaction history of the Bitcoin blockchain, enhancing the overall security, transparency, and efficiency of the Biturbo network.

Last updated