This is a work in progress. I plan to return make edits and additions, and I welcome your input. My goal is to implement this in ActivityPub Express & Immers Space and also to submit an FEP. Also not tied to the WebCollectibles name - happy to hear alternatives
Background:
NFTs (Non-Fungible Tokens) are the concept of linking a specific token in a cryptocurrency to some off-chain item like such as a work of digital art. There has been much news and hype around the concept, but it is highly financialized, inflated by wash trading, and powered by huge transaction fees collected from creators and collectors. Furthermore, the current implementations fall into one of three broad categories with significant drawbacks:
- Large public blockchain Proof-of-Work (e.g. Ethereum) - these have severe environmental costs, producing as much CO2 as nations of millions of people
- Independent blockchain with Proof-of-Stake or other alternative consensus (e.g. Wax) - these chains are not decentralized, requiring users to place their trust in a small set verifiers they cannot select.
- Side chains (e.g. Liquid) - these are a sort of worst-of-both worlds: they still generate costly Proof-of-Work transactions as people move their tokens in and out of the side chains, and they have centralized control by a small set of verifiers.
When I listen to artists who are interested in NFTs, their interests lie in having their work recognized and appreciated, having a trail of provenance on digital goods that continues to provide credit for the original artist, and the ability to bypass the gatekeepers of the traditional art worlds. That and making money, of course, but not specifically blockchain/cryptocurrency tech.
Why it matters to the Fediverse:
These artists’ desires I’m hearing are valid, and the idea of collecting things from around the Web and across platforms is fun. In Immers Space, the AP app for 3D worlds, we introduced a rudimentary system for collecting avatars from the different instances that you visit that you can then wear on any other instance (see, e.g. https://vreign.space).
Unlike cryptocurrencies, ActivityPub and the Fediverse present a way for us to offer a distributed ledger of collectibles that is both energy efficient and fully decentralized. The tradeoff is that AP does not offer trustless global consensus, but for me that is not much of a downside because I don’t want to live in a trustless world and I don’t want WebCollectibles to become a high-stakes financial instrument.
Implementation:
This can be done without any extensions to ActivityPub, we really only need to agree on the ideal sequence of Activities and Objects.
The Building blocks are:
- Create - initial registration of a collectible by its creator
- Offer - A collectible owner offers it to another AP Actor
- Accept/Reject - response to Offer
- Add/Remove - Recipient places accepted collectible into one of their collections (or later removes it)
Important questions:
- Specifics on sequence of activities and what form the objects take
- How to create a trail connecting the sequence of activities (is it as simple as inReplyTo?)
- Verifying the history - must these be public activities for later verification, or is it an individual choice whether you want privacy or verifiability for each item
- Differentiating between giving away / trading versus sharing / cloning