zkRollup vs optimistic rollup

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

It would take 9 months or so to get Sovryn on a ZKrollup.

I suppose the thinking is we go with Arbitrum in the 6 or so months that ZKrollup is being built and tested.

Also we may have a Sovryn BTC peg that might happen which will curb the liquidity issue?

I don’t know if that is a sure thing, but Sovryn needs to be running, with new users coming in and trading, and with a higher ceiling of liquidity and it should happen asap.

Just as an update on this thread, Matter Labs now says their zkEVM implementation will launch on mainnet in August 2021: