With the rising amount of NFT metadata stored on IPFS, comes the need for new means to collaborate widely on our use of these storage capacities. Graphene is a protocol aimed at enabling such open collaboration, a necessary step towards the emergence of a free and open metaverse.
🌻 A word of context. Let's imagine the advent of an open metaverse where users move between spaces and applications, carrying assets with them (wearables, badges,…). In this prospective era, any data is essentially represented by an NFT partially stored on IPFS. Storage modalities on IPFS are therefore of paramount importance, and a one-size-fits-all strategy like "pin everything for free" is no longer acceptable. How to make the most out of Web3 networks to easily, collaboratively, securely and sustainably store these assets? Graphene aims to start addressing this challenge. ⏩ From storage predicates to storage deals. Storage providers may be filtered based on several characteristics of the service they offer: - Speed (read and write speeds, latency) - Data availability - Geographical location - Greenness (carbon footprint) - Price - etc. For a given piece of data, different users may want to store it with distinct, but potentially close, service characteristics. Instead of leaving them individually support the cost of these redundant services, Graphene is a protocol letting each of them describe their own ideal service, and automatically trying to merge them into common Filecoin storage deals, splitting costs in the process. This way, the trustless protocol continuously, transparently and autonomously translates a set of storage predicates into a set of actual storage deals. ✨ Advantages of such a protocol. The most immediate advantage of this protocol is that it enables storage costs to be divided among all users interested in the same assets. Without the need for trust between them a priori, this Web3 protocol instills the consensus necessary for their coordination. But many other use cases like the three below can be envisioned very quickly: - Provide a unified smart contract framework that could translate onto different Web3 storage solutions (Filecoin, Arweave,…). - Use data from different networks as inputs of storage smart contracts. One may for instance automatically modulate the storage profile of some NFT metadata relatively to the NFT on-chain price, to add more storage power when the value of an NFT rises. - Bring the outcome of the execution of a storage deal onto another network (e.g. run a DeFi insurance contract in case a storage deal is compromised). - Leverage transparency of the network to facilitate regulatory audits or certifications. For example, it becomes way easier to verify a customer's willingness to reduce the ecological footprint of the storage services they use, or to verify their contractual compliance with binding legal measures on the geographical location of their data. - Support cross-dataset storage policies, allowing for instance to tax the storage of popular assets to fund, in exchange, other datasets identified as being of public interest. - Improve the discoverability of some data sets. 🧢 First example around a wearable NFT. The introductory example unfolded in the accompanying video shows three actors: - Alice works in a company that designs and sells wearable NFTs. - Bob is a user of the metaverse who likes one of the caps made by Alice. - Carol and her team develops a conferencing application for the metaverse, where users can come with their avatars and wear all the wearable NFTs they own. All three are thus potentially interested in the storage of the cap NFT metadata that lies on IPFS: - Alice, as the NFT issuer, wants to ensure this asset is never lost and thus requires cheap cool replicas. - Carol, as the NFT consumer, wants all users of their conferencing application to access the asset with decent performance, thus requiring warmer replicas. - Bob, as the NFT owner, loosely meets both of these needs, willing to ensure that the asset is never lost, while also being able to access it efficiently as an individual user. In the video and with the help of our demonstrator, we show how the Graphene protocol helps expressing these wills as predicates, automatically merges them in actual storage deals and splits prices in the process. 🤝 Future of this project. 🙏 To identify if and how to pursue this idea further, we posted this short survey and sincerely thank anyone who may spare a few minutes to complete it: https://sprw.io/stt-094ee0 🙏
How it's made
To develop this project we stayed on a local environment. The Ethereum chain is mocked by Ganache and we have a local IPFS node. Both of those architecture components are virtualized in docker containers. The decentralized management of storage parameters are built in an Ethereum smart contract and deployed along with an NFT contract on the Ganache chain. When deploying an NFT on the Ganache chain the image is first uploaded to the IPFS node and the IPFS hash is used as the metadata. The interface is developed using React and React Redux.