Published on March 17th, 2019 by
Click to download audio version
The range of third-web platforms in development today is greater than ever. From data-centric blockchain based approaches to agent-centric designs like Secure Scuttlebut, the potential futures of the third web are rapidly expanding.
Today we look at another approach with the Urbit platform. Like Secure Scuttlebutt, Urbit is agent centric. It is a deterministic operating system designed to be the filter between a user and the online services they use.
I last covered Urbit in 2016 and the project is now nearing public launch. Galen Wolf-Pauly explains.
What is Urbit?
A personal Server
A secure computer that
you actually own
Stores an event log of everything that has ever happened to it
That’s designed to live on any cloud server
But be controlled by a private key that you actually own
Your Urbit is meant to replace all of the consumer cloud software that you already use
How can it possibly be better than all of the expensive software that has already been created?
The basic thesis is that everything we use today runs on top of a unix of some kind.
The reason we wound up in this centralised world of cloud-based software is that Unix is too complicated.
Because the Unix is complicated, complicated layers between Unix and the application are needed.
The Urbit solution is to rip all of that out and create a single, extremely simple, complex system.
Urbit is a virtual machine, programming language, and operating system in 30,000 lines of code.
For comparison, Wordpress, an application that runs on Unix is 500,000 lines of code
Technical simplicity should turn into user interface simplicity.
Additionally, by hosting your Urbit in the cloud you no longer have a middleman serving you applications, Instead you only need them to host your virtual computer.
What does an Urbit future look like?
A single platform allows tighter integration of, for example, productivity software like Git & Asana.
As a designer, Galen looks forward to interface standardisation, -having messaging, documenting, code collaboration, task management and other consumer software working seamlessly as one system.
Rather than interfaces built for many people.
Do we need a new back end for a new front end? Hasn’t Wechat done this?
Today we use many services that have unified UIs
Google has both email and documents but do you really trust Google to have total control and visibility into your use of those services?
What if Google goes away?
Being able to run a server myself that I trust will be around a long time and is secure to me makes me feel alot better. [Platform Risk]
Wechat is a really great achievement
Apps are more like modules
But you have given total power to a single company
The decentralised Wechat pitch has gotten tired but Urbit is very much targeting that problem.
The future of cloud computing does look like that but makes no compromises in privacy or durability.
So is your vision as a designer that an individual defines their interface standard and that the applications automatically conform to that individual standard?
Yes, instead of going to facebook, twitter, Google Docs, etc. and having them deliver the interface to me it is much more like installing a desktop application.
In a desktop application scenario most applications make use of common interface elements because it makes more sense to the user
Your computing environment should feel like your physical environment.
Individuals have different preferences with regard to furnishing and it is relatively easy to pick from different modules of furniture or colours of walls. These are decisions of the size that we are comfortable making.
Contrast this to computing interfaces which are like a prefab trailer, or hotel room that you wind up living in the whole time but have no power to customise, only choose between.
The alternative is being a Linux SysAdmin who builds their entire interface home themselves. That tradeoff is as unfair and unrealistic as everyone physically building their own homes from scratch.
To clarify, it is people working on Urbit full time who would be the ones building interfaces but those interfaces would be able to be applied to all of the applications that run on Urbit, and tweaks to those interfaces would affect all apps.
Moving on from the interface. What is the advantage over existing cloud platforms? How is it possible to build something from scratch that is easier to use than the systems that have been developed by hundreds of thousands of people over the course of 30 years?
Firstly, Urbit runs on Unix, the internet, TCP/IP, UDP
We take the existing infrastructure and build a new layer on top.
We are antagonistic toward the existing web stack
Urbit is designed for an individual to use
You can think of Urbit as a personal blockchain or a 100 year computer - something that has never existed.
Who is the target user?
The gold standard is “Would I recommend this to my Mom?”
More than just the technical community is interested in online privacy and security.
The question is more like “Would I send an Urbit to my cousin?”
This year your friend will be able to acquire an Urbit address and use it to chat with others and make the decision for themselves.
Urbit is most interesting to somewhat technical people who are interested in unusual system software.
It is also populated by small interesting micro-communities
The Urbit testnet has been live since 2013
Does Urbit have enterprise applications?
In the world of agriculture you cannot customise the software that runs in the machinery commonly available.
You can’t customise the software inside a Nest IoT device. You cant even connect it to a different server.
Urbit operates on it’s own network of devices.
It is ideal for industrial IoT and can communicate on a local network.
Currently data from these devices is collected and stored by third parties who represent a risk of abuse or leaks.
Let’s take a look at how it works, the networking and application stack.
3 main components:
Azimuth - the identity system. A series of Ethereum contracts. An Azimuth point is like a combination between a domain name, an email address and an IP address. There is a finite address space and each address is represented as a pronounceable phrase. In total there are ~4 billion user addresses. These addresses are divided hierarchically and have different uses in mind: 264 “Moons” (devices), 232 “Planets” (user addresses), 216 “Stars” (routing nodes), 28 “Galaxies” (protocol governors).
Arvo - the Urbit OS. Very clean separation from external identity system on Ethereum, connected by a common key pair. The Arvo OS has a file system, a system for building applications, a webserver, a networking protocol which is routed over UDP, a vault for secrets or keychain, and a build system. These aree individual kernel modules that provide things from the web stack. A core kernel manages the interactions between these components. The OS is written in a custom language called Hoon which compiles to the Urbit assembly language called Nock. The result is a single deterministic function that Urbit executes every time it gets an event.
Who makes money from Urbit?
Employees of the Tlon company that is developing Urbit, in the form of wages.
Holders of Azimuth address space.
Providers of Urbit hosting & application development services
Recently, Curtis Yarvin, the founder of the Urbit project, left. Is it true that he gave all of his address space to Tlon?
Curtis Yarvin signed over the the Galaxy addresses he held to Tlon. He retained the control of the stars.
Future & Fears
The biggest threat to Urbit is success. If it begins to succeed as an alternative computing model, its possible that large players will attempt to build products that solve the same problems.
Urbit’s goal is not to be a single network, but rather a network of networks.
It takes granular tools to map the way people interact in a computing environment and Urbit aims to make the many different permutations of human communication representable.