This paper is available on arxiv under CC BY-NC-ND 4.0 DEED license.
Authors:
(1) Ehud Shapiro, Department of Computer Science and Applied Math, Weizmann Institute of Science, Israel and [email protected].
We describe applications of Grassroots Dissemination that support digital sovereignty by not depending on or employing any third-party resources other than the network itself, and thus provide motivation for implementing the Grassroots Dissemination protocol.
4.1 Grassroots Twitter-Like Social Networking
Here we illustrate how a Twitter-like grassroots social network can be realised on top of Grassroots Dissemination. Recall that any block (p, i, x) is uniquely identified by its creator p and index i, provided the creator is not equivocating. The Twitter-like realization employs two types of payloads, tweet(x), where x is any text string, and respond(p, i, x), which includes the text string x as a response to the p-block with index i.
With Grassroots Dissemination, an agent p will observe any tweet and any response by every agent that p follows. But, p will not observe responses to tweets of agents that it follows, if p does not follow the respondents. This behavior could be desirable, if indeed p prefers not to hear these respondents; or undesirable, if p does not know the respondents but would be interested to hear what they have to say. This can be addressed by adding a third type of payload, echo(b), where b is a block. With this construct an agent p could echo responses to its own tweets, for the benefit the agents that follow p but not the respondents. Doing so could induce an agent to enlarge the set of agents it follows, if it finds agents whose echoed responses are of interest. This completes the high-level description of how to implement serverless Twitter-like social networking with grassroots dissemination.
4.2 Grassroots WhatsApp-Like Social Networking
Here we illustrate how a WhatsApp-like grassroots social network can be realised on top of Grassroots Dissemination, using the same three payload types, tweet, respond, and echo. A group is initiated by p creating block b with a special tweet that declares the group formation and invites friends to join the group. All communications in the group are direct or indirect responses to b. While all group members are friends of p, they may not necessarily follow each other. Therefore, p echoes all direct or indirect responses to b by members of the group. This way every group member can follow the group and contribute to it, and a user-interface can make group communication look and feel like a regular messaging group. The group founder p can easily add or remove agents by echoing or ceasing to echo their responses to b. A group like this is public in that any follower of p can follow the group. If p wishes the group to be private, it can secretly share a new key-pair with all members of the group (as p knows their public key), and have all group communication be encrypted and decipherable only by group members. If a member leaves an encrypted group, p has to share a new key-pair with the remaining group members.
Another way to ensure privacy is to initiate a separate blocklace for each new group. This line of thought will be investigated in a separate paper.
4.3 Grassroots Sovereign Cryptocurrencies
Sovereign cryptocurrencies were introduced in reference [25], with an implementation by the All-to-All Dissemination protocol AD (Appendiex B). However, sovereign cryptocurrencies do not need all-to-all dissemination: It is enough that dissemination ‘follows the money’. This can be achieved by people adhering to the following conservative principle: Transact only with friends, and only hold coins created by a friend (not the sovereigns include not only people but also legal persons such as banks, corporations, municipalities and states; hence a person its bank may be ‘friends’ in this technical sense and hold each other’s coins). The key operation of sovereign cryptocurrencies is coin redemption, which provides for fungibility, equivocation-exclusion, credit-risk management, coin-trading, chain payments and arbitrage. With it, an agent p that holds a q-coin requests q to redeem this coin for another coin q holds. Making and serving this request requires bi-directional communication between p and q, which can happen by default with Grassroots Dissemination if p and q are friends. Thus, by following this principle, the Grassroots Dissemination protocol GD can provide a correct implementation of sovereign cryptocurrencies. Transacting with non-friends is also possible through ‘direct messages’ (the Send transition), but without the ability to verify that the other party is following the protocol. Proving this formally requires the entire mathematical machinery of sovereign cryptocurrencies [25] and is beyond the scope of this paper.