DESO has so far created a very disruptive model to traditional social media by putting the entire social graph and content on-chain. This enables a model where all the content and social graph becomes a freely available utility that anyone can build an app on top of. Instead of having two different accounts which have the information of whom you follow on Twitter and Instagram, you can just log in with your DESO account on any app and see the same people you follow. This would lead to a Cambrian explosion in the social apps that we see in the future.
However, this approach of having all your social information publicly available on a blockchain has its limits. There are many parts of one’s social life that they’d rather not make public. For e.g. your friends list or your dating history is probably not something that you want to make publicly available for everyone to see.
We will explore an approach in which a privacy layer, called DEZ0, can be added on top of DESO to allow the segmentation of social information that a user wants to make private. DEZ0 is to DESO what ZCash is to Bitcoin.
People’s social lives are always divided into two parts: how they live in public and how they live in private. This is basically the difference between how one behaves in a public square vs how one behaves in their living room. While this distinction is being recognized in financial blockchains already, it becomes even more important on social blockchains since they contain much more information about a person.
There are many situations in which one would want to not make their social information available to the public. The nature of social information could be of two types: what content one consumes and what connections do they have. Let’s look at some examples to make it clear:
1) Content Privacy
A user might not want to reveal which political content they are watching and donating to.
A user might not want to make their religious content history public if they feel threatened.
A user might not be comfortable declaring their watch history or support of adult content.
2) Connection Privacy
If a Tinder emerges on DESO, a user would not want to reveal their swipe preference.
A user who is part of 2 DAOs (let’s say BTC maxis and Web3), which are against each other, might not want to make their affiliation with both these DAOs public.
One way to solve these privacy concerns is to maintain many pseudonymous accounts but that adds the burden of maintaining potentially 100s of private keys when maintaining one is difficult enough. Thus we need a different mechanism, which has proven to be trustable in another context.
Zero-knowledge proofs are a new class of algorithms, which have the potential to retain private information on public blockchains. In essence, ZK proofs allow proving a certain fact about a piece of information without revealing that information itself.
An easy example of this can be let’s say a users put their birthday in their DESO profile but do not want everyone to see it publicly. At the same time, if one logs in to a 13+ site using their DESO profile, the birthday field can be used just to verify if the user is above 13 without revealing their birthdate then that’s an example of zero knowledge proof.
More examples of zero knowledge proofs in the context of social applications could be:
Not revealing the social graph
If a user wants to keep their social graph (friends, relationships, following, etc) private on a blockchain, it would need a zero knowledge proof. In this case, two people who are friends with each other could verify their friendship, without revealing their entire social graph.
Not revealing creator investments/ donations
If a user is in a political minority group and they are supporting a creator who is advocating for minority rights, then the user should have the option to not reveal their support.
Not revealing content history
If a user wants to not reveal to the world what content they have consumed/ liked then they should have the option to do so.
If we look at the use cases above, we’d see that essentially what’s needed is the ability to shield any transaction happening on the DESO blockchain. This means that when a user is doing any action (like, tip, buy creator coin, etc), they should have the option to either make it publicly available tied to their key or they want to shield it so that the action cannot be traced back to their key. For e.g. if I tip a creator with diamonds in a shielded way, the money should be transferred but not tied to the person who transferred it.
This shielding of transactions can happen in two ways:
Changes made to the existing DESO protocol - This would mean that the protocol natively supports shielded transactions
A layer 1 solution - This would mean that there is a second layer, which maintains all shielded transactions, and the public transactions are added to the original DESO protocol.
1) Porting profiles from existing social media
It is difficult for DESO to bootstrap the entire social graph that has already been made on TradSo (friends/ following/ etc). However, this can be easily seeded by asking user to login with Facebook/ Twitter and add their profile info (friends/ birthdays/ etc) to the DESO blockchain.
Under the current architecture of DESO however, it’d would be quite insane for a user to reveal their entire existing facebook history publicly for anyone to see. The possibility of seeding profiles from existing social media can only take off if the existing information is kept on a private blockchain.
This act of seeding data from existing social media can be could be rewarded by giving some $DEZ0 coins on successfully logging in with Fb/ Twitter.
2) Enabling a rewarded DEZ0 login
Right now any app that asks for logging in with DESO gets your entire social history available for free. When there is a private version of DESO available, the login can have various tiers which signify what information you are revealing (like FB login). This creates a possibility for users to get rewarded by apps depending on the information that they are revealing.
For e.g.: There can be two dating apps on DESO (let’s call them DINDER and DUMBLE). DINDER requires you to reveal your entire dating history so far in order to filter low commitment users. While DUMBLE does not need to know your past, it matches you just based on your public history. Since DINDER is asking for more information than DUMBLE, it can choose to give $DINDER coins to anyone who reveals their private dating history.
Thus, we have discussed that while a public blockchain with open content is a great idea for certain applications, there still needs to be a privacy layer added to it in order to compete with TradSo. We believe that this would finally give users a choice over their social media behavior. It enables a complete spectrum of social media use cases ranging from complete privacy to getting paid to reveal one’s information.
