# The Sovereign Stack TODO: - Simplify, remove the specifics from the layers cause that requires a state of the art that I don't to do. It's more about the insight/direction and less about the specifics - Ship Software is eating the world, as the famous Marc Andreessen [said](https://future.a16z.com/software-is-eating-the-world/) exactly 10 years ago. More and more humans are becoming dependent on services to carry out an increasingly large part of their lives. What originally started with e-mails, now has replaced notepads, meetings, presentation slides, physical drawings, bank visits, and slowly even physical offices. Software is truly eating the world, but to scale so fast, it made a pact with the devil. It got obscenely centralized, with an exceedingly small number of players as we go further closer to the actual hardware that is running our favorite software in the clouds. The Kubernetes scale is not only problematic about its deployment complexity but also about its philosophical promise. A single cloud to rule them all, and by all I mean everyone. There are a handful of cloud providers that run the world's software, which in turn is grouped into fairly large companies which rival the size and revenue of countries. On a scale that few can fathom, these companies not only have access to all kinds of private information about their users but also are in charge of their data. Users are generating and storing information on these platforms, without actually owning the information, creating a balkanization of disparate software services and opaque privacy rules. ## An alternative Counter to this dystopian reality, there is another breed of software that is rapidly expanding, in the field of p2p and blockchain. The first taxonomy concerns software that is primarily used to connect users, often offering a server for mere improvement of the UX. An old idea made new, with BitTorrent becoming one of the most successful protocols of all time. In p2p systems, every user is the true owner of their data, as they literally store them. With the absence of the intermediary (the server), every computer is responsible for storing it's view of the world. On the other hand, we have blockchains, where there is nothing private. Blockchains are a great way for users to agree on a common view of reality, without having to neither trust each other nor an intermediary. Moreover, anyone can build and interact with the blockchain in a permissionless manner. It's an open API where exciting and new synergies can be created between seemingly disparate systems. The sovereign stack is the software stack that will enable the sovereign individual to fulfill its full potential, being able to leverage information technologies and become a true world citizen and permissionless knowledge worker. Before we dive right into it, let's talk a bit more about the sovereign individuals and their needs. ## The Sovereign Individual <img align="center" src="https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1388334031l/82256.jpg"> A term coined by a [book](https://www.goodreads.com/book/show/82256.The_Sovereign_Individual) with the same name. It refers to the knowledge workers of the information age. Due to innovations in many different fields, these individuals can master an unprecedented amount of leverage, without having to rely on anyone but themselves and the information technology. As [Naval Ravikant](https://www.navalmanack.com/almanack-of-naval-ravikant/find-a-position-of-leverage) has said, code is a new type of powerful leverage, being able to produce millions of dollars in value with the slightest of margins. On top of that, there is an army of robots, ready to do one's bidding, readily packed in server farms for efficiency. In the information age, sovereign individuals will be able to transact and protect their assets, thanks to cryptography rather than pure violence. "It will cost $55 rather than 55 million dollars", as was the case in the industrial age". Moreover, the authors predict that in the information age, it will be possible to rapidly enter into contractual relationships and transact, using private currencies that aren't controlled by centralized entities, such as a central bank. Currency, stocks and relevant financial products will be also digitized to enable users to freely trade and use them. This is also echoed by the visionary entrepreneur and technologist Peter Thiel, in a [talk](https://www.youtube.com/watch?v=Osp_Ug_7r7Q) that took place in 1999. In essence, Peter builds on the ideas of the Sovereign Individual (having been published in around 1997) around the private competitors to the nation states currencies. Finally, an important piece of the puzzle that is only alluded in the book but clearly stated by another visionary, [Balaji Srinivasan](https://twitter.com/balajis),is that of pseudo-anonymity. I particularly suggest you watch this talk from as early as 2019 about the "[pseudo-anonymous economy](https://www.youtube.com/watch?v=Dur918GqDIw)". On of the most interesting ideas in this talk is that anonymity is a spectrum, rather than binary, posing thus an interesting challenge on how to transfer "reputation" from one "identity" to another, without revealing which is which. I want you to know that I am a a [kickass engineer](https://twitter.com/gakonst, without my [alt account](https://twitter.com/0xtuba). Sovereign Individuals do not need to use their "state identity", but thanks to public-key cryptography, we can use our public key as our digital identity. That means that we can have multiple identities, used for different facets of life. - An identity for work - An identity to talk about issues you care about (e.g politics) - An identity for your friends and family This pseudo-anonymous reality is not only already upon us, but we already see communities being built around pseudo-identities. [SHL0MS](https://twitter.com/SHL0MS) is a great example of a person who's working for identity and "friends & family" identity is completely severed. In this reality, the repercussions of one's actions in a certain domain can be contained to the identity of that domain. While multiple articles can be written about this new reality, it's worth mentioning that it's not unambiguously positive. For one, I think that the social justice that communities could enforce created better communities, as people had [skin in the game](https://medium.com/incerto/what-do-i-mean-by-skin-in-the-game-my-own-version-cc858dc73260) for every single action. Even if the judicial system failed to bring justice, the community would always be there to protect its members. **There is definetely value in forcing the architect to live for a little while in a house that he just built.** On the other hand, the lack of repercussions can bolster freedom of speech, as people can speak their minds without fearing the consequences. Moreover, any prejudices that concern race, gender, or sex preferences will hardly be an issue any longer. In this exciting new world, it's clear that the prevailing software paradigm can hardly support The Sovereign Individual. Overly centralized software that can de-platform anyone at any time, with little to no care about privacy. **Software built for the world of the 20th century**, where people need to use a state-sanctioned bank to conduct business, have a single state-issued identity, and a small group of people decides what's appropriate and what's not. The tools of the sovereign individual need to be: - Privacy-first - Permissionless - Non-KYC based, aka pseudo-anonymous friendly - Censorship-resistant This is what I like to call the sovereign stack. A collection of different software and technologies that people can leverage as they work towards becoming sovereign individuals. It may appear as niche and overly restrictive now, but in a few years, it will seem as obvious. [In the words of Balaji](https://twitter.com/balajis/status/1399409524566413312): **"Build it now is it's ready then"** ## The sovereign stack So far, I have attempted to illustrate the problem space and the need for the sovereign stack. Now, let's talk about a reference implementation that others can take and build upon. The end goal here is to create a [living breathing awesome document](https://github.com/odyslam/awesome-sovereign) for people that want to kickstart their sovereign identities. It's a stack because certain pieces of software are used as the foundation for the next layer, as we go all the way from protocol up to user-facing applications. You can think of the Sovereign Stack as a cake of different layers of technologies that one builds on top of the other. Some simplification has been done in order to leave out some layers (e.g cryptography). [And now, for something completely different](https://www.youtube.com/watch?v=dlCbFu5dpc8), a graph: <iframe frameborder="0" style="width:100%;height:363px;" src="https://viewer.diagrams.net/?tags=%7B%7D&highlight=0000ff&edit=_blank&layers=1&nav=1&title=sovereign-stack.drawio#Uhttps%3A%2F%2Fraw.githubusercontent.com%2Fodyslam%2Fawesome-sovereign%2Fmain%2Fsovereign-stack.drawio"></iframe> ### Hardware Layer What is the hardware that supports sovereign individuals? The first projects that come to mind are hardware wallets, used in blockchains (we will later see why), and internet connectivity projects like Starlink. With Starlink, in the future, I could have Internet in whatever jurisdiction I want. The added competition can only increase the censorship resistance of the networks, as cartels will be harder to impose. Governments will need to coordinate extraordinarily to impose restrictions on telcos that are physically headquartered in other jurisdictions and which do not have a single piece of infrastructure physically located on the jurisdiction in question. In the words of the famous billionaire edge lord: "They can shake their fist at the sky" I liked this phrase so much, that I made it in 2 NFTs. I just couldn't resist. It's equally hilarious and succinct, as it encapsulates the entire meaning of "The Sovereign Individual" and their leverage thanks to information technology. Of course, hardware is not limited to network devices that enable the sovereign individual to have frictionless connectivity. Devices like the Raspberry-pi, have evolved from being Linux-based resource-constraint IoT devices to micro-servers. With a Raspberry-pi (or a couple of them), the sovereign individual can use a house internet connection to host most of the services they care about. - [Hosted Nextcloud](https://nextcloud.com/) to replace google drive - [Urbit](https://urbit.org) - [Mail server](https://mailinabox.email/) - [Bitcoin node](https://bitcoin.org/en/full-node) The list goes on and on. The advent of projects like [Umbrel](https://getumbrel.com/) and its rebranding from a personal bitcoin node to the personal sovereign server signals the need for such hardware. ### Legacy Computing Layer This refers to open-source technologies that enables Sovereign Individuals to completely own their machines, and easily package their software. In my experience, Linux and Docker containers have been critical in combining great UX with software principles that enable anyone to package and run arbitrary software in a predictable **and** reproducible manner. ### Network Layer At this point, I don't think there is much to add. The Sovereign Stack will use standard networking protocols such as IP/TCP and IP/UDP. ### Blockchain Settlement Layer The settlement layer concerns all the blockchain L1 technologies. It's the software that enables users to agree ("settle") about the state of the world. It started with the simple use-case of agreeing on what value each has (a distributed ledger), but has moved to much more complex use-cases with Ethereum and the birth of generalized Blockchains. On top of that, we are now seeing an explosion in both interesting alternative L1s (e.g Solana, Cosmos, Polkadot) as also scaling solutions for Ethereum, using technologies that were considered "moon math" only a few years back (aka zk-rollups). ### Blockchain applications It's the layer that builds on top of blockchain settlement, enabling the users to agree on an arbitrary number of things, from value (e.g Ethereum) to identity (e.g ENS), lending positions (Defi), governance (DAOs), and everything in between. Most of these applications (if not all) are built on generalized blockchains, like Ethereum. ### P2P Networking A level above networking, it concerns all these protocols and P2P networks that enable applications. From storage (IPFS) to Radicle (Code collaboration) and Bitcoin (value exchange). All these protocols are P2P at their core, but they offer very different values to the sovereign individual. ### Non-blockchain P2P apps There are tons of applications of P2P technologies that don't have to be blockchain. The best use case is when the user hosts their e-mail server. While most people use centralized services, like Gmail, for the obvious benefits that it has, the e-mail protocol is, at its core, a p2p protocol of communication. Another great use case is bit-torrent, which revolutionized the way humans share large amounts of data. There are tons of important p2p technologies, from [radicle](https://radicle.xyz) to share code and collaborate, to Urbit to communicate. ### P2P computing, aka Urbit Urbit is a category on its own, having been built from the ground up as a computer that will be used for P2P applications. The first truly personal server. Urbit re-implements all parts of the stack, from the "Assembly" language of the VM to the networking layer (built on top of UDP). It combines a radically different approach to computing with a radically different approach to networks. The Urbit network is hierarchical and every Urbit computer is paired with a unique Urbit ID. Because the IDs are artificially scarce (about 4B of them) versus the virtually endless e-mail accounts, they cost something. The intrinsic cost of the Urbit IDs adds both a Sybil resistance element to the network, as also a spam filtering mechanism. It makes it a bit expensive to buy a bunch of IDs and start spamming people around. IDs, due to their uniqueness, carry a reputation, like physical identities. Urbit in itself needs multiple blog posts, but here are a few primers to get you started: - [Understanding Urbit](https://urbit.org/understanding-urbit) - [Urbit for Normies](https://urbit.org/blog/urbit-for-normies) - [My twitter thread](https://twitter.com/odyslam_/status/1398654056839540745) ## Now what? First, I want to underline that I may be forgetting some applications or even an entire layer of the Sovereign Stack. I am only human after all. How can I ever stand a chance against the **Internet hive mind**? If you think so, head over to [odyslam/awesome-sovereign](https://github.com/odyslam/awesome-sovereign), open an issue, make a PR and I will make sure to update this blog post, with proper attribution of course! ## An example and we are done for today Alright, now that we have our bearings and we are starting to have a common language, let's see an example of how I think about the Sovereign Stack. As a professional, I have worked remotely all of my life. I am currently a freelance solidity engineer and engaged in several crypto projects. Here is a PoC sovereign stack ### Finances - **Bitcoin**: Used to store the bulk of the value that I can't afford to lose. I would say about 40% of my net worth. - **Ethereum**: Used for transactions, payments, and Defi applications. ### Work - **Radicle**: Radicle is the place where I work, replacing GitHub in the long term. It's equally a platform to collaborate in a P2P fashion over code, but also to get funded for the open-source work I do, both as a maintainer and a contributor. - [draw.io](https://draw.io) to architect my work, using GitHub for storage. GitHub is of course mirrored to Radicle ### Communication: - **Urbit**: Communication with communities that I care about. Although I have doxed myself, my Urbit ID is completely unrelated to my "physical" name. When I met people back in Austin for Urbit's first conference, everyone knew me as "sipsen-pilser", the person that is building [Home-Urbit](https://github.com/odyslam/home-urbit) and presented it's [Roadmap](https://docs.google.com/presentation/d/1RqOf5LvBZfzbP-w1ZuP0NXwknJYjfUqaCuqvSR5Laf0/edit?usp=sharing). - **Mail**: Although proton-mail is notorious for its privacy and end-to-end encryption, there have been incidents where it had to comply with regulations and give user information. On the other hand, if I used a private e-mail server hosted in a Raspberry Pi, my data are my own. Using things like VPN, it's possible to hide my IP. ### Hardware - **Yubico**: For ssh keys and 2FA - **Ledger**: A combination of N-of-M to store my crypto. Never hold anything of value on hot wallets. [Please](https://rekt.news/). - **A Raspberry Pi** that I carry with me as I travel from one city to the next. Even for a digital nomad, all I need is a fairly good Internet Connection and stable electricity. Wait, is that it? If you think that the list is small, then you are right! The point of this blog post is a cry for help, so we can expand it. Find alternative ways of doing things, with an eye to decentralization. One could argue, for example, that [Prospera](https://prospera.hn/) is part of the Sovereign Stack, enabling anyone to easily become an online citizen, incorporate and conduct their business in an environment that understands the meaning of "competitive government". What If I could use Figma with [ENS](https://ens.domains/)? That coupled with a good VPN would improve my anonymity considerably, while also making it harder to be censored. Moreover, it would enable anons to easily collaborate, as they only have to use their Ethereum public address for nearly everything. To that effect, ENS is part of The Sovereign Stack. As far as you are concerned, I am odyslam.eth. Finally, another could argue that amongst the first layers, I should put "cryptography", as a few primitives made all this possible, namely the family of encryption schemes that is called "Public-key based cryptograph". Now, another family called "[Zero Knowledge Proofs](https://vitalik.ca/general/2021/01/26/snarks.html)" are paving the way for scaling the blockchain throughput. ### We need you The GitHub repo isn't going to grow by itself. We need PRs from anyone, to discover little gems of sovereignty and help onboard more people to the working reality of the information age.