A Newbie’s Adventures in NFT Scaling Solutions

Table of Contents

  1. Intro
  2. What exactly do they scale?
  3. What powers each solution?
  4. How hackable are they and what’s the worst case?
  5. How censorship resistant are they?
  6. How fast is the settlement?
  7. Are they self sustainable?
  8. Scaling solutions in the NFT space
  9. Uniswap V3 and optimistic rollup
  10. Composability
  11. Conclusion

Intro

I am a newbie to Ethereum, and just a few weeks ago I participated in NFTHack to learn and meet other people interested in NFT https://nfthack.ethglobal.co/

I built a project called Hashchain (https://hashchain.app/about) as a solution for potential “NFT front running” that may happen in the future as lazy minting becomes prevalent.

In the process I got acquainted with Polygon (https://polygon.technology/), an Ethereum Plasma sidechain that makes it super easy to build scalable smart contract apps. Back then I had no idea what kind of scaling solutions existed, but after the hackathon was over, I got interested in various scaling solutions in Ethereum and decided to do a quick research.

Personally I think the only thing that’s holding back NFT from completely taking over the world is the scalability issue. And while many NFT projects and companies have come up with various scaling solutions such as lazy minting, adoption of Plasma sidechains (Opensea, Zora, etc.), and soon to be launched ZK Proof based solutions (more on this below), there’s still a long way to go.

In this article I am going to discuss all the things I’ve learned about various scaling solutions as well as a lot of things I was confused about in the beginning as an Ethereum newbie. Hopefully other newbies find this helpful and I will also learn even more through feedback.

So please note that this is coming from a complete newbie point of view and I may have gotten certain things wrong, so please don’t hesitate to correct me if I’m wrong on something. And I would appreciate lots of feedback.

You can find me on Twitter: https://twitter.com/skogard

What exactly do they scale?

There are many ways to scale a blockchain. Some solutions scale the computation, some solutions save the blockchain storage. Some solutions save the gas price by saving the computational cost. These are two separate qualities.

All rollups are computational scaling solutions. Optimistic rollup, Zk rollup, Validium, all of these move computation outside of the Ethereum. This means all of the scaling solutions will reduce gas price.

Scaling computation is important but also the blockchain size is important. Which solutions save more space?

  • Plasma: Since Plasma only commits the root of each block to the main chain, it saves a lot of space (but this also means the plasma chain needs to take care of its own security)
  • Optimistic Rollup: Optimistic rollup is the least efficient when it comes to storage. Because the whole point of rollups is to execute state transitions offchain while storing the transactions onchain, it still needs to store all the transactions on Ethereum at the end of the day. So if your optimistic rollup chain had a million transactions, you still have to save all these transactions on ETH. As you can see, the storage grows linearly against the number of transactions.
  • ZK Rollup: ZK Rollup also needs to store transactions on the main chain, but it’s much more efficient than optimistic rollup because there is only one witness per block (whereas optimistic rollup needs one signature per transaction)
  • Validium: Validum is basically ZK Rollup minus onchain transaction storage. The only thing it settles on the main chain is the Zero Knowlege proof, and each validium operator is responsible for storing the transactions for their users.

What powers each solution?

Optimistic rollup is powered by game theory (or economics). It’s basically “We will assume everything goes well, but if you do something wrong, then we will punish you”. This may sound familiar because this is how our existing financial system works.

Think of a credit card. If someone steals your card and spends your money from the card, there’s no way the credit card company will know until you yourself figure it out and “challenge” to the company that there was a fraud. In case of credit card, depending on which country you live, the government may protect consumers for credit card fraud up to 60 days. Optimistic rollup has around 1 week of challenge period for the same reason.

But here’s a difference between a credit card fraud and an optimistic rollup fraud: The level of punishment is exactly the same for everybody regardless of how much harm they do to the system, because it’s all preconfigured. If you engage in a credit card fraud, you will be punished much more if you stole a billion dollars compared to a guy who stole a dollar.

However on optimistic rollup, it looks like a billion dollar heist is treated the same way as a dollar pickpocket. This makes it vulnerable to 51% attack when the profit (steal) outweighs the cost (punishment).

Let’s look at an excerpt from the Bitcoin Whitepaper:

If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins. He ought to find it more profitable to play by the rules, such rules that favour him with more new coins than everyone else combined, than to undermine the system and the validity of his own wealth. — Satoshi Nakamoto

Even in Bitcoin, if the attacker finds it more profitable to NOT play by the rules, the attacker has plenty of incentive to sabotage the system. To be clear, the worst case scenario in optimistic rollup is nowhere as bad as the worst case scenario in Bitcoin because the fraud transactions can be rolled back and the system can incentivize their users to roll back the ledger in case the initial “optimism” proves to be incorrect.

ZK Rollup (Zero Knowledge Rollup) is based on zero knowledge proofs, so we could say that it’s powered by “math”. If a ZK rollup block is valid, then there is no room for disputes because it’s provably correct.

None of what happens offchain can ever settle on the main chain unless the proof is mathematically correct. This means nobody can steal your funds on the Ethereum main chain by attacking a ZK rollup offchain system.

Validium is basically ZK Rollup without Onchain Transaction Record.

Which means it works the same way as ZK Rollup — it stores the ZK Proof on the Ethereum main chain — except that the actual offchain transactions are NOT stored on the Ethereum main chain. They are only stored by the Validium service operators.

If I understand correctly, strictly speaking Validium is not a “rollup” since the definition of “rollup” seems to be that the offchain transactions are fully “rolled up” to the main chain so everybody has full access to the offchain transactions in case something goes wrong, in which case they can use the “rolled up” transactions to prove and move their funds. This was the main innovation rollups brought over Plasma.

So what is Validium powered by? First, the ZK part is still valid, the same way ZK Rollup protects your onchain Ethereum funds from any offchain transactions, Validium never lets any fraudulent transaction get settled on the main Ethereum chain. So we can say it’s part powered by math.

But because Validium does not store all the transactions on the main chain and the Validium operators are responsible for storing the transactions themselves, we could say it’s also part powered by economics. There’s some trust factor that users expect Validium operators to NOT censor their transactions because only the operators fully store the transactions (More on this below).

Whoever finds it lucrative to run a validium service will run it and they will be economically incentivized to run it. They could subsidize the cost with the money they make through the transactions that happen on their Validium based network.

Also, arguably we could say that many Validium services will be powered by “Law”. If I am interpreting this correctly, the Validium operators may be classified as money carriers because they are responsible for their customers funds. Since Validium transactions can be censored and stopped, maybe these validium scaling solutions will be regulated.

Lastly, it may be possible to implement a consensus network on top of Validium. By default, none of the ZK based solutions seem to need a blockchain. But in case of Validium as we saw, transactions can be censored. You could solve this through a consortium, but also they could create another blockchain that incentivizes good behavior. In fact it looks like this is where Starkware is going through their Starknet.

Let’s use Polygon as an example. As of today, Polygon provides a Proof of Stake based Plasma chain.

Since Plasma doesn’t guarantee correctness of settled transactions, they need their own consensus engine. And Polygon uses Proof of Stake. This means the Polygon network is NOT as secure as the Ethereum main chain, which is the point: It’s a tradeoff between security and scalability.

So we could say Plasma is powered by the same mechanics that power any blockchain. And it doesn’t really fit into the “rollups” discussion we are having right now because Plasma chains are separate sidechains that need their own strong enough consensus mechanism and their goal is not even to fully take advantage of the Ethereum main chain’s security (which again, is the whole point).

How hackable are they and what’s the worst case?

If a rollup chain was powered by proof of stake, and you were to lose a million dollars if you try to cheat, but if a block contained a billion dollars worth of transactions, it is worth it to do 51% attack. The attacker “ought to find it more profitable to attack than to play by the rules of the system”.

An Optimistic Rollup system can be susceptible to a 51% attack as the cost of stealing funds is unrelated to the bounty size. Further, Optimistic Rollups can be vulnerable to more attack vectors due to their game theory based security model. In contrast, a ZK-Rollup system cannot be moved to an invalid state and funds cannot be stolen, irrespective of the bounty size.

via https://help.dydx.exchange/en/articles/4797156-what-is-layer-2

Theoretically, anyone can submit a “fraud proof” (a proof that shows that there was a fraud) and roll back the transactions when there was a fraud, and this is why optimistic rollups have a so called “challenge period” before the transactions fully settle on the Ethereum main chain.

But, even this can be bypassed in the worst case scenario. Someone who has the control over the rollup system may keep grinding until the challenge period is over, and nobody will be able to stop them.

ZK Rollup cannot be “hacked” in a sense that you will never lose your funds on your main Ethereum chain through an attack on a ZK rollup, because at the end of the day the ZK proof must be correct in order for the ZKRollup block to settle.

There is no “we believe you but we’ll punish you if you’re bad”. The system never even allows a bad behavior in the first place.

One thing to note in terms of “hackability” is that the ZK proofs used are either ZK-SNARK or ZK-STARK. In case of ZK-SNARK, we need to trust that the genesis event (the “trusted setup ceremony”) is not rigged and trust that the founders throw away the keys after the setup, otherwise you will always live in fear that one of them could go evil and take your money. This is why many solutions are trying to use ZK-STARK which does not require a trusted setup, but the only thing I’m concerned about is that these approaches are very new and the general wisdom says that we need to be cautious about using cryptography that hasn’t been proven over time.

Just like ZK Rollup, Validium cannot be hacked (cannot settle fraudulent transactions on the main Ethereum chain), but because the transaction data is NOT stored on the main chain, if the Validium operator decides to mess with the transaction data it has, the users may not be able to move their funds. The users technically don’t lose their funds on the main chain, but they may be blocked from making transactions. This is not technically “hacking” and is its own category (censorship resistance) and I’ll discuss more on this below.

How censorship resistant are they?

Can transactions be censored?

Before we go in, we are talking about “censorship resistance” from the scaling solution’s point of view. Each solution may or may not be able to censor transactions to certain degree, but this doesn’t mean your transactions on Ethereum can be censored.

Let’s start from a base assumption that Ethereum itself is “censorship resistant”. Because anyone can submit transactions to the network and because miners will mine them as long as the fee checks out, transactions on Ethereum are censorship resistant.

But let’s imagine a scenario where Ethereum solely scales through L2 solutions like rollup. In this case I assume Ethereum will only be used as the final settlement layer, and 99% of the actual transactions will happen on L2. In this case we must assume that Ethereum’s security model and censorship resistance is determined not by Ethereum itself but by the L2 solutions it scales with.

For example, we can no longer assume that the things we take for granted, such as every smart contract function call taking place atomically without censorship or some uncertainty, holds true.

When it comes to censorship resistance, this is especially important. It is important that L2 solutions are censorship resistant. Otherwise we can’t really say Ethereum is censorship resistant. So let’s assess how “censorship resistant” each solution is.

Long story short, the censorship resistance aspect seems to depend on whether each solution keeps the full transaction history on the main chain or not. Just to clarify let me explain (Note that “on chain” below means “on Ethereum”):

  1. Ethereum: Transactions are executed AND stored on chain.
  2. Plasma: Transactions are NOT executed on chain, and NOT stored on chain. Only the root of the plasma chain block is stored on chain.
  3. ZK Rollup & Optimistic Rollup: Transactions are NOT executed on chain, but stored on chain.
  4. Validium: Transactions are NOT executed on chain, and NOT stored on chain. Only the proof is stored on chain.

From above, the ones that store transactions on chain (ZK Rollup and Optimistic Rollup) are the ones that are absolutely censorship resistant. This is because, even if the offchain solution tries to censor their users, the users recreate the state by replaying the offchain transactions stored on chain.

On the other hand, a solution like Validium or Plasma are not completely censorship resistant by default. In case of Plasma chains, the censorship resistance quality relies on how censorship resistant each Plasma sidechain is, which means they need to bootstrap their own censorship resistance. In case of Validium, by default Validium doesn’t need to be a blockchain so chances are, it could be run by a single or a small number of actors, so this problem is more highlighted. Here’s an example merkle tree of a Validium block:

If the d3 node is changed by the Validium operator, the owner of d1 suddenly cannot provide the merkle proof since the merkle path includes the “m” node which depends on d3. This means the owner of d1 won’t be able to prove their account ownership.

But again, this all comes down to economics. If the Validium operators find it more profitable to play by the rules, they will not cheat since there’s not much to gain from censoring their user funds. For example, if a cryptocurrency exchange runs a Validium system as their offchain scaling solution, they don’t have the incentive to censor their users. But I assume anyone running a Validium service in this configuration will be likely regulated by the government (since they can censor), and often the governments will ask them to censor criminal transactions (child trafficking, etc.) and they will comply. And there’s nothing wrong with this on its own, it’s just how they decide to do their business.

Of course, it is possible to build on top of Validium and build its own consensus mechanism for making it more censorship resistance, and that will also have to bootstrap its own censorship resistance model. This seems to be the long term roadmap of Starkware.

How Fast is the Settlement?

How long does it take to settle on the main chain (Ethereum)?

Why do settlement delay even exist? It’s simple. If it’s completely secure (mathematically secure), they can just settle immediately. if it’s not completely secure (relies on game theory and economics), they may need some longer settlement time. Here’s roughly what I’ve found so far:

  • Zk Rollup: 5 minutes
  • Optimistic Rollup, Plasma: Around 1 week
  • Bank of America: Up to 3 days

Of course, there are ways to do faster settlement on optimistic rollup by letting people create a liquidity market on top of it. But if I understand correctly, while this is simple enough for fungible assets, it’s not as simple for NFTs. Also, it would be great if Optimistic rollup solutions can find a non “market based” solution for faster settlement, because it’s a slippery slope to start relying on “the market” for everything since market can be manipulated whereas math cannot.

Are they self sustainable?

How do they make money? A system needs to be sustainable to work in the long term. And since we are talking about a solution that will scale blokchains, for a scaling solution to actually work, it needs to be sustainable. So how does each approach make money?

The first thing I looked at is whether each solution needs a blockchain:

  • Plasma: Yes. The whole concept is based on Plasma sidechains. Each has its own consensus model.
  • Optimistic rollup: There can be. Proof of Stake
  • ZK Rollup: Not needed
  • Validium: Not needed by default, but may need for censorship resistance (validium operators can censor transactions).

If I understand correctly, Validium is run by the stakeholders who want to scale transactions for their own users. It’s basically a toolkit, not a new network (not a new blockchain). So for example, Starkware the company does not have any token nor has done any ICO. They claim to plan on making money through licensing.

That said, some of their long term roadmap looks interesting as their goal seems to go further than just providing a tool. They seem to be trying to address the censorship resistance problem by creating their own “Starknet” (See step 3, “Universe”), so that sounds cool. Eventually they will probably create their own economy.

On the other hand, unlike ZK based rollups which start out as tookits but don’t need to take the form of a blockchain or need their own consensus depending on the use case, I think Optimistic rollups MUST be decentralized because blind optimism can bring inefficiencies. For example, if people figure out a way to game the system by constantly attacking despite the fact that they can be punished, there will be many rollbacks and the system may become unusable until the problem is fixed.

This can be mitigated by building their own decentralized system (decentralized sequencer), which is what Optimism is doing. So we can assume that they will create their own economy and incentive mechanism to make the system self sustainable:

Scaling solutions in the NFT space

As far as I am aware, many NFT services are implementing Polygon (Previously Matic) for scaling. As discussed, Polygon is a Plasma chain powered by Proof of Stake.

As far as I know there are It’s been adopted by:

So why did they choose Plasma? Probably because it’s easy to implement (Polygon is completely EVM compatible) and so easy to use. From my experience at the NFTHack hackathon, you can simply switch out the RPC provider URL and immediately connect to Polygon instead of Ethereum, and all smart contracts automatically work and you don’t need any rewrites.

But the potential problem is, if you store your NFT on Plasma, you can’t withdraw to the main Ethereum chain for a week. And it looks like it’s not easy to implement a liquidity market for NFTs therefore the 1 week challenge period will stay. I’m guessing people who buy NFTs on Polygon will just keep them there until it becomes super expensive.

The 1 week challenge period is the same issue for optimistic rollup. This means the NFT you store on Polygon cannot be “withdrawn” to the Ethereum main chain for a week.

While there are solutions to solve this problem by creating a liquidity market for expedited transfers, I don’t think this is (yet) possible for NFTs because the liquidity problem with NFTs is a completely different issue from fungible tokens.

While researching I’ve also come across a project called ImmutableX (https://www.immutable.com/) is getting ready to launch a dedicated ZK based scaling solution that lets you choose between ZK Rollup and Validium, so this is another interesting approach. They are powered by all the ZK tech from Starkware (https://starkware.co/). If you want full censorship resistance, you can use ZK rollup. If you want higher processing power, you may use Validium. They give you the choice through what they call “Volition”.

So what exactly are they? Is it a blockchain? a service? a framework? Here’s what they say on the website:

If you ask me, this looks like the ideal setup to me!

They don’t seem to have a token of their own and it looks like they are going to provide software as a service. My understanding is they are shooting for becoming the Infura (or Alchemy) of the NFT space. And by that I mean they seem to be building an infrastructure company where you pay to use their service like AWS. And that’s exactly what I want :)

I signed up for an invite and am looking forward to checking it out when they launch. If they actually deliver what they promise, I think a lot of people will want to use their service, since your ZKRollup transactions settle near immediately on the Ethereum main chain without any challenge period or any uncertainty.

Next, let’s look at Starkware (which powers the engine that powers ImmutableX), who came up with Validium. They don’t have anything of their own specific to the NFT space but has an interesting roadmap:

The first phase focuses on “single app rollup”, which can be run by one entity (like a company or an organization).

The second phase is where multiple apps can share a rollup to solve their liquidity and composability problem. One thing to note is that it’s still a single operator running each rollup. You can imagine one company (or a trust based consortium) running multiple applications using a shared rollup for scalability.

The third phase is where it gets interesting. They plan to decentralize the operators, so that it is no longer a single operator who runs these rollups. One immediate question that arises is, “Does this mean Starknet Universe will then compete with Ethereum?”. My guess is StarkNet, because it settles to Ethereum at the end of the day, will evolve to become an “Ephemeral Ethereum”, where you can do all things you can do on Ethereum but without the StarkNet having to worry too much about security. It only needs to worry about the security until each ZK block settles on Ethereum. Which means it won’t compete with Ethereum, but act as a sort of a “Mempool for Ethereum”, a completely separate project with its own strengths. (Again I could be totally wrong so please let me know if I’m off the mark)

Lastly, there’s zkSync from Matter Labs. zkSync is a combination of ZK Rollups and a new approach called zkPorter.

ZK Rollups we already know, so what is zkPorter? Here’s what they say:

zkPorter tackles data availability with a hybrid approach that combines the ideas of zkRollup and sharding. It can support arbitrarily many shards, each with its own data availability policy, defined by the shard’s smart contract. The choice of the shard is controlled at individual account level.

zkPorter separates the concerns of state validity and data availability. State validity — that the transition from one state to the next is always valid — is uniformly enforced by means of zero-knowledge proofs, which offer exponential scalability while inheriting the security guarantees of the underlying L1. In contrast, data availability is delegated to individual shards, which are free to experiment with different solutions. In necessariis unitas, in dubiis libertas!

If I interpret it correctly, zkPorter is like “Cosmos on Ethereum”. Basically,

  1. zkPorter is internally powered by ZK Rollups and Validium schemes.
  2. There are multiple virtual “shards” on Ethereum that take the form of smart contracts
  3. Each shard has a different security policy in terms of data availability
  4. The most secure shard uses ZK Rollup, which ensures full data availability
  5. Other shards can use the Validium approach, but each with its own Proof of Stake model. The higher the stake, the more secure it is. The operators get slashed if they fail on data availability.
  6. Users (Developers) can build their own security model by mix and matching and customizing their own staking model for each shard (Ethereum smart contract)

Basically, zkPorter lets you make your own decisions on whether to save costs on transactions but with lower data availability requirements, or to provide absolute data availability but with high costs.

For zkSync 2.0 they plan to make it much easier to choose between ZK Rollup and zkPorter. I think it is this zkPorter adoption that will help with NFT adoption because ZK Rollup alone is still capped by having to store all transactions on chain (They only solve the computational scalability problem, not strorage problem, as mentioned above).

Compared to vanilla Validium systems, I think what zkPorter is trying to do is provide a self contained guarantee system so that the users of a rollup no longer need to blindly trust that the Validium operator will act in their interest and never withhold data. By moving from trust to proof of stake, users can look at the zkPorter stake and see how much security they have for their assets. I think this would be important for NFTs because most people will prefer to use a rollup with a billion dollar stake guarantee (instead of no guarantee) when they’re moving around their $69 million NFTs.

zkSync 2.0 is another interesting approach for rollups, but hasn’t launched yet. They plan to launch in May and I look forward to learning more.

Finally, the one exciting thing to come out of NFT space is something called “Lazy minting”. Because minting a token takes gas, and gas is expensive, the lazy minting approach delays the actual minting until someone decides to purchase an NFT.

Basically before lazy minting, an NFT creator had to mint a new token and pay for gas fee for every token they minted. Since gas is expensive, this meant you couldn’t for example mint a thousand NFTs without making tons of initial investment, and that hurts creativity.

NFT marketplaces like Opensea and Rarible implement lazy minting, which is supported by implementing a variation of an ERC721 contract (The original NFT contract) that includes a method called “mintAndTransfer”.

This means you can just submit NFT creation requests to Opensea or Rarible and they will list them for you on their sites, and when someone comes and tries to buy your NFT, THAT’s when your NFT will be minted AND transferred to the buyer. This is much more affordable for the NFT creator.

One problem with this approach is that someone could theoretically “front run your NFT” by taking your IPFS hash that’s yet to be ever minted on the blockchain, and then submitting it as yours. And this was actually the problem I tried to solve for my NFTHack project. Here’s a quick video on how this problem can happen:

If you’re interested in this problem you can learn more at: https://hashchain.app

Uniswap V3 and Optimistic Rollup

I bring up Uniswap because Uniswap is currently at the center of DeFi, and many NFT projects are thinking of integrating NFTs with DeFi to make much more crazy apps, so it’s a relevant topic.

Uniswap V3 is planning to adopt optimistic rollup. I wonder how this will be implemented. I am guessing there will be a liquidity market for fast withdrawals and that should work well.

But eventually as ZK rollup becomes popular, I also think people will want an option of ZK rollup implementations as well because there’s more immediate liquidity without having to go through an overlay liquidity market for moving between the main chain and the rollup chain. Also, from Uniswap’s point of view, using ZK approaches gets rid of a lot of trust related issues and headaches.

That said, maybe Uniswap will make more money by providing the liquidity provider service so they may be incentivized to build the best Optimistic rollup based scaling solution ever.

Also as of today Optimistic rollup makes it easy to port existing Ethereum contracts so it makes sense that they are choosing Optimistic rollup for their scaling solution. Also there may be other things in the works coming from the optimistic rollup side that solves a lot of the problems in an elegant manner, so looking forward to how it goes. It’s exciting to see multiple solutions evolving in parallel.

Composability

One exciting thing we see from the DeFi movement is composability. Basically you can stack multiple mechanisms on top of one another to build complex application, like playing with Lego.

It looks like people are predicting that the future of rollups will be like a metropolitan city, that there will be multiple “districts”, such as financial district (DeFi), art district (NFT), etc. and people will mostly hang out (in terms of liquidity) in financial district for doing financial stuff, and hang out in art district (NFT).

This is especially true for optimistic rollups because of the 1 week challenge period before withdrawal. People will want to just stay in say, Uniswap district, for doing all financial stuff, and Uniswap district will gain more and more network effect and become “the financial district”. This means the market dynamics may incentivize some players to implement optimistic rollup over something like zk rollup because they want to keep more users in their district.

That said, if we really go further with our city analogy, there is no city district where you visit and can’t leave for a week. A metropolitan city is great because you can work as a financial trader in the Financial district, and visit a gallery opening in the Lower East Side later in the night.

The reason I mention this is because I am wondering how the NFT + DeFi will turn out. While I can see how a DeFi specific district will arise, people will want to also compose DeFi with NFT, and any other new blockchain based protocols that come out in the future. In this context, I am not sure how the city district analogy works out. In my view, the most ideal picture is if there is a way to compose multiple “districts”.

But what if all NFTs use ZK based rollups and DeFi use optimistic rollups? Will people need to come up with a communication method between ZK and Optimistic? Will there be a market that acts as a portal between a ZK based rollup and an optimistic rollup? Cashing out to Layer 1 doesn’t seem to be an option when it comes to composability because one of the main points of composability is to be efficient.

From what I see, this seems to be the holy grail for everyone working on the scaling solutions. They are trying to address this problem in one way or another. For example StarkNet’s approach is to build rollups that multiple apps can share, and allowing the global network of these rollups to be operated in a decentralized manner. On the other hand, zkSync — through zkPorter — has a policy where any transaction that modifies accounts in at least two different shards must be executed in zkRollup mode.

But I fear all this effort may still take us to a fragmented future where there are multiple parallel approaches unable to talk to one another. But I won’t know until I learn further about them and try them out!

So many questions. If anyone can answer these, please enlighten me :)

Conclusion

Personally my favorite approaches are the ones based on ZK Proofs (ZK rollup and Validium) because they can settle almost immediately (around 5 minutes they say on average) and there’s no room for fraud thanks to its absolute “math based” security model. There’s a tradeoff between ZK Rollup and Validium as discussed above (ZK Rollup uses much more onchain space than Validium because it has to store all transactions on chain while Validium only stores the proof and that’s it, which is why ZK Rollup is censorship resistant, but on the other hand Validium is more performant and very efficient)

Optimistic rollups, for NFTs, don’t currently have a viable solution for the 1 week waiting period before withdrawing, so I think people will want to adopt ZK based rollups for NFTs, at least in the short term. That said, as I discussed above, Uniswap is adopting optimistic rollup for their V3, and Uniswap V3 is now a non fungible system instead of fungible, so maybe there’s a room for someone to solve the liquidity problem (having to wait a week before being able to exit the optimistic rollup) taking advantage of Uniswap itself.

Also, I can see how the Plasma based approaches like Polygon may evolve in its own direction and provide useful services, not to mention that NFT marketplaces are starting to already adopt them.

That said, there really is no conclusion yet, since I’ve just started learning all this and I am not yet experienced enough to draw any conclusions. And that’s the whole point why I wrote this article, hoping that I would learn more through further discussion and feedback.

So please feel free to correct me or provide feedback. You can find me on Twitter:

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store