NFTs became one of the most exciting, successful, and controversial web3 use cases a few years ago, almost overnight. It’s not hard to see why because everybody would like to “own a piece of the Internet.”
Imagine owning your Facebook profile and taking it elsewhere if you no longer like the platform (along with all your connections). Imagine owning music again. Imagine owning — not a .jpeg — but art that creates (and recreates) itself. Despite all these exciting things, however, the ownership part is not exactly true for most projects yet.
If you already know what we’re talking about, start building NFT projects with Cartesi and see how this can actually happen. If not, keep reading to see what we mean.
What do you own when you own an NFT? Most web3 skeptics would say you don’t really own much, and they are not too far from the truth in strictly technical terms. The simplest way to put it is that you own a deed to a reference to something that’s in someone else’s computer somewhere. Not the best kind of “ownership” to have.
The main problem with NFTs as they exist right now, is that the different parts that make them up exist separately on the Internet.
An NFT is just a generated number that gets saved next to your account number in a specific smart contract. It acts like a deed. This deed also contains a link to metadata, which is the object you think of when you think of the NFT: a picture, a song, a game character, or anything.
Link is the keyword here. The deed and the object are in two separate places, and all you really own is the deed because the object is not stored on the blockchain. That thing that’s referenced in the deed is kept somewhere else.
This is alright as long as you’re purchasing a concert ticket or a club membership. Anything that’s a bit more valuable than that gets tricky. If you own an actual deed to a house but someone else has the right to burn it down whenever they want, your ownership is limited in a very important way. The same would apply to a valuable digital object.
If we look at how most NFTs in the market today are minted, we’ll see that NFT projects and minting platforms do a great job at registering a collector’s deeds. However, when it comes to where the actual, registered objects live, oftentimes, they use a centralized web2 service like AWS that could, in fact, delete or change the object you purchased as an NFT.
Cryptographer Moxie Marlinspike explained it best in a blog post about his first impressions of web3, including an interesting example of the problem:
“Instead of storing the data on-chain, NFTs instead contain a URL that points to the data. What surprised me about the standards was that there’s no hash commitment for the data located at the URL. Looking at many of the NFTs on popular marketplaces being sold for tens, hundreds, or millions of dollars, that URL often just points to some VPS running Apache somewhere. Anyone with access to that machine, anyone who buys that domain name in the future, or anyone who compromises that machine can change the image, title, description, etc for the NFT to whatever they’d like at any time (regardless of whether or not they “own” the token). There’s nothing in the NFT spec that tells you what the image “should” be, or even allows you to confirm whether something is the “correct” image.
So, as an experiment, I made an NFT that changes based on who is looking at it, since the web server that serves the image can choose to serve different images based on the IP or User Agent of the requester…
After a few days, without warning or explanation, the NFT I made was removed from OpenSea (an NFT marketplace)...”
Having the deed to your digital object be fully decentralized is important, but we need more than that if we want to build a truly decentralized infrastructure for NFTs. You want NFTs that can’t be tampered with in any way.
To achieve this we need two things:
The first problem here has solutions that are evolving. The second is where we need help.
The Ethereum Virtual Machine is not designed to handle the kind of complex logic that’s needed to create decentralized services at the scale of web2 platforms. Neither is it designed to generate pictures, songs, or anything more than very rudimentary digital objects for that matter.
This is a problem that already limits the creativity of some interesting NFT projects like Autoglyphs and EulerBeats. They’ve managed to store both the deeds and the objects on-chain with a clever workaround. Instead of trying to save a .jpeg or .mp3 on the blockchain, they save a piece of code or an algorithm that creates an image or a song. This is known as generative art.
However, these projects are still limited by what the Ethereum Virtual Machine can render or how much code it can run well. They still run into the same problems we had when playing DOOM or creating a risk management solution on-chain.
A simple look at the Autoglyphs gallery shows that, while the art can be beautiful, its “algorithmic painters” are working with a very limited canvas. Same for the “algorithmic musicians” that would create something similar to EulerBeats.
Cartesi can help fix these problems of decentralization by allowing for more complex decentralized minting platforms. More so, the Cartesi Virtual Machine’s ability to handle complexity lets NFTs projects get more ambitious about their creations.
Again, the lack of decentralization for NFT minting is due to storage problems and an inability to handle complex programs on-chain, forcing minting services to work like web2 platforms.
Both of these issues can be solved now. Cartesi Rollups can work in tandem with decentralized storage services to ensure that the storage of the NFTs themselves is also tamper-proof. Its flexible modular design even allows developers to pick alternative data-availability solutions that are much cheaper than Ethereum.
Then, with the ability to run a virtual machine on a rollup, we’re able to build platforms whose operations are similar to web2 but with the advantage that they can be verified on-chain.
That’s exactly what the Cartesi Virtual Machine does. All of the logic and processes that web2 marketplaces have can be built on it. This lets the services that define NFT characteristics and interfaces be fully decentralized and even community-owned.
The Cartesi Virtual Machine is also a much better runtime environment to code and deploy generative art and other interesting projects (as long as the code file size is small enough to be cost-efficient when stored on-chain). Previous limitations in how complex an NFT can be are no longer a problem when we can work with the processing power and expressivity that exist in Linux.
To put this visually, if we think of processing power and expressivity as a canvas, the canvas for “algorithmic painters” on a project like Autoglyphs is the size of the black square below. Their canvas could be the size of the teal square with Cartesi.
Let’s take generative art as an example of what decentralized and complex NFTs that offer real ownership can look like.
Frmandy is an NFT minting platform and hackathon-winning project that was built using the Rust programming language. On Cartesi, it is able to create the same beautiful generative art NFTs that already exist in web3, but taken up a notch. One example is its generation of a Mandelbrot fractal.
Generating this image algorithmically, from scratch (not as a .jpeg), is a very complex problem for a computer. It requires a lot of processing power.
Cartesi makes this, and more, possible. Frmandy’s fractals can keep generating themselves. Then, the fractals that are created from a top-level fractal can be owned by somebody else.
Imagine if we translate this to other art forms, not just the Mandelbrot fractal. When we ramp up the complexity of NFTs and invent new ways of distributing digital objects that go beyond royalties on secondary sales.
The best part of this approach to NFTs is that everything is contained within the deed so you can reproduce it anywhere you like. The deed and the object are in the same place and you’re never at risk of getting rugged.
Frmandy extends a concept that, while promising, had very limited applications in web3 up until now. But this is just one example of how increased decentralization and complexity can be applied to NFTs as well as dApps that make use of them.
Other examples in the Cartesi ecosystem include proofs of concept like:
We’re also encouraging builders to take things further with projects like:
Join our newsletter to stay up to date on features and releases