About Urbit, Part II — Identity

J LeBlanc
Digital Stimulation
11 min readApr 17, 2019

--

In Part 1, I described the overall structure of the Urbit network and how stars and galaxies work. The rest of this series will discuss Urbit from the planet’s perspective.

Urbit is a general-purpose network. It provides a base which you can build whatever kind of network you want on top of.

It’s not a direct replacement to Facebook, Twitter, Slack, Snapchat, Tumblr, ICQ, MySpace, or anything else. It’s something you can use to create new ways of interacting online, and those things combined will make those other platforms a distant and somewhat regrettable memory.

The best way to think about it is, “like the Internet, only with a few things fixed so that everything is way better.”

So for the remainder of this, I will discuss some of these fixes and some ideas for how they’ll work in practice.

Disclaimer

I will be discussing Urbit’s potential future, not its present.

As I mentioned previously, Urbit is live, but it remains a work in process. You can get connected and it’s increasingly less prone to crash, but what you can do with it today is pretty limited.

Some of the features I talk about here do not exist and some may not ever exist. But everything should be feasible.

About Identity

People are really good at organizing themselves, when the numbers are fairly small and everyone is in the same place.

You can see this with kids. If you put a half-dozen third graders together, even if they don’t know each other, within ten minutes they’ve invented their own game, or they’re putting on a play, or someone found a dead animal and they’re taking turns poking it with a stick.

They might also be drawing on the walls with Sharpies or poking each other with a stick. What they won’t be doing is nothing.

The closer any kind of social setting is to this ideal — with small numbers of people together in one place — the more natural it will feel, and the more problems will tend to solve themselves without parental involvement. People generally have a baseline of human decency when they encounter someone in person, which makes cooperation more likely.

Online social settings have serious difficulty feeling natural. Any time the participants are in different places looking at screens, you lose a sense of shared humanity. It’s pretty rare that someone just walks up to a stranger and starts screaming obscenities at them. Online, that sort of thing happens so often nobody thinks it’s alarming any more.

You can overcome some of the problems with online social interactions, but first, you want everyone to have an identity. Some place everyone can hang their impressions and opinions about other people onto. Something that everyone thinks of as “myself”.

If you do it right, you will have some sense that the personas you’re interacting with represent real people, and that the person you’re presenting to everyone is a good representation of yourself.

Most social media sites today don’t give you an identity, they give you an “account”. An account is a row in a database, which connects to hundreds of other rows in other databases. Very clever designers spend a lot of time and effort trying to shape this data into something that kind of vaguely approximates an identity, but it never quite makes it.

If you have an account on Twitter, you can use it to spout of your opinions, share links, maybe post pictures or interact with other accounts. You might develop a style and a “voice”.

But your twitter handle is not an identity. For starters, you have that limitation of 140 or 280 characters. There are valid technical reasons for this, and it’s a constraint that is fairly easy to work through.

But there’s a lot more to people than whatever bite-sized thoughts pop into their heads from time to time.

Nobody is going to think, “Someone I’ve never met wants to date my daughter. Let me check this Twitter feed and that should tell me everything I need to know…”

A Twitter feed might let you know if it’s a particularly bad idea, but it won’t let you know if it’s a good idea. Really, the only thing you’ll find out about someone by looking at their Twitter feed is your opinion of their Twitter feed.

This is not to say that your Twitter feed says nothing about you. However contrived Twitter’s character limit might be, some part of your personality ends up in there. If you’re funny on Twitter, there’s a decent chance you’re funny elsewhere.

This is true of every social media site: they all say something about you. The problem is, all that information is smeared across dozens of sites: Facebook, Reddit comments, Instagram, irate product reviews on Amazon, 4chan, posts you did for the company blog, that two-week period when you tried Snapchat and didn’t get it.

It would be great if you had one identity that tied all these interactions together.

This identity still might not tell you whether you’re cool with your daughter dating this person. But if you’re staring your own online community, it will probably let you know whether you want this person to become a member.

