We participated and had a lot of fun, August 2021
In this hackathon we just won the IPFS Web3.storage pool prize…
Idea
For a general social platform to use decentralized web is a bit overwhelming for developers and might represent a barrier for many users if not done well. We want to simplify that, by building the ‘dunp protocol’ that acts as a social networking data layer, completely agnostic to the social media or content types. We also remove user acquisition friction by providing a login mechanism that allows to sign in with a simple username and password pair, without any crypto knowledge. The user stays in control of their data all times, so more power to users and interoperability between apps is now a reality.
Twitter CEO, Jack Dorsey, July 23rd 2021: “I think there is a lot of innovation above just currency to be had, especially as we think about decentralizing social media more and providing more economic incentive.”
We say: Want to decentralize your social media content? Just dunp it here! :)
Technologies
- IPFS: every instance is a js-ipfs node
- OrbitDB: takes care of the data over IPFS, each instance with same identity has the same access to user data and replicates it
- Ethereum HD wallets: each OrbitDB node has an identity derived from an Ethereum account, that can be generated by our easy login system - based on a username and password or signed by external signers like Metamask
- Any EVM based blockchain: can take care of the business model, as all data is provably signed by the owner of that account, but out of scope of this layer
- web3.storage, nft.storage, Piñata: apps can subscribe to any of the integrated IPFS+Filecoin storage providers, and have their users data replicated
- Filecoin: Used indirectly by the pinning/replication services to incentivise permanent data storage
- ENS: ENS names are the preferred way to register and resolve global profile names for all apps using the protocol
Innovations
- Users can login using username and password, and an ethereum account will be generated for them without them even knowing what a key is. Savvy users can use Metamask, or other wallet/signers in the future, but not mandatory.
- Ethereum keys/seeds/mnemonics are not saved… Ever. They are deterministically generated and used to sign a Decentralized IDentity (DID), then that identity is stored temporarily in browser to sign further user data. The user can choose to export mnemonic / keys when he so desires to improve data security.
- All user data belongs to the user, no exceptions. Apps are views over user data and incentive mechanisms applied to that data.
- All data is content addressed and id resolved by the peers, so that we can have shorter links in apps frontends.
- User data is organized in portfolios, by content type, so same content can be available to various apps that handle that type of content.
- Apps can run their resolvers, IPFS pin nodes and replicators, in order to improve network data availability, but not mandatory and they can never change or remove users data.
- Apps can choose to have their user data replicated to services like web3.storage or Piñata, to keep users data backed up and improve availability.
- dunp protocol is opensource, and provides an SDK for apps to use. This aims to facilitate the use of web3 technologies for all developers. The SDK is very developer friendly and allows integration in hours, not months.
Please check the docs repository for more details
Our final code for this hackathon is in GitHub
We had so much fun… And lack of sleep too… :)