How Virtual Engine Transactions Work

Virtual Rollups are powered by the Virtual Engine to deliver Self-Validated, Zero-Gas Transactions on the application layer

Virtual Rollups bundle transactions from multiple users to lower costs and latency. However, as opposed to optimistic or ZK rollups, Virtual Rollups have no nodes, validators or sequencers. In a Virtual Rollup, these roles are fulfilled by the user! You verify the transactions and order proofs. This makes Virtual Rollups unilaterally fault tolerant. This means that you alone can prove and eliminate user cheating and collusion.

Here's how it works:

  1. Players "buy-in" by depositing collateral to a smart contract. This balance is represented and changed in an in-game virtual wallet. If the application does not require funds, then a deposit is not necessary.

  2. The players in the lobby, or users in an application, regenerate ephemeral keys to include the new user. Existing players need not interact with the blockchain.

  3. When a player makes an interaction, and data leaves their device, a Plonky2 MuSig is added and sent out to all other players. These other players also sign and send back this data. All players add this agreement to a Merkle root so that they can later prove that the interaction was received by everyone else.

  4. Once a player is ready to leave, they will request that the other players knowledge this by completing a "lock-and-key" method that points the virtual balance back to the player's MetaMask wallet. This way, the player cannot double spend the balance in the lobby. The player submits the lightweight proof on-chain and receives funds immediately.

    • If one or multiple of the other players refuse to unlock the player who is attempting to leave, they may reaggregate the signatures they received during game interactions in step 3 and submit this similarly lightweight proofs. Therefore, as finality is achieved at the point of making the interaction, and not during cash-out, malicious players can only incur a slightly more expensive proving process (6,500 gas, or 0.003 MATIC).

The result is an SDK that can make Web2 games fully on-chain in under an hour, all without cost, latency, or wallet friction.

Last updated