This is what you get with Urbit: one identity.

Your planet name is stamped on all your messages, so all your interactions in whatever setting can be tied back to the same thing.

Your planet is a server and its name is also a network address. So if other planets need to find out something about you, there’s a place they can go to find it out or the name of something specific to ask about.

With an identity that functions as a server, you can have interactions on Urbit that feel like real world interactions. The people you encounter on Urbit will seem more like people. This will let people use their brain’s natural ability to solve social problems and hopefully re-introduce some decency into how we interact with each other.

Proving your Humanity

The lack of any kind of identity on the legacy Internet is painfully evident.

If you have a web server today and you just want to display a page, this is easy. What’s hard is when you need to create a form and start asking people for data.

From a security standpoint, web forms are like the bathroom at a rest area along the interstate. Anyone can show up and make a huge mess. A bot is way more likely to cause problems than a human. Therefore, everyone is presumed to be a bot until you prove otherwise.

(In case my dad is reading this, a “bot” is a program that does some kind of task automatically. Sometimes this is legitimate. If you’ve ever set an auto-reply for your email letting people know you’re on vacation, this could be considered a bot. A malicious bot would be a program someone wrote to crash someone’s web server or create a bunch of fake accounts.)

So three or four times a day, some website asks me to prove that I’m a human, and I find myself squinting at nine grainy pictures and wondering if the “walk/don’t walk” sign means this picture has a “stop light”.

The reason I have to do this four times a day is because I have no single identity on the legacy Internet. None of the websites know who I am, and there’s nothing to connect me with any of the previous times I verified myself.

There are entirely valid security reasons for this. If you save data for a website, you probably only want that site to be able to access it. For instance, you probably only want your bank’s site to access your bank account info.

What would fix this would a service where you prove you’re a human one time, and it gives you a certificate which you could just send to anyone who wanted to verify that you aren’t a bot.

This would be easy to do in Urbit.

A service running on an Urbit ship could send some pictures to your planet. You determine which ones contain a zebra riding a motorcycle (or however they want to do it) and send your responses. They declare you a “certified human being” and give you a certificate.

Then the next time you need to verify your humanity, your planet just sends over your certificate. It could do it automatically without your needing to know any of this just happened.

This is essentially what happens when you get carded trying to order a Pabst Blue Ribbon from the bar around the corner. The bartender might not know your age, but a few years ago someone at the DMV verified your date of birth (and your ability to drive) and gave you a card with your birthday and a picture of your face printed on it.

You present this card to the bartender, she scrutinizes the picture to see if it’s you, math ensues to sort out your age, and your thirst is quenched with sub-par domestic beer. (But hey, it’s on special.)

We can start to see how the pieces come together on Urbit. You have an identity, your planet, which ties that one time you successfully identified zebras and motorcycles with right now, when this other planet wants to know if you’re human.

Your planet is a server, so you have somewhere to store your certificate, something that’s always listening and ready to send it somewhere when it’s needed.

You could probably put together some kind of process for doing this on the web today, but it would involve setting up accounts in four different places and wiring everything together, and it probably wouldn’t be automatic.

I have no idea how useful it would be to prove your humanity on Urbit. Since your planet is a server, it’s designed to have some tasks automated. So the line between “human” and “bot” will be a bit blurry. And it’s actually easy to stop the kinds of abuse that the “prove your humanity” tests are there to prevent, which we’ll discuss later.

But this same process could work for any number of things you might want to know. If you’re starting a group exclusive to people from Maine, you might want to use a service that verifies people’s mailing address.

Since your certificate is hosted on your own server, you can control what you do or don’t let people know. I would be willing to let anyone know my blood type (A+) or that I can identify all the members of The Breakfast Club. I would be way more careful with my address or phone number.

Since I would be hosting this data, I would get to decide what I want to remain private and how private it should be.

Identity in Action

