It’s been mentioned (for example in Community Call #10) that Sovryn will be moving to an optimistic rollup (I believe based on Arbitrum but not 100% sure here).
This morning Matter Labs published a blog post announcing a WIP implementation of their Solidity-compatible zkRollup. They expect a testnet to launch within “a few months”, and I imagine a mainnet launch will follow a few months after that. So let’s say 6 months to a year for mainnet availability of a Solidity-compatible zkRollup implementation.
zkRollup has a number of advantages vs optimistic rollup. It is faster, more secure, and more capital efficient. I think it would be worth waiting for the Solidity-compatible zkRollup then migrating from RSK mainchain to the zkRollup rather than prematurely adopt the optimistic rollup and then have to decide again in a few months whether we will switch again or not (which I would also advocate for at that time, due to the aforementioned advantages). RSK mainchain is unlikely to become over-congested between now and then, so imo we’re in no rush to migrate to L2.
What are other people’s thoughts about zkRollup vs optimistic rollup and which one Sovryn should use?
This is an important issue and one I spend a lot of time thinking about. The urgency for us is the ability to free ourselves from the dependance of theRBTC federated peg - which simply does not allow enough liquidity to be useful.
One question is how can we transition from an optimistic rollup to zk in the future? The thing about it is that all tokens would still be on layer 1 - so we could theoretically just “point” them to a new ZK implementation.
Isn’t the Sovryn Peg solving that problem? Then users will only need enough RBTC to pay for gas, which current RBTC supplies should more than cover.
I’m suggesting we skip the optimistic rollup and go straight to Solidity-compatible zkRollup when it’s ready. But if we were to still migrate to optimistic rollup first, then to migrate from the optimistic rollup to the zkRollup would look like:
Step 0. Deploy zkRollup with Sovryn contracts
Step 1. Users withdraw their tokens from the optimistic rollup back to the mainchain
Step 2. Users deposit their tokens into the zkRollup
Step 3. Users put their tokens into the zkRollup version of Sovryn