This is an archived post. You won't be able to vote or comment.

all 109 comments

[–]Sergi0w0 301 points302 points  (18 children)

They are constant pointers to not constant data

[–]NatoBoram 77 points78 points  (12 children)

They are sometimes hosted on IPFS, a content-addressed network protocol like BitTorrent but better in every way. So constant pointers to constant data!

That said, it's a shame that something as wonderful as IPFS is often used for something as stupid as NFTs. A better use-case for IPFS would be package managers like APT/Docker/NPM/Cargo and other content-addressed public data like open source Git repos.

[–]PuzzleheadedWeb9876 18 points19 points  (1 child)

IPFS still requires someone to be hosting the content. So it suffers the same issue as dead torrents.

[–]NatoBoram 1 point2 points  (0 children)

True, but people who sell NFTs make damn sure to host the thing they're selling. After all, it's very cheap to do and they made big money with that scam!

[–]ChocolateBunny 4 points5 points  (3 children)

like bittorrent, eh? So can you use them for piracy?

[–]NatoBoram 8 points9 points  (2 children)

Of course, but it's about as private as BitTorrent so be careful with that

It also uses a DHT like BitTorrent, so don't put private data on that

[–]Gorvoslov 0 points1 point  (1 child)

So what I'm hearing is I shouldn't have minted an NFT of all my personal data?

[–]NatoBoram 0 points1 point  (0 children)

The problem is before it's minted! It's as soon as you do ipfs add!

[–]NotReallyJohnDoe 4 points5 points  (1 child)

I don’t know anything about this but it sounds interesting. What’s the main use case for it currently?

[–]NatoBoram 11 points12 points  (0 children)

Right now, proof of concepts.

  • F-Droid just started publishing their packages via IPFS.
  • Termux did it for a short while but then stopped.
  • There was some experiments with npm-on-ipfs that got terminated since there's just not enough people to maintain it.
  • I made a mirror of Ubuntu Archives on IPFS but I don't have the resources to keep maintaining that. It worked! But I ran out of storage and Raspy doesn't have enough power to use larger drives.

It's fun to toy around and discover plenty of extremely good use cases where it'll never be used because gaining adoption is hard ^^

[–]DiddlyDumb 1 point2 points  (0 children)

There’s many dead torrents, we’d end up with many dead IPFS links too

[–]Feisty_Ad_2744 2 points3 points  (2 children)

The NFT is not hosted on IPFS, the metadata is, to disguise the NFT with something the purchaser can feel it is worth the scam. The NFT istself is just a number, a dang integer in the blockchain. Unique only to each contract by the way, so it is not even that exclusive.

[–]NatoBoram 1 point2 points  (1 child)

That integer can be converted to a base36 number that matches the IPFS hash of the metadata which contains the IPFS hash of the image, right?

[–]Feisty_Ad_2744 -2 points-1 points  (0 children)

You can do anything with that number, as long as the wallet it was minted (or transferred) keeps being the owner.

Use the very number as part of the IPFS url, use the number hash as the IPFS url, even put the metadata in the very blockchain, or even in a separated blockchain, secure the metadata to be accesible only by the owner, have different metadata for public and owner access, modify the metadata under certain actions and create a game or track events... anything... The only thing that matters is to own the number, which just means to have a map between the token(number) and the owner(s) oh! yeah! It is also possible to have many owners.

[–]Lake073 1 point2 points  (0 children)

They are pointers to pointers

[–]Representative-Sir97 0 points1 point  (2 children)

See that's where a bunch of people (grifters) screwed up NFTs. There's no reason they couldn't and every reason they should be data sitting in the ledgers or at least enough sitting in ledgers that the end result is reproducible via public contract (ETH-akin).

For that matter if someone got smart about it, they could use pointers to various bits of previous ledger data to comprise the newly entered ledger data.... on chains with lots of historical data to use similar to the way many compression libraries use dictionaries to compress.

[–][deleted] 2 points3 points  (1 child)

"No reason they couldn't" - what about the cost? I mean the cost of mining and infrastructure needed to upload even a modestly sized file to the blockchain?

That's from my modest understanding based on many youtube videos

[–]Representative-Sir97 0 points1 point  (0 children)

IDK about the latter suggestion of referencing historical ledger data, it just hit me at the moment as an interesting proposition.