Before you do anything on most sites, you have to create an account. Which means you now have one more password which you will promptly forget, so that the next time you try to log in, you have to request they send you a password reset email.

Or worse, you remember that you signed up for an account with the work email address from your previous job, so you’ll never be able to get the password reset link, thus your account is effectively dead and you have to create another one.

You can, of course, use a password manager, but really we should never need this kind of Band-Aid.

This is certainly not how things work in meatspace. If you want to join the Moose Lodge down the street from you, you walk in and ask someone if you can join, or maybe a current member nominates you by name. You don’t first create an “account” with the Loyal Order of the Moose.

There is no need for an “account” on Urbit. You have an identity, which is the same everywhere. And that identity is what can let you into things (or keep you out of them).

If you want to create a group or service on Urbit, all you need is a list of planet names. When a planet tries to connect it sends its name along with its connection request. If it’s on the list, everything works. If it’s not on the list, it will be ignored, or maybe it’ll get a reply with the name of someone to contact about getting added.

So let’s say someone is running a community on his Urbit planet for Texans living in Singapore, to offer living tips and a forum to complain about their inability to find a decent enchilada.

If the person running the group finds out someone in his apartment building is from El Paso, he can just add her planet name to a list and she’s in. The same planet name that makes them a member of the 19th century French poetry discussion group and the group for her friends from Texas Tech.

You could set up a website for this sort of group, but things like account management involve setting up a database. Database management is a skill and often a full-time job.

Maintaining a list of people or planet names, on the other hand, is something anyone can do.

Alternately, you can setup a group on Facebook, but then everyone has to join Facebook. And when someone rage-quits Facebook, they’re also rage-quitting your group.

Blacklists

Since each ship on Urbit sends its name with all its traffic, if a planet is causing problems, you’ll know exactly who it is and you can very easily add them to a blacklist.

Then when your planet looks at the sender of incoming messages, and if it’s someone on the blacklist, it ignores the message, effectively making that planet invisible. You might have to deal with a trivial amount of unwanted bandwidth, but it shouldn’t crash your planet.

For the kinds of attacks on the legacy Internet where you have to prove your humanity, these work because the server has to inspect the incoming messages before it can decide if the messages are valid or not. And even then it’s not always clear.

In terms of effort, on Urbit, it’s like junk mail you throw away by just glancing at the envelope, versus having to open the envelope and read a bit of before you decide it’s actually junk.

That’s why I mentioned that you might never have to prove your humanity on Urbit. Those sorts of attacks could be easily defeated, so there would be no reason to try.

Trying it Out

This would be especially valuable for people creating a brand new service. Right now, if someone sets up a new service, like a newer, fancier instant messenger or some way to share electronic music you’ve written, everyone first has to make an account.

This usually entails something like filling out a web form and waiting for a confirmation email (which probably went into the spam folder) so they can click on the link and activate their account.

Thus, the people running the service have to make a pitch to new users that’s compelling enough that they’ll be willing to give up five minutes of their lives on this process before they can even get started.

Furthermore, the developers who are writing the code for the service have to get the account creation working before they can get started on the service itself.

On Urbit, since nobody needs an account, new users can just jump in and try it out.

So instead of spending time and effort making a pitch to potential users, maintaining code and databases for user accounts, trying to figure out how to convince Gmail that the confirmation email isn’t spam, that time and effort can be spent making the service better.

People

Everyone having an identity is a good first step to seeing them as actual people. Once you do that, you can start deciding which of these people you want to spend your time interacting with.

Maybe you only want to interact with people you know in person. There’s nothing wrong with that, but this is certainly limiting.

It’s a big world out there. For my part, of the 100 or so people on planet earth I would most enjoy hanging out with, I would imagine I’ve met at most one or two of them. Which means the other 98 are out there somewhere.

But if it’s done right, finding new and interesting people will be easy. It will seem like you just stumble upon them, even though there will be lots going on behind the scenes to make it happen.

As for how that’s going to happen, we’ll discuss next time.

--

--