Skip to content

Instantly share code, notes, and snippets.

@lucasgonze
Last active January 26, 2022 22:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lucasgonze/bd8fea4228b6de16766f0e1286ec7045 to your computer and use it in GitHub Desktop.
Save lucasgonze/bd8fea4228b6de16766f0e1286ec7045 to your computer and use it in GitHub Desktop.
Mission Statement for NFT Infrastructure

Low-hanging fruit for NFTs as a whole is fixing the issues Jonty pointed out in his epic March 17, 2021, tweet thread (https://twitter.com/jonty/status/1372163423446917122). These issues are not new features or use cases, but are blockers for new features. Fixing these issues will increase trust in NFTs and help grow sales.

Quote:

The NFT token you bought either points to a URL on the internet, or an IPFS hash. In most circumstances it references an IPFS gateway on the internet run by the startup you bought the NFT from. Oh, and that URL is not the media. That URL is a JSON metadata file

Principles:

  • NFTs should be durable
    • Their lifetime must not be limited to the company managing the sale
    • They must not change after purchase, because then the changer can invalidate the contract. Portions that are dynamic must be cleanly marked and communicated. The terms of the sale must restrict the seller from modifying any other facet.
  • NFTs should be complete
    • A JSON file is not sufficient except as a pointer. It is not the object owned.
    • The media must be referenced in the object transacted
    • The purchaser must have the asset hashes in hand after the sale.
  • IPFS transience should be accounted for
    • There should be a trust ensuring that the IPFS hosting continues past the lifetime of the seller. (Privately owned graveyards have this property!) For example, metadata might be in a blockchain shared and supported by all vendors. There might be a non-profit charted with ensuring the continued availability of metadata and assets.
    • Metadata necessary to resolve the item must be cacheable, with well-known semantics. There must be an "infinite" cache timeout for facets of the item necessary to bootstrap to the point of viability.
@lucasgonze
Copy link
Author

lucasgonze commented Jan 11, 2022

These practical ideas by suzaha (at https://mirror.xyz/suzuha.eth/vb5E5lhzmPTcpxOJcz6Q211TDgSvoFwDLA6JSM1V37Q) should turn into todo items:

First, we should have better transparency tools so that users know the metadata contents of the NFTs that they are buying or minting. Platforms like OpenSea and wallets like Rainbow and Metamask should give visibility into the metadata of these NFTs, and there should be a standard way to verify if a JPEG NFT actually contains a hash of its JPEG (whether that hash is an IPFS link, a Skynet link, or something else).

Second, we should educate users and developers on the importance of having some content-addressed hash in their metadata, if the NFT is intended to be an image of some kind.

Third, wallet software should be able to verify JPEG checksums in NFTs, and throw an error if the data returned by the data availability provider doesn’t match. The checksums themselves will be protected by the integrity protection granted by the light client.

Fourth, we should use cryptoeconomically-incentivized data availability providers. IPFS is a start, but it doesn’t actually provide cryptoeconomic data availability: it relies on pinning providers to optimistically pin data. Skynet and Arweave on the other hand use a strong cryptoeconomic game to incentivize data availability, use a similar content-addressing system as IPFS, and work today.

There could be interesting standards work here for specifying a specific “ERC721-JPEG" format which better supports this type of non-malleable NFT image encoding.

@lucasgonze
Copy link
Author

lucasgonze commented Jan 26, 2022

Practical ideas by Colm MacCárthaigh:
https://twitter.com/colmmacc/status/1486025976819552263

Authenticate or bind the actual content (like an art-work). A trivial hash would be enough!

For NFTs that do use on-chain storage or content-addressing should make an effort at preventing copying. Cryptographically signed back-references would solve the "duplicate pointers" problem, and while perceptual hashing isn't perfect but it could really help here.

Imagine an IPFS where perceptual hashes are a content-addresses, and new hashes can be added over time (as new perceptual fingerprinting techniques evolve) ... with fully authenticated ledgers of "here's the tokens that can point at me",

@lucasgonze
Copy link
Author

Relevant project: https://nft-dao.org/projects/?fid=149#/fund-4/

Problem statement:

NFT use cases have varied metadata needs and schemas. We lack standards for alike NFTs to avoid complex, fragile systems & chaos at scale.
Describe your solution to the problem

We'll engage industry experts to identify or define standards, work with IOG and industry consortiums to document NFT metadata standards.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment