Skip to content

Instantly share code, notes, and snippets.

@joemfb
Created August 15, 2024 20:01
Show Gist options
  • Save joemfb/2beda3454e5b959321078a7f47a2953c to your computer and use it in GitHub Desktop.
Save joemfb/2beda3454e5b959321078a7f47a2953c to your computer and use it in GitHub Desktop.
urbit strategy (cgy, 2018): casbah (4 of 4)

Casbah, a hyperculture

What is Casbah? Why are we making this? What is our mission?

Casbah is a hyperculture: an archipelago of centerless cultures, each independent and immortal, on one technical platform. Casbah is not a social network. Casbah is a permissionless network of mutually noninterfering social networks.

Every Casbah culture is its own decentralized network on top of Arvo and Azimuth. Since the medium is the message, every Arvo ship runs a separate social agent for each culture it inhabits. The culture itself controls its own agent's codebase.

This contradictory combination -- uncompromising cultural variety and independence; uncompromising technical unity and simplicity -- is the spirit of Casbah. In particular, the core idea is that there is no such thing as a generic social tool. Code and culture are always interwoven.

Casbah itself is not a codebase. Nor is it a brand, a hostname, a project or a product. Casbah is a design; Casbah is a vision. Once human beings use the design, the vision becomes real.

The Casbah concept does not depend on Arvo specifically. It does depend on a unified network of usable personal servers. Nothing like Casbah can exist till humans have their own true computers.

The hyperculture

Humanity's future is one shared global computing fabric. It is not one shared global culture. We believe that the death of any culture is a tragedy, and the birth of any culture is a miracle. The mission of Casbah is to support every culture that exists, and nurture every culture that's ready to be born.

Every old culture we've inherited from the past, every new one we'll invent in the future, will coexist peacefully without tension or conflict. There is no single point of failure or control within any culture, or across Casbah as a whole.

