Overcoming the Limits of the Blockchain
José.ontropy | Aug 16, 2023
Don’t Overload Ethereum’s Consensus
Elon Musk once proclaimed that a social network could never be on the blockchain because consensus layers are purposefully latent to allow time for everyone across the planet to agree on transactions.
Elon’s mistake is due to the larger tragic misunderstanding that all local events should be settled on a global consensus system (a notion recently dispelled by Vitalik Buterin’s Don’t Overload Ethereum’s Consensus). In fact, not only is using a mainnet consensus for everything expensive and unnecessary, it actually reduces security.
This is because of Vitalik’s social consensus dilemma as well as the fact that global consensus mechanisms contain majority, often 51%, trust assumptions. On the other hand, private ledgers and state channels are unilaterally fault-tolerant meaning just 1 of N can prove the final result.
To recap, the status quo is that most “Web3” interactions are off-chain but use an expensive PoS consensus model to propagate some information and assets. In this way, Elon is right. The web will never be decentralized.
But there’s a better way.
Transactions between relevant parties need only be approved by those relevant parties. While oftentimes this means using a global consensus mechanism which encompasses the de facto approval of all relevant participants, predefining recurring relationships could allow the trustless bundling of transactions and data by these relevant parties in a private ledger.
Crypto veterans will know this as the state channel. State channels involve the depositing of collateral onto a global consensus mechanism alongside a user with whom you would like to trade; followed by the unlimited gasless transactions with this counterparty who will always know the remaining collateral due the requirement of their signature. In essence, double-spend is avoided by forcing every change to be approved by everyone.
This is not as bad as it sounds. For example, a user could never dispute the balance because their counterparty held their agreement to all previous transactions in a multisig, and therefore the final balance. In this way, the users achieved peer-to-peer finality.
While popular in 2018, and making up the foundation of the Lightning Network, state channels have lost their excitement to layer 2s.
I chalk this up to three main reasons:
- Only 2 users could effectively use state channels, limiting utility to B2B recurring transactions
- Relationships must be predefined, but we often make a swap or trade with an anonymous counterparty and never again
- They are difficult to operate, adding an additional layer of difficulty to already onerous Web3 UX
Virtual Rollup Improvements
Virtual Rollups are a new generation state channel, a so-called “ZK state channel.” They allow games, social platforms, and loyalty point providers to trustlessly bundle unlimited transactions with unlimited players.
We’ve launched our closed beta with 10 accepted dApps in one month despite no movement in state channels in five years. Here’s why:
- Virtual Rollups handle unlimited player signers at a constant cost through the use of ZK Accumulators and BLS signatures
- We built “Dynamic Channels” into Virtual Rollups which allow new players to join and leave without forcing the on-chain creation of a new channel
- They’re seamlessly initialized through a Metamask transaction, communicated through a libp2p network, and secured without the average user knowing
The results are
- Unlimited compute
- Finality at the speed of your internet connection
- Consensus for the price of electricity
- The user experience a player would have in a traditional Web2 app
The right side is more secure, and efficient due to user-validated consensus
How Virtual Rollups Work
The process of spinning up Virtual Rollups for a game lobby where the players are their own validators may seem complicated, but it is merely unfamiliar. An important thing to remember is that tokens are still stored on the main chain in a smart contract and are never moved. Here’s how we can still use these tokens in Virtual Balances:
1. A user sends tokens from their wallet to a smart contract, interacting with the blockchain like normal
- Funds are now in contract, but are “pointing towards” the user’s EOA. Everyone can derive this Virtual Balance by observing who deposited the funds
2. The users generate a shared session key based on the wallet they used to deposit funds
3. Virtual Balances are changed by desired in-game actions—signed by every user’s session keys—like winning a round, placing a bet, or transferring funds
- No tokens are exchanged on the blockchain, but every user keeps track of where they “point to” in a Merkle Tree
4. When a user wants to leave, all users will generate a BLS signature of this final state, including balance, leaderboard, etc. The existing user will submit this 520 bit signature to mainnet and the contract will recognize the legitimacy of this signature by comparing the signatures of all previous depositors, transferring funds immediately.
- If a user refuses to generate a BLS signature and “sign them out,” the existing user can still submit an incomplete BLS signature to the blockchain. The contract will recognize this, and will process the transaction, along with a slashing penalty from the malicious user, after 8 hours to leave room open for disputes.
App Chains and Layer 2s Comparison
Virtual Rollups are distinct and non-competitive to rollups-as-a-service and layer 2s. In fact, the relationships are symbiotic.
The main purpose of app chains, for example, is for dApps to gain sovereignty over their own mini-blockchains powered with their own token. Ontropy does not do this. However, while gas fees are only deferred via a centralized sequencer in app chains, Virtual Rollups can be added as a compliment to truly cut gas fees and increase decentralization through trustless user validation.
The weaknesses of Virtual Rollups are put on full display in regards to L2s, or “traditional” rollups. Virtual Rollups are trustless because they require the cryptographic approval of every relevant user. This requires liveness, making global consensus impossible. This means that interactions can only be effectively bundled in recurring relationships.
Of course, the definition of recurring relationships has been largely expanded with Virtual Rollups. Now, set up fees are now cost effective after two interactions with the app overall, as opposed to the three interactions with one specifically predefined counterparty in state channels. So, Virtual Rollups are necessary to enable fully on-chain gaming, social platforms, and loyalty point systems, but cannot yet be used in DeFi.
It can therefore be said that traditional layer 2 rollups bring together disparate groups while Virtual Rollups allow these groups to connect trustlessly p2p, instead of via the centralized “dApp” status quo.
If Web3 is to survive, it must adapt faster than it currently is. And to do this, all three technologies are needed, especially L2 and Virtual Rollup scaling solutions.
And share with a friend if you enjoyed!