This is a fascinating and absolutely brilliant article that explains so many things in very clever and intelligible ways.
Here are two things I'd like further clarification on:
1/ The article explains that NFTs are just pointers to some url and that what resides at the url can change at any time, with no control from the NFT as the standard doesn't involve a hash which would at least help verify that the content hasn't been changed. (A hash would not prevent the content to be changed but it would show it has been).
The article says "NFTs generally do not store that data on-chain. For most NFTs of most images, that would be much too expensive". Can someone elaborate on this? Why would it be too expensive to store the art on the blockchain instead of a pointer? What amounts are we talking about, and how do they correlate to the number of bytes stored?
In the case of generative art that consists of a few lines of JavaScript for example, is it different? Could it then be stored directly on the blockchain?
2/ A very surprising fact is that centralized intermediaries can indeed decide and change what's on the blockchain, with no challenge from the users. Here's the key paragraph:
> All this means that if your NFT is removed from OpenSea, it also disappears from your wallet. It doesn’t functionally matter that my NFT is indelibly on the blockchain somewhere, because the wallet (and increasingly everything else in the ecosystem) is just using the OpenSea API to display NFTs, which began returning 304 No Content for the query of NFTs owned by my address!
But why is that? Why can't we have independent servers that actually read the blockchain directly without using OpenSea's APIs? Is it just a matter of convenience? Is it because it would be too complex and expensive and therefore it's simpler to just use the APIs? Or is it technically infeasible, for some reason?*
> Why would it be too expensive to store the art on the blockchain instead of a pointer?
Remember that "on the blockchain" means that everybody who keeps a copy of the chain needs to store it. Thus blockchains have a huge motivation to keep that small. A chain which includes lots of data would have many nodes exclude that data from storage - functionally pretty much the same then as storing hashes pointing elsewhere. (or if it forced nodes to keep it somehow, it would have fewer full nodes and/or higher costs to compensate)
> But why is that?
Because those particular implementations are badly done (and the success of Opensea shows that many people (or at least people wielding lots of money) participating don't care about this kind of detail, or at least don't consider it a dealbreaker). Using some kind of API is useful of course to implement, but going through the platform again is not very decentralized...
Here are two things I'd like further clarification on:
1/ The article explains that NFTs are just pointers to some url and that what resides at the url can change at any time, with no control from the NFT as the standard doesn't involve a hash which would at least help verify that the content hasn't been changed. (A hash would not prevent the content to be changed but it would show it has been).
The article says "NFTs generally do not store that data on-chain. For most NFTs of most images, that would be much too expensive". Can someone elaborate on this? Why would it be too expensive to store the art on the blockchain instead of a pointer? What amounts are we talking about, and how do they correlate to the number of bytes stored?
In the case of generative art that consists of a few lines of JavaScript for example, is it different? Could it then be stored directly on the blockchain?
2/ A very surprising fact is that centralized intermediaries can indeed decide and change what's on the blockchain, with no challenge from the users. Here's the key paragraph:
> All this means that if your NFT is removed from OpenSea, it also disappears from your wallet. It doesn’t functionally matter that my NFT is indelibly on the blockchain somewhere, because the wallet (and increasingly everything else in the ecosystem) is just using the OpenSea API to display NFTs, which began returning 304 No Content for the query of NFTs owned by my address!
But why is that? Why can't we have independent servers that actually read the blockchain directly without using OpenSea's APIs? Is it just a matter of convenience? Is it because it would be too complex and expensive and therefore it's simpler to just use the APIs? Or is it technically infeasible, for some reason?*