Urbit: Digital Privacy According to Curtis Yarvin

What would happen if we owned our entire digital life without having to make extra efforts to achieve it? That's the promise of Urbit, a project created by Curtis Yarvin in 2002, which has been slowly cooking in the shadows ever since. Just as crypto is the "patch" for the internet that aims to fix the problem of centralization and lack of privacy in information transactions, Urbit aims to fix the entire stack.

Urbit

Urbit is the main project of Tlon Corporation, which takes its name from the short story Tlon, Uqbar, Orbis Tertius, by Jorge Luis Borges. It's a Virtual Operating System — it needs an underlying OS to exist, such as Windows, Linux, or MacOS — built from scratch, completely decentralized and private. Each computer is called a "ship" and functions as its own server; all ships connect to each other through a peer-to-peer (P2P) network called Ames. To identify themselves within the system, each ship has its own ID that is an NFT on the Ethereum network; and this identity model — also designed by and for Urbit — is called Azimuth.

The philosophy and raison d'etre of Urbit is based on the idea that our entire digital life is built on foundations that point toward the user not having full control over their data. We all use operating systems that tend toward centralization or depend on very high technical knowledge and the use of complex external tools to achieve real privacy (like Tails, Qubes OS, or certain Linux distributions). To fulfill that goal, Curtis Yarvin decided to reinvent the wheel and, in 2002, began by creating Nock.

Nock

Nock, as legend has it, was programmed entirely by a young Yarvin, and it's the foundation of the entire system. It's a low-level programming language, completely new, defined in a specification of roughly 33 lines of code that describes functional operations. These operations are interpreted by Vere, Urbit's runtime environment, written in C.

Vere

Vere executes the code, implementing Nock's operations on the underlying operating system (Windows, Linux, MacOS). Every low-level language like Nock is complemented by a simpler high-level language, so that normal human beings like us can contribute to the system and code our own applications. Urbit's high-level language is called Hoon. In short: the high-level language (Hoon) compiles to the low-level language (Nock), and the runtime environment (Vere) executes it.

Hoon

Hoon is, then, the high-level language in which the largest percentage of Urbit is built. It's a functional language also created from scratch, quite complex (but less so than Nock), and it's where 99% of community contributions are made. There are contributions to Nock, but they're few and far between — in fact, the last one was in 2016.

Arvo / Urbit OS

All applications are written in Hoon, as well as the Ames network and the operating system itself, called Arvo (or Urbit OS), which is responsible for managing events, running applications, administering the ship's state, handling the interface, and coordinating the modules in charge of specific and important system functionalities (just as Ames is the P2P network, there are others like Clay, for instance, which handles the filesystem).

Ships

Each ship runs its own copy of Arvo and stores its data (messages, files, applications) locally, without relying on a centralized server like traditional applications (WhatsApp, Gmail). You are the owner of your ship, your data, and your identity. Your ship can serve content (like publishing posts, hosting applications, or sharing files) directly to others through the Ames network.

How to Run Urbit Locally

A practical example of what you can do with this: you install Urbit on your computer and create a ship called ~sampel-palnet (Azimuth IDs have these names). Your computer runs Vere, which executes Arvo on your ship. You use a chat application and send a message to another person (say, ~dolpan-lacfel); your ship encrypts it and sends it directly to theirs via Ames, without going through a central server.

In fact, I did exactly this. The Urbit community isn't as big as Remilia's just yet, but they're friendly, and it's not hard to find them on X if you know where to look. That's how I reached out to без телеологии (@sitful_hatred) and told him I wanted to write this piece. His immediate response was to gift me an ID so I could access the official version of Urbit (the IDs, being on Ethereum, cost money). He sent it to me by email and I proceeded to run Urbit locally.

Running the system locally still isn't easy for people who've never used the terminal, but here's the official tutorial if you want to give it a try. Tlon Messenger comes by default and is Urbit's official chat application — a kind of Telegram but weirder and, like everything in this universe, 100% private and decentralized. In addition to one-on-one chats, there are plenty of topic-based groups where you can interact with the community.

Conclusion

My overall experience using Urbit was that of trying something still in a fairly early stage of development. There's an endless amount of work ahead, but progress is being made and the community is strong. Definitely a project worth keeping an eye on every now and then to see how it's going. And why not contribute, if it piques your interest.

Suscribite