Rollup Architecture
IBVM uses an optimistic rollup architecture with ZK proofs for more efficient verification.
Transaction Flow
Users submit transactions to the sequencer network
Sequencers order and execute transactions in batches
The state update is published off-chain
ZK-SNARKs prove the correctness of state transitions
Proofs and state commitments are submitted to Bitcoin
Batch Processing
Each batch of transactions follows this process:
Collect transactions $T = {T_1, T_2, ..., T_n}$
Order transactions according to gas price priority
Apply transactions to the current state $S_t$
Compute the new state $S_{t+1}$
Generate ZK proof $\pi$ of the state transition
Publish the batch metadata and state commitment to Bitcoin
Mathematical representation:
Initial state: $S_t$ with root hash $H_t$
Transactions: $T = {T_1, T_2, ..., T_n}$
Execute: $S_{t+1} = Apply(S_t, T)$
New state root: $H_{t+1} = Hash(S_{t+1})$
Generate proof: $\pi = Prove(pk, H_t, H_{t+1}, T)$
Publish to Bitcoin: $Commit(H_{t+1}, \pi)$
Data Availability
To ensure data availability, IBVM uses a hybrid approach:
On-chain Data: Minimal commitment data published to Bitcoin
Batch ID, state root, and proof hash
Off-chain Data: Full transaction data stored in a distributed network
Complete transaction data
Contract code and storage
Intermediate state roots
The data availability layer guarantees that:
All data needed to reconstruct the state is available
Data can be verified against on-chain commitments
Anyone can download and verify the full state
Data Availability Sampling
To verify data availability without downloading the entire dataset:
Data is erasure-coded using a Reed-Solomon code with parameters $(n, k)$
The encoded data is split into $n$ chunks
Verifiers randomly sample $s$ chunks
If all sampled chunks are available, with high probability all data is available
The probability of detecting unavailable data with $m$ missing chunks: $P_{detect} = 1 - \binom{n-m}{s} / \binom{n}{s}$
Fraud Proofs vs. Validity Proofs
IBVM combines elements of both optimistic rollups and ZK-rollups:
Optimistic Component:
Transactions are assumed valid initially
A challenge period allows for fraud proofs
Reduces the computational overhead for normal operation
ZK Component:
ZK-SNARKs provide cryptographic guarantees of correctness
Eliminates the need for long challenge periods
Enables faster finality
The challenge period duration is determined by: $T_{challenge} = \frac{L_{max} \times C_{safety}}{R_{block}}$
Where:
$L_{max}$ is the maximum Bitcoin reorganization length considered
$C_{safety}$ is a safety factor (typically 2)
$R_{block}$ is the average Bitcoin block rate
Last updated