as always, moxie’s words are causing a lot of people to re-think their assumptions

i have a lot to say about this, and may continue to expand my thoughts here over the coming days

TL;DR: ipfs users can breath a sigh of relief

for the back half of 2021 nft.storage has been looking at nft chain data

we had hoped to find lots of ipfs uri’s being used for metadata and assets. while we found a lot of ipfs usage, we were disappointed to see very few ipfs uris. most users seemed to be using ipfs gateway uri’s (http urls)

then, a few months later, i realized that’s actually fine

<aside> 📖 if you wanna go deep on ipfs addressing check this out

</aside>

conceptually, you should think of ipfs as having two parts:

this is a little hard to understand at first, because when you’re likely coming from http where these two things are solved together, but ipfs is a very decomposable protocol stack so these things are actually quite separate

the addresses in ipfs use CIDs (content identifiers), which is a hash based identifier that doesn’t contain any transport information. this means it’s immutable and securely links the onchain data to the offchain data in ipfs without any centralization

the sometimes very cool but also sometimes very frustrating thing about link addressing is that there’s a viral component to whatever you use. use a centralized identifier and you’re centralized, a decentralized identifier and you’re decentralized, right?

you might think that, if you don’t use an ipfs uri, if you instead use a “centralized” http uri, you’re not going to be decentralized

that was how i had been thinking about it, but i was wrong, in practice it’s a rather solvable problem because, as long as we can find a content address we can patch the protocol

CIDs are viral this way

the transport protocol of ipfs is “any means you muster to get the data for a CID”

even when ipfs reads data from its local blockstore on disc, that’s an ipfs transport

the ipfs protocol stack is very modular this way, we may have even spent too much time thinking about problems like this 😁

that’s why ipfs gateways are so powerful, to ipfs http is just another transport. it has some annoying limitations, but so do all transports