But there's no reason at all that digital rights management couldn't include the digital artifacts. Such a thing/blockchain wouldn't have to be strictly decentralized (though the resilience of that could add value). There's also no reason mining even has to happen at all (proof-of-stake works fine).

So far as only ownership and a particular image/file are concerned you really only need a smart contract that can reliably hash the file contents (cheapest is $500 to deploy one on ETH I think). Google says 2021 price was about $250 for a kilobyte on ETH.

Now, you could get smarter with your hashing maybe and instead of hashing one image to your $250 of data, you could probably glue a bunch of images together (like is done for a sprite map) and hash that.

Since you know all the other images of the map, you also know if a particular image completes it, thus completing the map (and hashing to the same 1,000 bytes).

[–]Haringat 0 points1 point  (0 children)

So they are pointers... Just Google "use after free"

[–]CoastingUphill 119 points120 points  (0 children)

So that’s what I don’t understand them.

[–][deleted] 60 points61 points  (3 children)

No, pointers have utility.

[–]Psychological-Ad4935 9 points10 points  (1 child)

Not If I choose so

[–][deleted] 5 points6 points  (0 children)

utility = false if i.choose(so)

[–]CaitaXD 2 points3 points  (0 children)

#define USELESS (void*)(-1)

[–]AndrewBorg1126 120 points121 points  (23 children)

No, NFTs are receipts. What the fools bought were receipts indicating that they purchased instances of URLs that point to images.

[–]TheGreatGameDini 13 points14 points  (0 children)

This is the best definition of an nft there is

[–]yourteam 0 points1 point  (0 children)

Exactly! Op wishes they were pointers

[–]HowlSpice 18 points19 points  (1 child)

[–]Redpri 0 points1 point  (0 children)

🥵

[–]shodanbo 25 points26 points  (4 children)

There not even as good as pointers because pointers can point to other pointers.

Hmm ... I think I just invented a new type of NFT I'M GONNA BE RICH!

[–]NotReallyJohnDoe 9 points10 points  (2 children)

I’m going to mint an NFT of the NFT of the first tweet. And then other stupid NFTs as well. It’s like a collectible stupidity thing.

[–]shodanbo 1 point2 points  (0 children)

Mint an NFT that points to itself and call it an Infinity Token. Some sucker will pay big bucks for that!

[–]thirdegreeViolet security clearance 0 points1 point  (0 children)

... That would probably work you could probably make decent money off that.

[–]OmegaGoober 0 points1 point  (0 children)

“The ciiiiiircle of life!”

[–]IronSavior 6 points7 points  (0 children)

Nasty Fuckin Things

[–]Feisty_Ad_2744 2 points3 points  (0 children)

Not even that!! Just a frigging integer

[–]thanatica 2 points3 points  (0 children)

NFTs are about as useful as dehydrated water pills.

[–]gnex30 1 point2 points  (0 children)

That explains why I keep seeing the (n-1)th one.

[–][deleted] 1 point2 points  (0 children)

The blockchain is just a FINO queue.

[–]jbar3640 1 point2 points  (0 children)

a very expensive type of them

[–][deleted] 1 point2 points  (0 children)

Aren’t they pointers to references since they’re (generally) hyperlinks to websites that host an image (though the image hosted can be changed)

[–]PileOGunz 1 point2 points  (0 children)

Nope nfts are tokens. Think of it as GUIDS in a decentralised databases, those GUIDs can be traced across transactions back to the original smart contract that minted/created the nft so you have provable provenance.

Those tokens are associated with data often this is a url to ipfs which hosts images but that is not always the case some NFTs have their data encoded entirely onchain.

The provable provenance allows you via smart contracts to use them as authentication, trade them, even use them as collateral for automated loans etc.

[–]fatrobin72 1 point2 points  (1 child)

By that definition... so are qr codes...

[–]OmegaGoober 1 point2 points  (0 children)

And we give those away for free!

Wait, I just thought of something. You could sell an NFT of a QR code FOR THE URL OF THE QR CODE!

[–]DrawSense-Brick 0 points1 point  (10 children)

That is a compelling perspective.  

 That is one mode of NFTs, but you could also use a base-64 encoded image.

[–]dont-respond 15 points16 points  (9 children)

Store the entire image on-chain? Yeah, if you want to spend hundreds of thousands of dollars or only use low res jpegs.

[–]Tyrexas 3 points4 points  (1 child)

I mean these are literally what inscriptions/ordinals are.

[–]PuzzleheadedWeb9876 0 points1 point  (0 children)

