Digital Social Contracts: A Foundation for an Egalitarian and Just Digital Society? Luca Cardelli1 , Liav Orgad2 , Gal Shahaf3 , Ehud Shapiro3 , and Nimrod Talmon4 1 University of Oxford luca.a.cardelli@gmail.com 2 European University Institute liav.orgad@eui.eu 3 Weizmann Institute {gal.shahaf, ehud.shapiro}@weizmann.ac.il 4 Ben-Gurion University talmonn@bgu.ac.il Abstract. Almost two centuries ago Pierre-Joseph Proudhon proposed social contracts – voluntary agreements among free people – as a foun- dation from which an egalitarian and just society can emerge. A digital social contract (DSC) is the novel incarnation of this concept for the digital age: a voluntary agreement between people that is specified, un- dertaken, and fulfilled in the digital realm. It embodies the notion of “code-is-law” in its purest form, in that a DSC is a program – code in a social contracts programming language, which specifies the digital actions parties to the social contract may take; and the parties to the contract are entrusted, equally, with the task of ensuring that each party abides by the contract. Parties to a social contract are identified via their public keys, and the one and only type of action a party to a DSC may take is a “digital speech act” – signing an utterance with her private key and sending it to the other parties to the contract. We present a formal definition of a DSC as agents that communicate asynchronously via digital speech acts, where the output of each agent is the input of all the other agents. We outline an abstract design for a social contracts programming language and hint on their applicability to social networks, sharing-economy, egalitarian currency networks, and democratic commu- nity governance. Keywords: Democratic Governance · Programming Language Design. 1 Introduction Over the last three decades, the Internet has mushroomed from 0 to 4.6 billion active “users”, 60 per cent of the world population (and more than 90 per cent in the developed world), the fastest diffusion in human history. But what kind of “society” has it created? The digital realm includes a few powerful entities, who ? Full version available on arXiv [1]. Copyright c 2020 for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). 2 L. Cardelli et al. control the entire space, and billions of data subjects, as termed by the EU’s Gen- eral Data Protection Regulation (GDPR), who have almost no rights and cannot vote, be consulted, or influence decision-making. They have no due process (e.g., in censorship, account blocking, or privacy violation) and are not the owners of their data. The structure of the digital space remains “feudal” in nature—people are not even perceived as digital “citizens” but as “users”—and it is not based on the ideals on which citizenship in democracies is grounded: liberty, equal- ity, and popular sovereignty. The digital space is further rampant with sybils (fake/duplicate accounts) and bots, making it a hostile environment and unten- able for democratic governance. To a large extent, digital technology is the great unequalizer in today’s world, making a few digital “barons” rich and powerful by profiting from the multitudes performing digital labour without compensa- tion. Like feudal lords of yore, the digital barons set their platform’s rules of conduct (legislative), interpretation (judicial), and implementation (executive), and violate the dictum “no taxation without representation”. New technologies do not support the ideals of democracy. Rather, the design of the digital world presents a dystopian future, with the global reach of surveillance capitalism [19] robbing citizens of both power and wealth. The structure of the digital world resembles the “state of nature” (i.e., a social disorder). To establish a self-governed, egalitarian, and just society in the digital world, we advocate the development of DSCs to govern digital human behavior. A DSC is the digital counterpart of social contract theories, as envisioned centuries ago by the founding philosophers of the Enlightenment – Thomas Hobbes, John Locke, Jean-Jacques Rousseau, and Pierre-Joseph Proudhon – and more recent thinkers, such as John Rawls [11, 14, 10, 6, 5]. Social contract theories are the cornerstone of modern democracies (they explain the conditions under which people rationally agree to submit their rights to a legitimate authority in return for collective benefits, such as protection, freedom, or justice) yet, thus far, have remained merely an abstract ideal, based on a hypothetical narrative and the presupposition of tacit, rather than explicit, consent [13]. A DSC offers, for the first time in history, a conceptual model to translate the social contract from a hypothetical theory into a political reality, by utilizing technology in the service of the most important ideas of the Enlightenment. In short, a DSC is a voluntary agreement between individuals, specified, undertaken, and fulfilled in the digital realm. It allows for conditions to reach the social contract to be programmed by generating equal access to information. It further enables the programming of the method of agreement by implementing a “one person, one vote” system, and provides the opportunity to check contractual outcomes in ways that comply with requirements of fairness, e.g., by limiting unequal distributional outcomes. We aim for DSCs that are equal (in sharing power), just (in allocating resources), and self-governed (among the participating members ). Hence, the equal shar- ing of power would require mitigating sybils (fake and duplicate identities) and launching digital currencies where distributed and egalitarian coin minting pro- vides a form of Universal Basic Income [18] to members. Digital Social Contracts 3 On the technological design, DSCs are programs for a distributed, locally- replicated, asynchronous blockchain architecture. DSCs embody the notion of “code-is-law” in that they are a code in a social-contract programming language, which specifies the digital actions parties may take and the terms. Unlike present digital platforms, this code is not inflicted on the user by a monopolistic digi- tal entity to its financial benefit; rather, people who trust each other enter into a code-regulated relationship voluntarily. DSCs allow for cooperative behavior because they disallow faulty, non-cooperative actions; a party can behave only according to the contract. Agents are expected to employ genuine identifiers and function as both actors and validators. An agent may participate simultaneously in multiple social contracts; similarly, each contract may have a different set of agents as parties; the result is a hypergraph with agents as vertices and contracts as hyperedges. Signed indexed transactions (“digital speech acts”), specified and carried out according to a contract, are replicated only among parties to a con- tract, who ratify them, and are synchronized independently by each agent. A transaction carried out is finalized when ratified by an appropriate supermajor- ity of the parties to the contract. A party to a contract is typically an agent who embodies a natural person via her genuine identifier, but, if deterministic, could also be a synthetic agent (aka “legal person”), which functions algorithmically, very similar to a “smart contract” of standard blockchains [12]. In 2017, Mark Zuckerberg published a vision on how to turn Facebook from a social network to a “Global Community” governing the planet in most aspects of life, where every user can vote on “global problems that span national bound- aries” and “participate in collective decision-making” [20]. According to Zucker- berg, “Facebook can explore examples of how community governance might work at scale” yet, in his global community, people have no rights and bear no respon- sibilities; they are a means to make profit for Facebook’s stakeholders. Zucker- berg’s community turns the problem on its head – Facebook is presented as the solution, rather than the problem. Our starting point is radically different than Facebook and similar-minded companies in two aspects: 1) vision: it starts from the premise that there can and should be a digital public life, complementary to the traditional public life in the physical world, by which political communities govern their life; 2) technology: The only technology that provides sovereignty to its community of users is blockchain. Nobody can unplug Bitcoin or Ethereum; both will keep running as long as someone somewhere keeps running their pro- tocols. Alas, current blockchain technologies are environmentally harmful and plutocratic – they are neither egalitarian nor just as sovereignty is shared not equally but according to one’s wealth, i.e., one’s ability to prove work or stake. We aim to offer an alternative. In summary, DSCs are: Conceptually, a volun- tary agreement among individuals, specified, undertaken, and fulfilled in the dig- ital realm; Mathematically, an abstract model of computation – a transition system specifying concurrent, non-deterministic asynchronous agents engaged in digital speech acts; Computationally, a program in a Social-Contracts Pro- gramming Language with which social contracts among computational agents are easy to express, comprehend and debug; Technologically, a programmable, 4 L. Cardelli et al. distributed, locally-replicated, asynchronous blockchain architecture, operating on mobile phones, tagged by the genuine identifiers of their owners. Two key concepts are employed in DSCs: (1) Digital Speech Acts: Each party to a DSC is equipped with a key pair – a public key and a private key (PKI), with which they can digitally sign text strings and verify each other’s signatures. All that a computational agent can do, as a party to a DSC, is per- form and perceive digital speech acts, namely sign a digital utterance and send it to the other agents that are parties to the contract, or receive signed digital utterances from these agents. (2) The Person as an Oracle: Computational agents in a DSC face nondeterministic choices: Which room to book, when and where? How much to pay and to whom? How to vote on a proposal to accept a new member to the contract? Computational agents have no volition or free will and hence cannot make such choices on their own. Therefore, nondeterministic choices in the social contract code are interpreted as Oracle calls, where the human operating the computational agent serves as the Oracle. In other words, nondeterministic choices in the code of an agent specify the interactions be- tween the “software” and the “user”, namely between the computational agent and the person operating it: When faced with a nondeterministic choice, the computational agent consults its human operator as to which choice to make. Related Work The concepts and design presented here are reminiscent of the notions of blockchains [17], smart contracts [2], and their programming lan- guages [3]. Hand-in-hand with these we are working on egalitarian currency networks [16], an egalitarian and just alternative to existing plutocratic cryp- tocurrencies such as Bitcoin [7] and Ethereum [3]. A fundamental tenet of our design is that social contracts are made between people who know and trust each other, directly or indirectly via other people that they know and trust. This is in stark contrast to the design of cryptocurren- cies and their associated smart contracts, which are made between anonymous and trustless accounts. A challenge cryptocurrencies address is how to achieve consensus in the absence of trust, and their solution is based on proof-of-work [4] or, more recently, proof-of-stake [8] protocols. In contrast, social contracts are between known and trustworthy individuals, each expected to posses a genuine (unique and singular) identifier [15] (see therein discussion on how this can be ensured). Hence, a different approach can be taken. In our approach, the in- tegrity of the ledger of actions taken by the parties to the social contract is preserved internally, among the parties to the agreement, not between external anonymous “miners”, as in cryptocurrencies. This gives rise to a much simpler approach to fault tolerance, as discussed in the companion paper [9]. 2 Digital Social Contracts Here we describe a formal model for DSCs – for space constraints, we do not provide full formal definitions for some preliminaries. We assume a given finite set of agents V , each associated with a genuine (unique and singular) [15] identifier, Digital Social Contracts 5 which is also a public key of a key-pair.5 We expect agents to be realized by computer programs operating on personal devices (e.g. smartphones) of people. Hence, we refer to agents as “it”. We identify an agent v ∈ V with its genuine public identifier, and denote by v(s) the result of agent v signing the string s ∈ S with the private key corresponding to v. We assume computational hardness of the public-key system, namely that signatures of an agent with a given identifier cannot be produced without possessing the private key corresponding to this identifier. If t is a tuple indexed by V , then we use t[v] to refer to the v th element of t. We say that t0 = t, except for t0 [v] := x, to mean that the tuple t0 is obtained from t by replacing its v th element by x. In particular, if t[v] is a sequence, then we say that t0 = t, except for t0 [v] := t[v] · x, to mean that t0 is obtained from t by appending x to the sequence t[v]. Agents are assumed to be connected via a reliable asynchronous communication network (without a message-arrival time limit), and require all messages to be authenticated. Informally, the only things an agent can do as a party to a DSC are (i) perform a digital speech act [15], defined next; (ii) observe digital speech acts performed by others; and (iii) change internal state.6 A key characteristic of a speech act taken in the physical world is that all people present indeed perceive the person taking the act as well as the act itself. We capture this characteristic by requiring that a digital speech act be (i) digitally signed by the person taking it. Definition 1 (Digital Speech Act, v-act). Given a set of agents V , a digital speech act of agent v ∈ V consists of (i) signing an utterance (text string) s, resulting in m = v(s); and (ii) broadcasting the message m to V . We refer to a digital speech act by v resulting in the signed action m as the v-act m, and let M be the set of all v-acts for all v ∈ V . Definition 2 (Transition System). A transition system T S = (S, s0 , T ) con- sists of a set of states S, an initial state s0 ∈ S, and a set of transitions T , T ⊆ S × S, with (s, s0 ) ∈ T written as s →− s0 . The set s → ∗ = {ŝ | s → − ŝ ∈ T } is the outgoing transitions of s. A run of T S is a sequence of transitions r = s0 → − s1 →− . . . from the initial state. A family of transition systems T (S) over S is a set of transition systems (T, S) where T is a set of transitions over S. Here we define DSCs in the abstract; in particular, we do not address a dis- tributed realization nor agent faults. These issues are addressed in a companion paper [9]. A DSC consists of a set of agents, identified via public keys, and con- nected via a reliable, asynchronous, order-preserving communication network. Namely, we assume that between any two agents in the network, the network delivers all messages sent from one agent to another – correctly, eventually, and 5 We identify the set of agents V with the set of parties to the agreement. Extensions will allow an agent to be a party to multiple agreements, and different agreements to have different sets of agents as parties. 6 While the formal definition allows a digital speech act to employ an arbitrary string, its intended use is to take meaningful actions. As parties employ strings that are meaningful to the other parties, we believe we do not conjure “speech acts” in vain. 6 L. Cardelli et al. in the order sent.7 All that agents can do within a DSC is perform digital speech acts (henceforth, acts), which are sequentially-indexed utterances, signed by the agent and sent as messages to all other agents that are parties to the contract, as well as receive such messages. Example acts are “I hereby transfer three blue coins to Sue” and “I hereby confirm the room reservation by Joe”. A DSC spec- ifies the digital speech acts each party may take at any state. For example, a social contract regarding the blue currency may specify that I can say that I transfer three blue coins to Sue only in a state in which I in fact have at least three blue coins; and I can say that I confirm Joe’s room reservation only if I have not already confirmed a conflicting reservation. Our abstract notion of a DSC identifies a DSC with a transition system. The state of a DSC, referred to as a ledger, is composed of the states of each of the agents participating in the contract, referred to as their history, which is but a sequence of digital speech acts. The history of an agent v consist of digital speech acts it experienced, in particular: acts by v, referred to as v-acts, in the order taken, interleaved with acts by the other agents, in the order received from the network. Hence, at any ledger that is a state of the computation, the u-acts in the history of agent v must be a prefix of the u-acts in the history of u, for any u and v. We call such a ledger sound. Next we formalizes this informal description. We assume a given set of actions A. Signing an action by an agent v makes the action non-repudiated by v. All that an agent that is party to a DSC does, then, is perform digital speech acts, as well as receive such acts performed by others, resulting in a sequence of non-repudiated acts - a history of crypto speech acts. Definition 3 (v-act, History). We refer to m = v(a), the result of signing an action a ∈ A by agent v ∈ V , as a v-act, let M denote the set of all v-acts by all v ∈ V , and refer to members of M as acts. A history is a finite sequence of acts h = m0 , m1 , . . . mn , n ∈ N , mi = vi (ai ) ∈ M, i ∈ [n], ai ∈ A, vi ∈ V . The set of all histories is denoted by H. Definition 4 (Prefix, Consistent Histories). Given a sequence s = x1 , x2 , . . . xn , a sequence s0 is a prefix of s, s0  s, if s0 = x1 , x2 , . . . xk , for some k ≤ n. h[u] is the restriction of h to the subsequence of u-acts. Two agent histories h, h0 ∈ H are consistent if either h[v]  h0 [v] or vice versa for every v ∈ V . I.e., histories are consistent if they agree on the subsequences signed by each agent. A ledger of a DSC is an indexed tuple of histories of the parties to the contract. Ledgers are the states of the social contract transition system. Definition 5 (Ledger). A ledger l ∈ L := HV is a tuple of histories indexed by the agents V , where lv is the history of agent v in l, or l’s v-history. Following Definition 4, we apply the notation lv [u] to denote the subsequence of u-acts in the v-history in l. Our key assumption is that in a ledger that is 7 As agents have public keys with which they sign their sequentially-indexed messages, such a network can be easily realized on an asynchronous network that is not order- preserving and is only intermittently reliable. Digital Social Contracts 7 a state of a computation, each agent’s history is up-to-date about its own acts. Therefore, for agent histories to be consistent with each other, the history of each agent can include at most a prefix (empty, partial or complete) of every other agent’s acts. In particular , the history of v cannot include u-acts different from the one’s taken by u; nor can it run ahead of u and “guess” acts u might take in the future. A ledger is not a linear data structure, like a blockchain, but a tuple of independent agent histories, each of them being a linear sequence of acts. Furthermore, note that lv , the history of v in ledger l, contains, of course, all v-acts, but it also contains acts by other agents received by v via the communication network. Also, note that the v-history lv may be behind on the acts of other agents but is up-to-date, or even can be thought of as the authoritative source in l, regarding its own v-acts. Definition 6 (Ledger Diagonal, Sound Ledger). Given a ledger l ∈ L, the diagonal of l, l∗ , is defined by lv∗ := lv [v] for all v ∈ V . A ledger is sound if lu [v]  lv∗ for every u, v ∈ V . As we assume that each agent is up-to-date about its own acts, the diagonal contains the complete sequence of v-acts for each agent v ∈ V . Thus, each agent history in a ledger reflects the agent’s “subjective view” of what actions were taken, where the diagonal of a ledger contains the “objective truth” about all agents. Next we define transitions among these states. Definition 7 (Transitions). The set of social contract transitions T ⊆ L × L − l0 ∈ L × L where l0 = l except for lv0 := lv · m, consists of all pairs t = l → m = u(a) ∈ M for some u, v ∈ V and a ∈ A. The transition t is referred to as (v,m) a v-transition, and can also be written as t = l −−−→ l0 . t u Definition 8 (Input, Output and Sound Transitions). A v-transition t = (v,u(a)) l −−−−−→ l0 is output if u = v and input if u 6= v. A transition is sound if it is either input with lv0 [u]  lu [u] or output. − ˆl ∈ T is sound then ˆl is sound. Observation 1 If l is sound and l → The next definition aims to capture the following two requirements: Output - an agent v may take a v-act in state l based solely on its own history lv . In particular, v is free to ignore, or to not know, the other agents’ histories in l; Input - v must accept messages from the communication network in any proper order the network chooses to deliver them. Definition 9 (Closed Set of Transitions). A set of transitions T ⊆ T is: 1. Output-closed if for any v-act m, v ∈ V , m ∈ M, and any two output (v,m) (v,m) transitions t = l −−−→ ˆl, t0 = l0 −−−→ ˆl0 ∈ T , if lv = lv0 then t ∈ T iff t0 ∈ T . Namely, if every output v-transition is a function of lv , independently of lu for all u 6= v. 2. Input-closed if T contains every sound input transition in T . 8 L. Cardelli et al. 3. Closed if it is output-closed and input-closed. Definition 10 (Digital Social Contract). A DSC among a set of agents V is a transition system SC = (S, l0 , T ) with ledgers as states S ⊆ L, initial state l0 := ΛV , and a closed set of transitions T ⊆ T . The family of all DSCs over S is denoted by SC(S), and SC(L) is abbreviated as SC. SC is the family of abstract social contracts, in contrast to its more con- crete implementations, and view such as specifications for programs in a Social- Contracts Programming Language. Example 1 (A Currency Community: Example of a DSC). Let A = {pay(v)}v∈V be the set of acts. A message m = u(pay(v)) corresponds to a payment of 1 coin w,u(pay(v)) from u to v. A transition t = l −−−−−−−−→ l0 records in lw a payment of 1 coin from u to v. Agent u can record a payment from u to v only if the balance of u, according to lu , is positive. Formally, let lu = m1 , m2 , ..., mn , with mi = wi (pay(vi )). Set bal(u) := c + |{1 ≤ i ≤ n : vi = u}| − |{1 ≤ i ≤ n : wi = u}|, u,u(pay(v)) for some c > 0, and let T = {l −−−−−−−→ l0 : bal(u) > 0}. Let T ⊆ T̃ denote the closure of T in T . The DSC SC = (S, l0 , T̃ ) over the set of agents V specifies a currency community where each agent u ∈ V is initially granted c coins. 3 A Social Contracts Programming Language Here we outline the design of a simple social contract programming language. Abstractly, all that an agent can do, as a party to a social contract, is take acts based on its history, and receive acts by others. In a practical social contract, the acts an agent can take typically depend on salient features of its history, rather than on the history in its entirety. So, given that social contracts employ a closed set of transitions, the possible behaviors of an agent can be characterized by a (not necessarily finite and possibly nondeterministic) state transducer. A state transducer reads an input tape (in our case the inputs of an agent v) and writes an output tape (in our case the sequence of v-acts), changing its state in the process. The history of an agent fully specifies, even synchronizes, both tapes. Hence, our programming language endows each agent with an internal state, which can be viewed as a digest of its history. As in a state transducer, the agent’s state may change as a result of an input or an output. Therefore, our proposed Social-Contracts Programming Language (SCPL) presents the program of an agent v as a set of rules of the following form: − m0 , S 0 , where Conditions. S, m → where S is the internal state (state, for short) of v prior to taking the transition, m is an input u-act by some u 6= v ∈ V , m0 is an output v-act, S 0 is the updated state of v, and Conditions are any conditions on S, m, m0 , and S 0 , that are required for the transition to take place. The intended meaning of such a rule is that an agent in internal state S, upon receiving an act m, may take act m0 and Digital Social Contracts 9 change its internal state to S 0 , if Conditions are satisfied. Note that degenerate rules, i.e., rules that do not have input m and/or output m0 and/or Conditions are allowed. Next we provide an example. 3.1 Egalitarian Governance of Social Contracts We provide a code example implementing the standard principle of democracy, namely “one person, one vote”, in effect showing how a community may form democratically. For simplicity, decisions to add or remove a member are taken by a simple majority, using a secretary that handles ballots, is autonomous, and initiated by the founder. Program 1: Democratic WhatsApp-like Group founder --> autonomous#secretary([Self]), member. secretary(Members), _(propose(X)) --> ballot(X,Members,0), secretary(Members). secretary(Members), ballot(X,[],Result) --> secretary_apply(X,Result,Members). secretary_apply(X,Result,Members) --> secretary(Members) where Result =< 0. secretary_apply(add(Member),Result,Members) -> Member#member, secretary([Member|Members]) where Result > 0. secretary_apply(remove(Member),Result,Members) --> please_leave(Member), secretary(Members’) where Result > 0, Members’ is the result of removing Member from Members. member --> says(X), member. member, ballot(X,[Self|Members],R) --> ballot(X,Members,R’), member where R’ := R, R+1, or R-1. member, _(please_leave(Self)) --> says(bye), stop. member --> says(bye), stop. Note that this is a very simple program, in particular as (1) there is no option to decline an invitation (2) agents must wait for other agents to vote. Indeed, we provide the program mainly as a proof of concept, but to implement a practical democratic decision process, more complex program is needed. We also note that votes are public to the community members and are not anonymous. Outlook. We have introduced the concept of DSCs, provided a mathematical definition of them, outlined a design for a social contracts programming language, and demonstrated its social utility via program examples. Much remains to be done; some is discussed in companion papers [9, 16]. 10 L. Cardelli et al. Acknowledgements Ehud Shapiro is the Incumbent of The Harry Weinrebe Professorial Chair of Computer Science and Biology. We thank the generous support of the Braginsky Center for the Interface between Science and the Humanities. Nimrod Talmon was supported by the Israel Science Foundation (ISF; Grant No. 630/19). References 1. Luca Cardelli, Gal Shahaf, Ehud Shapiro, and Nimrod Talmon. Digital social contracts: A foundation for an egalitarian and just digital society. arXiv preprint arXiv:2005.06261, 2020. 2. Lin William Cong and Zhiguo He. Blockchain disruption and smart contracts. The Review of Financial Studies, 32(5):1754–1797, 2019. 3. Chris Dannen. Introducing ethereum and solidity. 4. Arthur Gervais, Ghassan O Karame, Karl Wüst, Vasileios Glykantzis, Hubert Ritz- dorf, and Srdjan Capkun. On the security and performance of proof of work blockchains. In Proceedings of the 2016 ACM SIGSAC conference on computer and communications security, pages 3–16, 2016. 5. Thomas Hobbes. Leviathan. JM Dent, 1914. 6. John Locke. Second treatise of government: An essay concerning the true original, extent and end of civil government. John Wiley & Sons, 2014. 7. Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system, 2019. 8. Cong T. Nguyen, Dinh Thai Hoang, Diep N. Nguyen, Dusit Niyato, Huynh Tuong Nguyen, and Eryk Dutkiewicz. Proof-of-stake consensus mechanisms for future blockchain networks: fundamentals, applications and opportunities. IEEE Access, 7:85727–85745, 2019. 9. Ouri Poupko, Ehud Shapiro, and Nimrod Talmon. Fault-tolerant distributed im- plementation of digital social contracts. arXiv preprint arXiv:2006.01029, 2020. 10. Pierre-Joseph Proudhon and John Beverley Robinson. General idea of the revolu- tion in the nineteenth century. Courier Corporation, 2004. 11. John Rawls. A theory of justice. Harvard university press, 2009. 12. Wessel Reijers, Fiachra O’Brolcháin, and Paul Haynes. Governance in blockchain technologies & social contract theories. Ledger, 1:134–151, 2016. 13. Patrick Riley. Will and political legitimacy: A critical exposition of social contract theory in Hobbes, Locke, Rousseau, Kant, and Hegel. Harvard University Press, 2013. 14. Jean-Jacques Rousseau and Gita May. The social contract: And, the first and second discourses. Yale University Press, 2002. 15. Gal Shahaf, Ehud Shapiro, and Nimrod Talmon. Foundation for genuine global identities. arXiv preprint arXiv:1904.09630, 2019. 16. Gal Shahaf, Ehud Shapiro, and Nimrod Talmon. Egalitarian and just digital cur- rency networks. arXiv preprint arXiv:2005.14631, 2020. 17. Melanie Swan. Blockchain: Blueprint for a new economy. O’Reilly Media, 2015. 18. Philippe Van Parijs and Yannick Vanderborght. Basic income: A radical proposal for a free society and a sane economy. Harvard University Press, 2017. 19. Shoshana Zuboff. Surveillance capitalism. Esprit, 5:63–77, 2019. 20. Mark Zuckerberg. Building global community, 2017.