martian-computing

CS 498MC Martian Computing at the University of Illinois at Urbana–Champaign

View the Project on GitHub davis68/martian-computing

Azimuth 1 (Urbit ID)

Learning Objectives

The Urbit Address Space

Urbit provides persistent and stable futureproof identity to its users through a hierarchical address space.

Zooko’s triangle is a trilemma posing that any naming system on a network must attend to three concerns: decentralization, security, and human-meaningfulness.

There have been a number of attempts to balance the demands of Zooko’s trilemma, such as Aaron Swartz’s proposal inpsiring Namecoin and Twister and Nick Szabo’s secure property titles.

Urbit ID resolves Zooko’s triangle by using peer-to-peer routing after discovery, by strictly limiting identity as a scarce and reputation-bearing good, and by assigning each addressable point of the 128-bit address space a unique and memor(iz)able name.

In fact, today on Urbit you frequently see the mnemonic address used as the primary pseudonymous identity and username. Felicitously, the identity problem is thereby solved without horrible username requirements. For instance, I am ~lagrev-nocfep on Urbit, point 4,235,396,352 (or 4.235.396.352 in European-style notation as used within Urbit).

Now, that said, there are different kinds of points available in the address space. All of these are brokered by Azimuth, an Ethereum-bootstrapped public-key infrastructure (address space and protocol) which governs ownership and transactions.

Each Azimuth point is a 128-bit address. I have already refered to ships as having 32-bit addresses, so what gives? Urbit is structured with a hierarchy of addressable points, and bands of smaller values (preceded by many zeroes) have more “weight” in the system and broker access to higher-addressed points.

In total there are $2^{128}$ addressable points, of which the vast majority are available as unclaimed “comet space.”

The initial allocation of galaxies served the expedient of funding Tlon to develop Urbit, but the 256 galaxies are in the hands of many different kinds of people besides investors.

Like Lana sings (“Before we go out, what’s your address?”), we in principle care about address when dealing with a strange star or planet for the first time. A reputation system is under development, but hasn’t yet seemed to be necessary. This is called Censures. Plus, at this point, identity is fairly cheap, abundant if not infinite. (Notably, not so cheap that spammers can thrive.)

Peer discovery, the primary role of stars besides planet allocation, is an important step in responsibly controlling network traffic. “The basic idea is, you need someone to sponsor your membership on the network. An address that can’t find a sponsor is probably a bot or a spammer” (docs).

The patp Mnemonic Naming Scheme

Urbit uses a system of mnemonic syllables to uniquely identify each address point. These mnemonic names, called “patps” after their Hoon representation @p, occur in a set of 256 suffixes (such as “zod”) and 256 prefixes (such as “lit”). They were selected to be pronounceable but not meaningful.

Number Prefix Suffix
0 doz zod
1 mar nec
2 bin bud
3 wan wes
4 sam sev
254 mip nev
255 fip fes

The first 256 points (the galaxies) simply take their name from the suffix of their address point. Subsequent points combine values: for instance, point 256 is ~marzod, point 480 is ~marrem, and point 67,985 is ~fogfel-folden. (Conventionally, a sigma ~ is used in front of an address.)

The 256 galaxies have suffix-only names, and all higher addresses have prefix–suffix names. Two-syllable names always mean the point is a star; four-syllable names are planets. Comets have rather cumbersome names: 67,985,463,345,234,345 corresponds to ~doztes-nodbel-palleg-ligbep with eight syllables.

The stars which correspond to a galaxy are suffixed with the galaxy’s name; planet names are mangled so that one cannot tell which star or galaxy a planet corresponds to at a glance.

If a planet needs to change its sponsor, there is support for a process called emancipation, in which another star can assume the role of peer discovery in case a star goes offline (a “dark star”).

Reputation

A reputation system is available called Censures. As spammers and bots are not yet present on the Urbit network in any significant quantity, Censures is not heavily used today. Galaxies and stars can censure (or lower the reputation of) lower-ranked points as a deterrent to bad behavior (defined as spamming, scamming, and spreading malware). Since good behavior is the default, only lowering reputation is supported.

Azimuth On-Chain

Azimuth is located on the Ethereum blockchain at address 0x223c067f8cf28ae173ee5cafea60ca44c335fecb or azimuth.eth. Azimuth points are not interchangeable tokens like ETH or many other cryptocurrencies: each point has a unique ID, a type, and associated privileges. “Azimuth is basically two parts, a database of who owns which points, and a set of rules about what points and their owners can do” (Wolfe-Pauly). The technical blockchain term for this kind of points is “non-fungible tokens”.

There is nothing intrinsic about Azimuth which requires Ethereum to work correctly, and in the future Azimuth will probably be moved entirely onto Urbit itself.

Urbit Ownership and the Crypto Community

Because Urbit address space is finite, it in principle bears value similar to cryptocurrencies such as Bitcoin. You should hold your Urbit keys like a dragon’s hoard: once lost, they are irrecoverable. I do not have a copy of your master ticket, which is the cryptographic information necessary to sell, start, or administer your planet.

To be clear, I am not promoting Urbit or ownership of any part thereof as a speculative crypto asset. Like blockchain and cryptocurrencies, Urbit may carry intrinsic value or it may be only so much (digital) paper. Right now, you can purchase available Azimuth points on OpenSea.io and urbit.live, or you can buy directly from someone who has some available.

Galaxy Ownership and Star Access

The sale of galaxies formed a role in initially funding Urbit, but to prevent too early sale and to modulate access to the network, most stars are locked by Ethereum smart contracts and unsellable until their unlock date. Star contracts will unlock through January 2025, at which point the full address space will be available (but of course not activated). Galaxy owners can sell or distribute stars as they see fit, and star owners can parcel out planets. However, since a star provides peer discovery services, it is imperative that a star with daughter planets remain online and up-to-date.

Much of the Urbit address space is locked and unspawnable to provide an artificial brake on supply and prevent overrunning the available address space. See “The Value of Urbit Address Space, Part 3” for extensive details on star and planet limitations and the associated Ethereum smart contracts.

If a star ceases to provide peer-to-peer lookup services and software updates, a planet may find itself in a pickle. “Dark stars” are stars which have spawned daughter planets but are not running anymore. To mitigate this situation, planets can switch from one sponsoring star and move to another.

Sigils

Sigils are a visual corollary to the mnemonic patp. Each address has a unique sigil, based on the 512 component syllables.

A galaxy patp is monosyllabic since there are only 256 galaxies. Thus a galaxy sigil is a single symbol only. For ~fyr:

Stars have two syllables and thus two symbols. The left-hand sigil is derived from the prefix set, and so is completely unique from the set of suffix sigils. For ~fosfyr:

Planets have four syllables and hence four components in their sigils. For ~winter-martyr, for instance, we have:

Although the pattern extends readily, sigils for moons (64-bit, 8-syllable, thus 8-component sigils) and comets (128-bit, 16-syllable, thus 16-component sigils) are not really seen in practice.

Sigils are not intrinsic to Urbit, but they form part of the metatextual environment that Urbit inhabits and they are frequently used as a means of ready differentiation and identity.

Further On Up the Road

The Azimuth PKI is quite sophisticated, and the Urbit HD (Hierarchical Deterministic) wallet allows for nuance in point management. Bridge is used to manage point operations. We will revisit all three in technical detail in Azimuth 2. We will furthermore examine the internal operations of azimuth-js and the Ecliptic contracts.