Casbah is not a single social graph. Every culture is its own social graph. Normal social interaction is within one culture. From within one culture, no outside culture is even visible. But any ship may join any number of cultures. (If you have two lives which can't know about each other, you do need two ships.)

This word "culture"

A culture is not a channel! Cultures are meant to scale in size, not specialization. Ideally, almost no Arvo ship should be in more than a few cultures, and most should be in only one.

Cultures will inevitably start as small groups of friends or associates -- but they should grow as big as possible. Any two cultures which enjoy "culture fit" should consider coalescing.

A traditional meta-community, a Reddit or a Usenet or a Burning Man, is not many cultures, but one -- or at most, a few. Reddit has subreddits, Usenet had newsgroups, Burning Man has camps. There is certainly cultural variation across channels. But there is one Reddit culture, one Usenet culture, one burner culture.

A culture, large or small, should be a deep social engagement. If a culture is not expected to consume a significant fraction of its members' lives, it probably is not an independent folkway, and it should probably be one channel within a deeper culture.

But nothing stops even small groups of friends from being deep. Any marriage or family is, or should be, a single deep culture.

Anthropology

We're using this word, "culture," in an odd way. To be precise, we're using it the way cultural anthropologists use it: as in, skater culture, or Amish culture, or hippie culture. Every company is a culture -- that's why it has a "company culture."

A culture is a "folkway": a complete way of living. A culture is a shared sense of trust, of etiquette, of purpose or mission, of interests, of any and all human ties. Within a culture, there should be no serious collective conflicts. Everyone is basically on the same side, and the same page. A stranger is a friend you haven't met yet.

Not every human culture, old or new, lives up to this standard. But all aspire to it.

The social purpose of Casbah is to give human cultures, young and old, the tools they need to organize and govern themselves. Humanity is a weed. It will grow anywhere. What tools does it need to really flourish? Surely not the ones it has how.

Three sizes; twelve purposes; thirty-six words

The word "culture" remains intentionally vague and cumbersome. It's too abstract. It needs to be.

(In place of "a culture," you can also say "a casbah" with an indefinite article -- "casbah" is from an Arabic word meaning, roughly, "fortified conurbation.")

Even "culture" is slightly wrong. But most English words for a social cluster, though there are many, carry connotations of size and/or purpose that preclude other sizes and purposes.

Our solution is to construct an actual taxonomy of human cultures. This taxonomy is artificial and voluntary. No one has to use it. Perhaps no one will. There is one row of neutral names which carry as little flavor as possible.

But just enumerating the taxonomy should demonstrate the full scope of Casbah cultures -- and eliminating any remaining hopes of a single generic social agent. Just imagine all these use cases, squabbling over one feature set.

Quite arbitrarily, we identify three sizes and twelve categories of purpose, one of which is neutral.

The sizes are small (S), medium (M), and large (L). Small means 0-63 (safely under the Dunbar number, the set of people that most people can remember individually -- probably lower online). Medium means 64-1023. Large means 1024 and up.

These are crude and artificial boundaries, but they clearly describe very different kinds of human social structures. When generalizing across all sizes, use the M name (ie, when generalizing across economic cultures, say "company.") You can also abbreviate with numbers and symbols: ie, 2M for "company."

We've also enumerated a set of themes and/or purposes of human activity. Needless to say, we do not support or condone all these activities! But Casbah is a permissionless system. There is no harm in naming things, even if they are bad.

In this enumeration, higher numbers are less likely and less desirable. Longer names indicate larger groups.

We believe that, at least at first, most Casbah cultures will be new rather than transported groups -- people will enter individually, not move entire institutions over. Later, this may change. But latecomers can always adapt.

The categories, with S, M, L names in order, are:

1. Unflavored (club, group, society)

Use these names when no obvious purpose can be discerned, or should be disclosed, or fits your style to disclose, or is just not related to the categories below. Neutral names are always normcore and always cool.

2. Economic (team, company, enterprise)

Economic cultures are cooperating to do work -- to produce some valuable effect on the world. Members may or may not be capturing some of that value -- the company can be for-profit or nonprofit -- but they are working as partners toward one end.

3. Artistic / scientific / literary (cafe, circle, movement)

Category 3 cultures are cooperating to create content with independent value -- that is, content which is valuable even without economic purpose. This does not imply that it has no economic purpose. A good test is that if whatever your culture is dedicated to producing (individually or collectively) could or should be in a library or museum, you're in category 3.

4. Political (cell, party, faction)

Category 4 is strictly for legal and nonviolent political activity: cooperatively exercising your rights, if any, to "exit" or "voice."

Illegal activity falls under category X. Purely intellectual activity falls under category 3.

5. Educational (room, school, academy)

Everyone knows what education is.

6. Parallel (shop, union, syndicate)

A parallel culture is a parasitic culture -- one that grows on the scaffold provided by another. The classic example is a labor union, which grows on the organizational structure of a company, like a vine on a tree.

Parallel cultures are extremely cool. We need more of them.

7. Esoteric/spiritual/religious (cult, church, religion)

This is the category that cannot be explained. Its boundaries are as broad as possible. For instance, cults of personality and/or style -- fans, furries, juggalos - belong in category 7.

If a small esoteric group is afraid to call itself a cult, it probably is one and it probably shouldn't exist.

8. Geographic (plot, estate, territory)

Humans often form affinity groups based on physical position. Unfortunately, words for these groups tend to be coopted by political structures, which we want to stay orthogonal to.

Usually, in the modern world, geography does not actually match patterns of culture. Geography will be better suited to constructing channels within a larger culture. But there are always exceptions -- geography can be a good proxy.

9. Familial (clan, tribe, ethnos)

Familial cultures are based on ancestral/genetic relationships and/or sexual bonds. (Clans of two, ie, couples, are great.)

Tribes are borderline. Ethnoi (plural of ethnos) are creepy and weird. Please do not form or coalesce large-scale familial cultures except in an emergency, ie, someone is actually coming to for-real genocide you and everyone who looks like you, like, right now. Almost no one alive knows what this looks like, and if you're not sure, it's not happening.

10. Revolutionary (nest, front, column)

Hopefully you are just pretending.

11. Military (unit, force, formation)

War is bad. Hopefully you are pretending, reenacting, using a metaphor, or actually in power.

12. Criminal (gang, mafia, cartel)

Remember, nothing in Arvo does anything to hide anyone's IP. Don't expect some digital libertarian to defend you. No one on any real-world network will abet criminal activity.

Technology

What is Casbah, technically? Nothing. Casbah is an idea. It's not a codebase, like Arvo and Azimuth. It's just the way we expect humans to use the Arvo/Azimuth platform. It's a design pattern that we expect reality to echo. If Casbah is somehow a bad idea, humans will ignore it, like any misconceived pattern.

Think of an Casbah culture as like a school of fish, or a flock of pelicans. Such a group can be so well-ordered that it moves like a single organism. But it is completely decentralized and purely voluntary. Obviously, any such network relies on each member to bring their own true computer.

The school of fish or flock of birds may have a "leader" agent. For small cultures, especially, a star topology is fine. But the "leader" is just a "leader": primum inter pares, first among equals, completely replaceable by any other agent. Consensus is trivial in a high-trust society. Of course, not all cultures enjy perfect internal trust -- there is no perfect design.

The hard part in this design is figuring out which layers of the Arvo/Azimuth stack are neutral and shared by all cultures, and which should be custom, customized, or at least customizable. Perhaps unsurprisingly, Casbah draws this line at the boundary between kernel and application. If Arvo was Unix, which it isn't, for each culture you joined, you'd be running a daemon process on your own Unix box.

All cultures in Casbah share one Arvo/Azimuth system stack: one server, one identity, one protocol, interpreter, kernel, even productivity tools. But since the medium is the message, every culture must own its own social codebase. It doesn't have to customize its own code. It has to be able to.

The way this works in practice: all the neutral systems code on your ship is published by a neutral system software developer. But each culture publishes its own social agent. Arvo is very good at auto-publishing and auto-installing software updates. Your OS updates itself from the OS vendor; your cultures update themselves from the culture's own official publisher.

To prevent Arvo itself from becoming a single social graph, which might choke the growth of a true hyperculture, system-level social tools in Arvo are intentionally crippled. Arvo's only social tool is one-on-one direct messaging, and DMs are double opt-in: both sides have to actively ask before either user is notified.

A random Azimuth point, not a fellow citizen of any of your cultures, has no way to even get your attention. You have no need to give it any social trust. You can expect it not to misbehave technically. You can report it if it does.

Since humans are individually safe from other humans, cultures are collectively safe from other cultures. Cultures may dislike each other. They have no way to act on it. They have no weapons they can use against each other. They'll never have a way to make war; they'll always have a way to make peace.

The rights of cultures

What are the rights of cultures? Opinions vary. Here are seven we believe in, and which Arvo/Azimuth make possible.

No right can deliver itself. Rights, claimed or promised, which cannot be delivered, are frauds.

The seven rights are good rights -- on balance. Since nothing human is ever entirely good, no freedom is ever entirely good. More important, they're rights which Arvo can deliver -- and other platforms can't.

Every culture has the right to permanence

A culture with any plausible single point of failure will always be weak. It will be casual, fragile, and tentative. Even if it is none of these things, it would be even stronger if centerless.

Deep commitment requires deep resilience. Humans are foolish to invest serious time or energy in yet another central service that can die, go in the wrong direction, or just decide it doesn't need their business. Trusting only the biggest megacorps helps with this problem, somewhat.

Permanence and decentralization are synonyms. Anything that can be turned off with one switch is central and ephemeral. Anything that can't be is centerless and permanent.

There is one way for a centerless culture to die. If everyone in the culture leaves, and no one else joins, the culture dies. Otherwise, the culture will live forever.

How does Arvo deliver this right? Obviously, once everyone has their own true computer, permanence becomes straightforward. How could the loss of any node destroy the network, if it wanted to stay together?

Every culture has the right to a permanent and neutral platform

Any culture is vulnerable to its own infrastructure. First, the platform must itself be permanent and centerless. A culture can be less stable than its platform, but not more.

And the platform must be flat. It must be neutral. It must be a common carrier. It must not put itself in any position that forces it to pass judgment on cultures, or motivate any conflict between them.

Azimuth is permanent (on a blockchain) and centerless. But it is certainly not flat. Is it neutral? It seems to have its own governance mechanism. How does Azimuth's sponsorship structure and constitution map onto the cultures of Casbah?

They don't. The layers should not interact at all. Azimuth is a technical structure. Casbah is a social structure.

From the perspective of Casbah, Azimuth is a flat space of technically well-governed planets. Stars and galaxies do not exist -- they are network infrastructure, not social actors. The Azimuth sponsorship system exists to enforce this illusion, and route around technical abuses -- like DoS attacks.

The Azimuth sponsorship system does not give Casbah any assurance that any Azimuth point will be socially well-behaved. Your Azimuth sponsor is not a social or political authority, just a neutral provider of technical networking services. Your network sponsor has no reason to correlate with your cultural choices. Violations of this norm should be socially enforced -- the flatter, better-mixed the network is, the more stable it is. Every kind of star should sponsor every kind of planet.

It is true that social or political governance at the Azimuth layer could become necessary. It would become necessary if in some way Casbah completely failed as a governance pattern. While it is hard for us to see how this could happen, a plan B is always a good part of a safety architecture.

A network should remain flat. It is highly undesirable for network topology and network governance to get tangled together. In an emergency situation, though, Azimuth is a highly resilient structure. It can fracture easily without being destroyed. There are many ways to route and tunnel packets. If A and B have secure identities and a secure channel, it is hard to keep them from communicating.

Every culture has the right to govern itself

Each of the five self-ownership rights contains the others. The most basic is the essential human right of self-government. It's clear that a network of true computers, like an Casbah culture, has at least the abstract power to govern itself.

What can a culture do with self-government? It can define its own membership; it can edit its own content; it can write its own code; it can secure its own safety.

How does a culture govern itself? In any way it wants. In a fully decentralized culture, all nodes have all the information they need to lead -- or at least, to coordinate decisions. So no constitution, not even the simplest, most arbitrary monarchy, can permanently compromise the path to any other constitution. Once again, with Arvo/Azimuth, the technical problem is just not hard. Self-government falls out of the system's design.

Every culture has the right to compute itself

The medium is the message. When someone else owns your medium, someone else controls your message. When someone else controls your message, someone else controls your culture.

Concretely: there are no general-purpose social tools. Every tool for communicating affects the content of communication. The culture of 4chan could not be built on the codebase of Facebook, or vice versa.

The principle that a culture owns its own tools -- technically, that every Arvo ship runs a separate agent for every culture it joins, and that agent is published by the culture itself -- is the fundamental design feature of Casbah.

Where do we draw the line? There is such a thing as neutral technical infrastructure. It certainly isn't true that every culture needs its own filesystem and process scheduler. Also, what if a culture isn't a culture of programmers?

The line between neutral infrastructure and the social agent is the line between OS and application. Logically, every culture is its own distributed peer-to-peer network on top of Arvo. Fortunately, writing distributed applications in Arvo is much easier than on Unix -- given features like typed, encrypted, authenticated and validated, exactly-once CQRS messaging.

Still, most social agents will be doing mostly the same thing. Many of them (considering the popularity of phpBB and the like) will be doing exactly the same thing. Most cultures certainly won't be writing their own agents from scratch; they'll be snapping together parts from some kind of construction kit.

Every culture has the right to edit itself

We often describe some Internet toilet as unfiltered and uncensored. We think of these words as synonyms. They sound good together, so we say them both. We certainly don't want to live in the toilet, but there's a reason it exists.

To Casbah, censorship and filtering are orthogonal axes. The ideal user experience is not unfiltered and uncensored. Nor is it filtered and censored. It is filtered and uncensored.

Censorship and filtering are two forms of one process: editing. Editing is filtering if the editor is on the audience's side. Otherwise, it's censorship. Filtering is an act of customer service. Censorship is an act of political domination.

(This is a technical distinction, not a moral judgment. The outcome, like most real-world outcomes, is not perfect. We do believe there can be a legitimate case for censorship, even domination. We just don't see any technical way to support legitimate domination.)

For an online experience which is filtered but not censored, every culture must edit itself. This is only a corollary of the more general rule that every culture must govern itself.
If this had to be our definition of independence, it would do.

Note the relationship of this rule to the Arvo principle that every agent works only for its owner. Technically, a culture is a peer-to-peer network of citizen agents. When your ship is part of some culture, it's running a program whose code is published and updated by the institutions of that culture.

Any agent on your ship, since you selected and can unselect it, is your virtual employee. Your citizen agent works only for you. So the culture as a whole is also unconflicted. So, its institutions exist purely to serve its citizens, who can dissolve and/or replace them at any time. So, when these institutions edit, they are filtering and not censoring.

Every culture has the right to define itself

A centerless culture is like a school of fish. Who decides what fish are in the school? The fish. The fish are governed, but not ruled. Nothing is more self-governing than a school of fish.

At every moment, the whole school is completely voluntary. Any fish can leave the school. The school can leave any fish. The school can split in two. Two schools can merge into one. No school has any direct way to attack any other school.

Sometimes there is a fish at the head of a school. This leader fish might even be showing the other fish the way. But the leader is not a center. A center is essential; a leader is disposable. So long as all the data any leader needs is distributed around the network, any fish can lead.

Technically, communication within a decentralized culture does not usually need a complex peer-to-peer structure. A simple star topology, with one ship as the hub, is fine. But the hub is a leader, not a center -- any ship can be the hub.

Of course, no real-life fish can be in many schools at once. But in Casbah, one ship can be in many cultures at once. The real world has never seen quite this level of social flexibility. (Of course, if you need separate identities that no one can connect, you do need separate ships.)

Casbah produces freedom of association in unheard-of quantity and quality. Like censorship resistance and other liberties, this freedom is no unmixed good. Freedom never is. As usual, humans will have some adapting to do.

What are the consequences of cultural self-definition? What do cultures do when they can define their own membership -- when any two disagreeing factions, regardless of size, can fork the culture? And when any two cultures that become friendly can become one? Again, platforms this flexible are rare.

Let's look at the lifecycle of a culture. A culture has one minimum size: two. What serious relationship does not deserve a dedicated relationship app?

But once a culture has three members, it needs a government. Can a fourth join? Who? Someone needs to decide. The great project of self-definition, which never ends, begins.

Every culture starts with one founder, or just a few. Burning Man and Usenet both started as small groups of friends. Scaling little cults into big cultures, by accretion or by merger, is a critical goal. There is nothing wrong with keeping your cult small. But unless it's a very strange cult, you probably wouldn't mind meeting other cults like yours. And there probably are some. And, so long as the fit is not compromised, wider circles are more fun.

On the other hand, people fall out. Cultures grow by admission and marriage. They shrink by expulsion and divorce.

Because all cultures have this right of self-definition, all cultures can resolve unnecessary social conflicts, and heal unnecessary social fissures, by forks or merges respectively. When divorce is easy, no one needs to start throwing plates.

And even if Casbah starts as a froth of tiny, personal cults, over time we can expect these little cults to merge into larger, more interesting cultures. Even a group of three people defines a folkway and a culture. If those three people want to exist by themselves forever, that is their right. But most streams do eventually make it into some ocean.

Every culture has the right to protect itself

Peace, security, independence and isolation are all synonyms. Every culture has the right to all of them.

Casbah does not expect, require, or prevent any trust, communication or cooperation between cultures. It does prevent any direct conflict between cultures. Cultures are not competing for any resource, and have no direct way to damage each other.

There can be DoS attacks at the raw IP layer, which must be handled by an ISP. There can be DoS attacks at the Arvo layer, which require Azimuth governance. There can be real-world attacks, which require real-world governance.

But in the Casbah design, social interaction is within a culture. There is simply no way for citizens of one culture to abuse citizens of another, because there's no way for citizens of one culture to talk to citizens of another.

Appendix 1: adoption and development strategy

When can Casbah be born? The answer is simple: once Arvo is ready for human habitation. How will we show that Arvo is ready for human habitation? We'll move there ourselves.

In 2019, we'll throw away Github, Google Docs, and the other megacorp crutches we still rely on, and move our own development process to our own software. A company is a culture, too -- and it needs a more robust toolkit than just a social conversation.

Then we'll start settling Casbah. Of course, we are not in charge of Casbah -- it can perfectly well settle itself. No one needs our permission to start using this system. It can grow organically by itself.

But there's still a place for inorganic growth. We'll try to use our own resources to seed as many strong, healthy cultures as we can. Even though all cultures on Casbah are separate and independent, the quality of the whole system remains important.

Appendix 2: comparable approaches

Failure modes of megacomputers

Could not a megacorp simulate any network, on its megacomputer? Megacomputers work great.

The answer is that the social engineering of Casbah depends on the absence of central points of failure and control. (Usually any point of failure is a point of control, and vice versa.)

Failure modes in federated networks

The social failure modes of centralized megacomputers are known. One interesting intermediate position, not fully centralized and not fully decentralized, is a federated social network.

In a federated network, users do not control their own true computers. Users remain megacomputer clients. But the network is a real network. It is not one big megacomputer. It's an open network, communicating on a standard protocol, connecting a meta-community of megacomputers, some big and some small, some perhaps even personal.

Federation works. SMTP (email) is an old federated network; ActivityPub (Mastodon) is a young one. Federation is obviously an improvement on centralization. And any system software designer is always attracted to any sort of clever compromise, tradeoff or half-measure. So why go all the way to full decentralization?

As a user of a young network, your megacomputer (eg, Mastodon instance) is much less likely to be owned and controlled by a megacorp. It is much more likely to be socially aligned with the community, and may be even be run as a labor of love.

Interestingly, old federated networks seem to converge toward a more centralized structure. If SMTP did not exist, it is not clear that anyone would invent it. And most SMTP providers are purely corporate with no community connection. Using SMTP as a centralized service was a decision taken by the users of SMTP; we must respect and understand that choice.

Why does nature seem to abhor a federated network? What is the pain point of a federated network?

The pain point of centralized networks is tyranny. Tyranny in federated networks is harder to produce. But it is replaced by another pain point: war. The tyranny and war are virtual, but they're still nothing to love.

In a Mastodon-like network, there are two sources of politics. "Instance wars" between instances cause connectivity disruption. But instance wars are only the obvious kind of Mastodon war.

Because a typical instance has only one admin, typically a human being and not a corporation, that admin is a sort of digital baron -- whose users are digital peasants. Human beings who flee to the fringes of the Internet, the early adopters of any new anything, tend to be naturally intelligent, strong-willed people, not overly gifted with social skills.

Many good things can be said about this human culture. These so-called "nerds" don't tend to make great peasants, however. Nerds come with a strong emotional need to matter.

To satisfy this need for self-government, democracy can be applied. A megacomputer can be collectively run. A leader can be elected. Collective organization solves some problems, and creates others. For instance, a virtual constitution can be hard to enforce in the real world.

There are always complications. The complications always escalate. Was there ever a really clear line between democracy, revolution, and civil war? So the Mastodon user is the natural prey of two kinds of Mastodon war: the (foreign) instance war and the (domestic) civil war. The user may not care about war -- but war, as Trotsky put it, cares about the user. Can we blame anyone for preferring some safe tyranny?

Casbah avoids wars between cultures, because Casbah gives cultures no reason to fight each other. Casbah avoids wars within cultures, because cultures control their own edges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment