Hacker News new | ask | show | jobs
by riptheworld 1609 days ago
I agree that the current NFT ecosystem is a house of cards, e.g., the susceptibility of NFTs to link rot. That being said, I think the ecosystem will evolve to a having a more robust way of handling these things as it matures.

For example, rather than only storing a URL that points to the content, perhaps the token could also include a cryptographic hash of the original content? In the case of link rot, the owner could still provide evidence of ownership on the original content by proving that it hashes to the stored value.

There are probably better solutions as well (others have mentioned IPFS).

2 comments

This might have the opposite problem:

Suppose you own an NFT of your favourite monkey JPEG. At some point however, browsers drop support for the JPEG image format because it is outdated and has long since been replaced by better formats. Of course you could easily convert the ape JPEG into an ape PNG, except the hash would still only be valid for the JPEG. Suddenly, it starts getting unclear what kind of "ownership" the token really represents: Ownership of the bytes of the JPEG file? The pixels on the screen? The "concept" of an ape with that particular outfit (whatever that should mean)? or just an URL?

Maybe you could solve this partially by defining some sort of "transform" operation which is documented on-chain? Something like "If I own token X then I can call external service Y to transform the token - after which, X will be destroyed and I'll own a new, different token Z instead" (i.e. one with the hash of the PNG instead of the JPEG)

That still wouldn't solve OP's problem though as that transformation would have to happen off-chain.

There are upgradeable contracts (All NFTs are the self-executing code called smart contracts) and the admin key to cause an upgrade can be community governed, even more nuanced approaches such as some variables available to be governed.

So upgrading the image data and format could be possible. They typically use a getImage() method, as part of the NFT standards, a setImage() method could be added with the method being set to OnlyOwner, which is just a member level designation seen in other programming languages like JVMs.

In EVMs, OnlyOwner can be a collective or its own smart contract controlled by a collective.

Depending on the format and size of the image or transformation operation, the transformation could occur onchain. Nodes in a blockchain are just compute instances. I don't see how it matters if such thing occurred onchain or offchain though, as long as the output was written to the setImage method and that fixes the NFT.

This is the kind of stuff developers do everyday in other stacks, I get a feeling many developers (who are a big audience on this forum) just haven't looked at the crypto space on the development side because these conversations make little sense.

what's the point of buying sth because it's uniquely identified in the digital space if it's not even unique and can be changed at will?
As I mentioned in other threads, it is up to the consumer to be discerning, no different than anything else a consumer has to do. If they want to be part of a community to upgrade the artwork in their possession, then find those kinds of NFTs. If they don't want any ability for their art work to be upgraded, then find those kinds of NFTs.

Some people buy things based on hype.

Some people buy things based on their ability to resell it.

Some people won't be able to.

Thats how market work. Whose problem is that? Its not mine, its probably not yours, so who cares just because NFTs are involved.

> no different than anything else a consumer has to do

false.

if I buy a coffee machine and inside the box there's a brick there are a number of ways I can use to have my money back.

what you suggest is like buying the coffee machine from an unknown person who's also wearing a mask, altering their voice and doing their business in a shady parking lot picking up the box from the back of a van with no plate.

it would still be safer than what you propose.

whose problem is that? its not the seller's problem. be a seller then. if you don't want to sell plagiarized goods then don't sell plagiarized goods. there's plenty of buyers.

I don't really understand this buyer centric side of things on behalf of ...all buyers... ? are you debating a big purchase?

you have simply exchanged proof of ownership of a link with proof of ownership of an hash
Correct. But this specifically solves the problem at hand. Rather than storing an entire image, video, etc. on the blockchain, you store a concise representation of that content. The collision-resistance property of a cryptographic hash ensures that the probability of finding two differing NFTs which hash to the same value is negligible. You would include the link in the token as well, but if the link ever rots, you have some way of proving what the original link pointed to.
> you store a concise representation of that content

which is meaningless.

because cosmic rays could flip a bit during the transfer and the content would be different, hence not yours anymore.

it's this the kind of ownership you want for the future?

I surely don't.

imagine if your car was considered another car after a scratch makes it non-identical to the one you bought and you had go through the process of establishing that it's your again and again.

> The collision-resistance property of a cryptographic hash ensures that the probability of finding two differing NFTs which hash to the same value is negligible.

that's a bug in this situation.

collision resistance is good fro cryptographic hashing of content that MUST STAY identical.

ownership means I can do whatever I want to my property and still be the owner.

If I buy a painting I can spray paint the world "OK" over it and it would still be my painting.

If I am a popular author maybe now it's worth more money than before.

NFT would make something like "Fountain" of Duchamp impossible.

> you have some way of proving what the original link pointed to.

that now points to a zoophile porn video

congrats.

You are moving the goalposts. I described a mechanism that addresses link rot in the current NFT ecosystem. The hash-based method allows an owner to efficiently prove what content was associated with a rotted link with overwhelming probability. Using this basic building block, one could construct a process that allows an NFT owner to update the link stored on the blockchain.

If you are concerned with changing an NFT's content or debating philosophically about whether that should be allowed, I don't have an opinion. I don't own NFTs, nor am I convinced they will stick around. My point is that the NFT ecosystem will likely evolve to create technical solutions solving many of the problems mentioned in the article.

> You are moving the goalposts. I described a mechanism that addresses link rot in the current NFT ecosystem

it doesn't.

IPFS is already content addressable, knowing the hash doesn't solve the fact that the link is dead.

It's like having the address of a building destroyed by an hurricane.

> The hash-based method allows an owner to efficiently prove what content was associated with a rotted link with overwhelming probability

It only proves that a stream of bytes resolve to some hash using some hashing algorithm.

Whoever has on their devices the same stream of bytes can republish the same item on the chain creating a new link that is alive and sell it.

The old one is dead and the money spent to buy the content the link pointed at have been lost forever.

It's like the "All I Got Was This Lousy T-Shirt" trope

I spent money to buy a digital assets and "all I got was this lousy hash string"

> will likely evolve to create technical solutions solving many of the problems mentioned in the article.

or not.

as proved by the many problems in the cryptocurrencies space that people predicted would "likely evolve to create technical solutions" but didn't after more than 10 years and billions of dollars poured to the problem.

so why invest in something that fails to accomplish anything and will fail to do so at least for another 20-30 years?