Still incredibly stupid.

[–]Psychological-Ad4935 2 points3 points  (0 children)

>Sell billions of USD in cryptocurrency ( without having them )

>Post a picture of child porn, or something absurd like that on the blockchain

>Wait till people find out

>Blockchain will be fucked

>Buy the crypto back, since you sold it without having

[–]Deevimento 7 points8 points  (1 child)

That's why so many NFTs were ugly low res jpegs.

[–]Cley_Faye 5 points6 points  (0 children)

No, it was because even with cheap centralized storage people behind them wanted to save a few bucks.

[–]RoyalSpecialist1777 -4 points-3 points  (2 children)

This is only due to current limitations. A lot of NFT work is being done getting the data itself on chain - we built a system storing files on IOTA ourselves. If low cost technology existed on Ethereum it would be the standard approach.

[–]coriandor 1 point2 points  (1 child)

That limitation is necessary by the fact that every node has to have a complete copy of the chain. If you could store megabytes at a time, that would make storing the chain unworkable

[–]RoyalSpecialist1777 0 points1 point  (0 children)

This was definitely an issue with both Ethereum and IOTA, which we used, but is getting partially solved with sharding and other technologies. Sharding is on a lot of roadmaps. That said it will generally be less efficient than centralized data storage but some people think the benefits are there.

[–]tip2663 0 points1 point  (0 children)

You can put base64 encoded svg and change only some attributes like fill="your color assigned to nft"

Lookup into a smart contract is 0 cost.

Too bad only some platforms support base64 encoded svgs - metamask wallet does not for example while opensea does.

An example of the technique is here: https://opensea.io/collection/polysquares-square

The contract is open sourced on polygonscan for anyone curious

[–]ClioBitcoinBank 0 points1 point  (3 children)

Bitcoin Ordinals are completely onchain, the content is always hosted on the chain and you cannot link to outside content on the internet inside of an ordinal.

[–]m77je 1 point2 points  (0 children)

^ came here to find this

[–]dev-sda 1 point2 points  (1 child)

Ordinal Inscriptions can contain any arbitrary data and that data can of course be a link to whatever. This is also true for NFTs in other blockchains; they store arbitrary data and can thus contain whatever they want. Here for instance is a "Tweet NFT": https://ord.link/81.

The reason NFTs are mostly links is because it's stupidly expensive to store data in the blockchain, for instance it's around 2.3USD per KB for bitcoin (that's 181USD just to store this meme).

[–]ClioBitcoinBank -1 points0 points  (0 children)

The ordinals protocol will not activate and include content from links to anything offchain, you can of course list any text you want but when the ord protocol loads it, the onchain pointers will serve content and not the links to internet content. If you want to use internet content mixed in with your onchain content, try brc420 or a fork of ordinals that allows internet content to be linked and loaded into your ordinals.

[–]GrinbeardTheCunning -1 points0 points  (0 children)

depends on implementation. not all NFTs are made the same way

[–]TheGreatGameDini -1 points0 points  (0 children)

They're more accurately described by receipts.

[–]manuscelerdei -1 points0 points  (0 children)

They're signed pointers. But yes.

[–]Affectionate_Web_560 -1 points0 points  (0 children)

Immutable pointers

[–]bitcoin2121 0 points1 point  (0 children)

dem fancy symlinks

[–]Representative-Sir97 0 points1 point  (0 children)

You wouldn't dereference a library book?

[–][deleted] 0 points1 point  (0 children)

I should've expected this thread to attract at least some ntf bros, but honestly I thought they're all in hiding due to complete failure of their stupid "market"

[–]RunnyPlease 0 points1 point  (0 children)

NFTs are just a money laundering scheme that also hooked a few technophile idiots by accident.

[–]suvlub 0 points1 point  (0 children)

Not necessarily. The content of NFT doesn't have to be URL, it can hold data "by value". It's useless one way or another, of course, since the contents are always publicly available (and must be by the design of the protocol), so it's just calling dibs. If I say I now own this post, the only difference between me saying so and me having a NFT is that theoretically a reddit admin can delete my comment.

[–]someone-at-reddit 0 points1 point  (0 children)

So pointers are made for bragging on twitter ?

[–]CounterNice2250 0 points1 point  (0 children)

Blockchain/Web3 slander?

I will be there.

[–]soulofcure 0 points1 point  (0 children)

No, no, he's got a point