We can say that NFT consists of 3 components: Blockchain Entry + Metadata + Media. We figured out the record in the blockchain, but where is the rest?
Media and data about these media in most of the currently existing tokens are not stored on the blockchain. It is very expensive to store large amounts of data on the Ehereum blockchain.
Even if you just want to store the name and, for example, the vector of characteristics of your NFT sword in the blockchain, it will cost you an additional 20-30 dollars at the time of the release of this sword. And every change in its characteristics (if you improve it, for example), will also need to be made to the blockchain, and, therefore, pay for gas. And storage of large media is not only expensive, but also inconvenient.
Therefore, the blockchain usually stores only the address (URI), which can be used to find information about the token (metadata) and media.
Because of this situation, the token itself and the media are not connected with each other.
The token is stored on the blockchain, while the metadata and media are somewhere else.
In the worst case, if the metadata and media are stored in a less secure location, it threatens to be unavailable. Yes, you will have a token, and it can still be of value, for example, work as a pass to a certain owner’s club.
Still, it will be impossible to prove that this particular token was associated with a specific media. Or the media will be changed. This can easily happen if the metadata and the media itself are served from the servers of the creators of the token.
In this case, you just have to trust the company or the person who created or serves this token. But even if we admit the crystal decency of these subjects, there is still force majeure. In general, we again face all the problems of centralized services - reliability, trust, etc.
I believe that ZKSwap will provide all the necessary conditions for trading, storing and creating NFTs.