urbit/pub/docs/theory/network-goals.mdy
Raymond Pasco 6ac41c17dc Unhide.
sorry
2015-10-26 18:44:32 -04:00

566 lines
25 KiB
Plaintext

---
title: Network architecture: goals
sort: 4
---
# Design of a digital republic: part 1, goals
Some of us remember when the Internet was a social network.
Today, the Internet is a modem.
It's a wonderful modem. It connects you to all kinds of great
online services. Some of which are social "networks," but only
networks in the MBA sense. Really they're social *servers*:
giant virtual mainframes running one hardcoded program. 1976
called — it wants its acoustic coupler back.
So, you prefer 1996. So, you wish you had your decentralized
Internet back. So, you don't seem alone in this. So, we know
one thing: wishing hasn't made it happen.
## John Perry Barlow
It's interesting to go back and read John Perry Barlow's 1996
manifesto, the [Cyberspace Declaration of
Independence](https://projects.eff.org/~barlow/Declaration-Final.html),
Some parts of the *Declaration* are dated. Many parts seem
fresh, even urgent.
But in 2015, what stands out most about this document is its
incredible confidence that the Internet is inherently free, and
easily strong enough to announce and defend its own freedom,
against "Governments of the Industrial World, you weary giants of
flesh and steel."
Well... hindsight is 20/20. But in hindsight, even in 1996
things were starting to head south. Usenet — the brain of the
Internet, when the Internet had a brain — was already
disintegrating under the barbarian invasions. And where is the
WELL these days? (John Perry Barlow is probably still on it.)
While the Net has certainly scored a point or two against the
State, the State has scored a lot more points against the Net.
If the State wants your domain name, it takes it. If that's
independence, what does utter defeat and submission look like?
Worse: whatever state tyranny exists, it's obviously dwarfed by
the private, free-market, *corporate* tyrannosaurs that stalk the
cloud today. We can see this clearly by imagining all these
thunder-lizards were *actually part of the government*. "Private"
and "public" are just labels, after all.
Imagine a world in which LinkedIn, Facebook, Twitter, Apple and
the NSA were all in one big org chart. Is there anyone, of any
political stripe, who doesn't find this outcome creepy? It's
probably going to happen, in fact if not in form. While formal
nationalization is out of fashion, regulation easily achieves the
same result, while keeping the sacred words "private enteprise."
Reading Barlow's _Declaration_ is a lot like reading the real
Declaration, in an alternate history where Jefferson lost. In
2015, do we still believe in these goals? Arguably, we believe
in them more than ever. We basically live in 1996's nightmare.
We know exactly what to be afraid of. It's already here.
But we've lost the ability to believe we can *achieve* these
goals. 20 years ago, digital freedom seemed inevitable. Now it
seems impossible.
## Engineering digital freedom
Don't panic! This is a simple case of cause and effect. Digital
freedom isn't inevitable. It's also not impossible. It's quite
possible. It just requires *actual engineering work*.
If you think a result is inevitable, but it's not, you won't do
the work and you won't get the result. So, let's do the work.
Dealing is way better than worrying. 1996 worried about the
problem; 2016 ought to deal with it.
A constitution is not a declaration. It's not a list of ideals.
It's more like a bridge — an actual structure, that fails unless
it stands up to genuine load. A bridge isn't a bridge unless it
works. If you want a bridge, you have to build a bridge. It
doesn't typically happen that you set out to build something
else, but at the end it turns out you've built a bridge.
The designers of the Internet did not, of course, intend to
implement any of John Perry Barlow's ideals. How close they came
is in a way remarkable. Perhaps it was possible for the
designers of the Internet to build a global, decentralized social
network. They weren't trying to, and they didn't.
If we want a decentralized social network, we can't do it without
rigorous engineering work. And we can't limit our work to the
world of code. A decentralized network has to work not just
technically — but politically, economically, and socially.
Where do we go from here? How do we get back to 1996? Admit
we've failed, and try again. How else?
## Two axioms
It's rarely worth arguing over an ugly truth. Either you know
it, or you can't be argued into it. Or it's not true. So it's
better to just give it as an axiom. Two axioms:
One: the Internet can't be fixed. We *can't* redecentralize the
Internet. It has too many accumulated administrative and
technical misfeatures.
Two: there is no practical, completely decentralized network.
Government is a human invariant, in the digital world as in the
real world. Even Bitcoin has a central government.
We can't force you to accept these axioms. We'll just assume
they're true for the rest of this document. This means we're
designing a new, self-governing network on top of the Internet.
## On digital republics
The English word *republic* is from the Latin *res publica* -
"public thing." A republic is a government run as a public
trust, without any single point of failure - person or
institution.
Every (real) democracy is a republic, but not every republic is a
democracy. The distribution of both formal and actual authority
within a republic need not be in any way uniform. (Arguably, it
never is.)
The design goal of a republic is effective, durable and stable
governance. Humans and servers are inherently fallible.
Therefore this goal cannot be achieved without what humans call
*pluralism* and programmers *redundancy*. Or in other words,
decentralized governance.
Both the old Internet of the '80s and the distributed social
network built on top of it - Usenet - were very much digital
republics. ICANN still thinks of itself as a republic, but to
some it looks more like a corporation. In previous decades,
influence over collective decisions was more about personal
reputation than corporate authority - the way IETF still works.
A republic needs a constitution - a set of formal processes that
guides and shapes the real questions of governance, which are
always informal.
The republic is in a healthy state if its actual power structures
match this constitution. The Soviet Union had a fine
constitution. Its actual authority structures had little to do
with its official structures.
Again, the digital republic is a machine - if it's not
well-engineered, it won't work. There are three categories of
engineering we have to get right: political, economic, social.
## Political engineering
Our ideal network is actually not designed to *be* a digital
republic. It's designed to *become* a digital republic.
The most basic principle of political engineering is that there
is no one true constitution; the constitution has to fit the
polity. And our polity cannot succeed without changing. And we
care what it ends up as, much more than how it gets there.
### On young networks
In a young, small network, digital freedom is irrelevant. There
is no structural conflict of interest between the government and
the users. Everyone in the network is a pioneer, and all
pioneers have the same goal: found the republic. Anyone who
stops believing in the network just leaves.
The young network is a high-trust society in two ways: trust
between users, and trust in government. The main purpose
of decentralization is to prevent conflict among the distrusting.
Decentralization is superfluous in a high-trust society.
A young network can't be decentralized *even if it wants to be*.
Consider the early days of Bitcoin. Somewhere between the
initial release and now, there's a point in time T such that
before but not after T, Satoshi himself could have rebooted the
blockchain.
Not even with a 51% attack - but *just with an email*. He could
have said: I screwed something up, here's a new genesis block.
And everyone would have switched to the new blockchain, at the
mere verbal whim of Emperor Satoshi.
When Bitcoin was young, it was a centralized network, even though
it had a decentralized constitution. In practice, Satoshi was
above the constitution. Even if he didn't use it, he had an
authority above cryptography.
### Political engineering in Bitcoin
There are two layers of sovereignty in Bitcoin. The highest
layer is the choice of blockchain itself - the rule that the
longest chain is best is completely informal. Or to put it
differently, it's the principle that makes Bitcoin Bitcoin and
everything else an altcoin. No math is involved here - just the
agreement of human beings. Or in other words, politics.
Even the cryptographic layer rests on informal foundations.
The 51% attack on Bitcoin is well-known; any coalition that can
construct one is sovereign. But no such coup has happened, or
will - why?
Because the coalition is plural. Since each coup supporter would
be acting against its own self-interest by damaging the
reputation of the currency as a whole, the coup requires
self-destructive folly from multiple serious actors. Suicidal
collusion is never a realistic risk - or if it is, nothing can
mitigate it.
Even if one miner controlled 51%, their incentive against an
attack would be enormous, because they would destroy the
blockchain they captured. On the other hand, not everyone
responds sensibly to incentives. The purpose of a republican
constitution is to eliminate single points of incentive failure.
Bitcoin is a stable, mature republic - but it is *not* secured
just by cryptography, but also by political engineering.
### Political engineering in Reddit
Compare to an unstable, mature non-republic: Reddit.
2015's Reddit civil war is a dead ringer for one past conflict:
the English Civil War. As Marx and Pareto agree, all major civic
conflict arises when a new social class develops a collective
sense of its right to govern. The danger is most acute when a
governed class senses that the governors do not live up to the
standards of the governed.
Much as the Puritans looked down on the Cavaliers as immoral,
atheistic fops, the Reddit moderators looked down on the Reddit
staff - or certain parts of it - as faceless corporate drones.
When you've attained real political status in a community,
through hard work and genuine talent, it's contemptible to let
yourself be governed by people without the basic skills to even
pass as competent, much less exceptional, in this community. As
Napoleon said: every regime is safe so long as it is ruled by its
most talented citizens. And if it's not, it isn't.
But technically, Reddit couldn't just have a French Revolution.
Reddit is an inherently centralized site. It looks like a bunch
of different places, but that's an illusion. It's actually one
big mainframe. The Reddit staff is stuck running this mainframe.
The users have a lot of social capital invested in it.
If there was a technical mechanism that let the users of Reddit,
collectively and coherently, fork Reddit and take ownership with
a Tennis Court Oath, they certainly would have done so long ago.
The result could only be a digital republic. But they can't, so
Reddit's future is unclear. Man may be born free, but mainframe
guest accounts certainly aren't born free.
### From monarchy to republic
In real-world history we see a curious pattern: not only are
republics fairly rare, but every successful republic (from Athens
to Rome to England) started out as a successful monarchy.
Perhaps this is also the right way to build a digital republic?
Another way to state the political engineering problem that our
new network has to solve: maximize the chance of producing a
mature digital republic. There are two failure cases: failure,
and a mature non-republic. We should prefer the former - "range
safety," as a rocket scientist would say.
Our conclusion is that a young network is a monarchy (whether
under a BDFL or a faceless corporation), whether it likes it or
not. But the network must be technically designed to *evolve*
into a mature republic.
And - most critically - the republican evolution *cannot* be
prevented by the monarchical admins. When the evolution has to
happen, the monarchy has every incentive to help it succeed. If
it chooses to interfere instead, it will just get run over.
Reddit couldn't have a revolution; its code wasn't designed for a
revolution. A new network can and should be designed for just
that. Revolution may not be the ideal way to give birth to a
republic, but it certainly works and it's better than nothing.
Thus what seems like an optimal political design: the ugly,
centralized, young larva that's designed to molt into a
beautiful, mature, decentralized butterfly. And once mature, the
larva must molt or die — not keep growing into a gigantic,
man-eating caterpillar of death.
## Economic engineering
Economically, a new network should bootstrap. It should be
designed to generate revenue that funds its own development.
Ideally, its operators accept no traditional investment at all.
A digital-token business is no novelty in the age of Bitcoin.
But a network address space is not at all the same thing as a
digital currency. When we look at current address spaces of
meaningful economic weight - DNS domains, IPv4 addresses, even
Twitter handles - we see not digital money, but digital *land*.
### On digital land
Digital land is very different from digital money. People mine
gold, but nobody mines land. Transactions in money are common,
fungible, and should involve minimal friction. Transactions in
land are rare, unique, and involve significant friction. And
most important, land has intrinsic utility; money does not.
For example, Bitcoin needs a blockchain to solve the double spend
problem. A blockchain is very expensive. If we consider mining
dilution as a cost, a Bitcoin transaction costs multiple dollars.
That cost is exacted as a dilution tax on all holders (arguably,
correct accounting in BTC uses a "normalized BTC" unit which is
the fraction of all BTC outstanding), but it remains a cost.
For certain values of "solved," the double spend problem is also
solved by a trusted escrow agent. For digital money, escrow is
not a workable general solution. For digital land, it may be.
Escrow is certainly orders of magnitude cheaper than a blockchain.
Digital land in a decentralized system still needs to be owned
cryptographically, like Bitcoin. But as with real property,
it doesn't need to be mathematically impossible to steal digital
property. It just needs to be realistically impractical. If we
can ensure that those with the power to steal lack the motive,
and those with the motive lack the power, our design works.
For digital land, a blockchain is an unnecessary expense. So
digital land has no mining. But from the Bitcoin purist's
perspective, any altcoin without mining is "100% premined" - ie,
probably a scam. Digital land is not digital currency, but it's
silly to argue over definitions.
### A moral theory of digital land
The libertarian philosophy of Murray Rothbard is the normative
belief system of Bitcoin. It's easy to explain digital land in
Rothbardian terms: ownership is on the homesteading principle.
Property in land, as anything, is owned by those who create it -
which in real land means enclosing and cultivating it. Digital
land is just the same, but creation is a simpler process - and
it never involves conquest and/or genocide of previous owners.
All this is precisely according to Dr. Rothbard.
Intuitively: if you didn't do any real work to create your
premined altcoin, it's a scam. If not, not. It's not necessary
to appeal to Rothbard to see why this makes sense.
### Economic dynamics
Any bootstrapping address space can define a metric which is the
fraction of namespace value recycled into development cost: the
erecycle rate*. In a sense, if the recycle rate is 100%, the
network does not leak economic energy.
(In a scam, this non-leaked economic energy non-leaks into the
scammer's pocket. In a non-scam, it goes back into the engine.
It's expensive to settle any new America; if that America has
positive general utility, its value when settled should subsidize
the cost of settling it. Or at least, a design that doesn't work
this way is like Newcomen's steam engine, not Watt's.)
One tradeoff against perfect recycling is the importance of
ownership decentralization. If you own an entire network because
you created it, you can increase the value of the whole address
space by giving blocks away. You may even increase the value of
your own position.
A monopolized network is not politically healthy. So its
economic value is lower. So — if the network is properly
designed and structured — it can be stably demonopolized. The
monopoly power achieved by combining large positions is smaller
than the reputation cost of remonopolization, so centrifugal
force dominates and the system stays decentralized.
Mining is one way to create initial demonopoly. But if it's not
actually necessary, mining has a recycle rate of zero. In a
blockchain network, mining is a necessary service and pays for
itself. In digital real estate, it would be a bad design.
The objective of demonopolization isn't necessarily a *fair*
distribution of real estate. Fairness is nice - but from an
engineering perspective, to create the incentive structure of a
true republic, all that's needed is nontrivial decentralization.
Not much is needed to maintain the stabilizing incentives.
## Regulatory engineering
There's another kind of "political engineering." Our new network
is a sort of second-level political entity; but it exists within
a first-level entity, the real government.
Minimizing bad interactions with the real government involves
three simple steps. First, don't look like you're breaking the
law. Second, don't break the law. Third, *really* don't break
the spirit of the law.
Fortunately, digital land (such as DNS domains or IPv4 blocks)
already exists and is largely unregulated. Or rather, it's
regulated perfectly well by standard property law.
This isn't just an accident of history. If DNS domains became a
useful way to launder money, or any kind of sink of financial
skulduggery, carders, pedobears, etc - the baleful eye of the
real government would rapidly fall on them.
It's incumbent on anyone creating a new network of any kind not
just to avoid using it *yourself* for criminal purposes, but to
design it so that *it's not useful* for criminal purposes. A
darknet is not a machine for producing digital freedom. It's the
opposite - an excuse for installing digital tyranny.
## Social engineering
Bringing people together is an easy problem for any social
network. The hard problem is keeping them apart. In other
words, the hard problem is *filtering*. Society is filtering.
A society without filters is a whirling, beige mess of atoms in a
blender. Beigeworld is an inhuman antisociety. A digital
republic is a garden; not only does a garden smell good, but
every flower smells good. An unfiltered network is a sewer. All
sewers have exactly the same smell.
There are four orthogonal classes of filtering: topic, community,
flavor and quality. Filtering should be orthogonal to content
type: the topic filter "sci.physics" can be a chatroom, a
preprint archive and a streaming video channel.
### Filtering: topic
Users themselves want to keep themselves apart in structured
ways. Topic filtering is the most basic. Imagine a Reddit or a
Usenet with only one group. It would consist only of noise.
For topic filtering, the ideal network has a single, organized
global topic tree (ontology). Call it half Usenet, half
Wikipedia and half the Dewey Decimal System.
### Filtering: community
Every topic deserves a community. But not every community is a
topic - a node in the ontology. To put it differently, not every
community should have a global name. The existence of small,
informal, private communities - tribes and microtribes - is
essential to a healthy network.
The most inhuman form of community filtering is the form in which
"communities" are inferred algorithmically from an unstructured
social graph on a social server. A community is a tribe, not a
proximity cluster. Humans are a tribal species and have
exquisite instincts for interactions in medium-sized groups.
### Filtering: flavor
Flavor filtering is the only major filtering class that's poorly
developed in presently deployed systems.
Suppose you're building an online grocery store. Suppose one
feature of your store is a profile setting where users can mark
that they're vegetarians.
There is no use in asking vegetarians to shop for meat. At best,
you're trolling them; at worst, you're boring them. A cooking
site should not show them recipes for rack of lamb. Etc.
More broadly, many forms of discourse have vibrant flavors which
other users are inherently uninterested in tasting. Like topics,
these flavors naturally form trees - some users may naturally
block all sexual content, others just a subset.
But flavors are not topics. Topic can imply flavor - the bondage
board will have bondage-flavored content. Not all communities
are topical. Not all all topical communities stick to the point
in every single communication.
A key component of flavor-oriented filtering is the principle
that flavor is marked by the content author, and enforced by
social convention in the community. A well-run community - and
not all communities will be well-run - enforces flavor marking
even among the locally dominant majority.
Anyone reading this has been subject to speech codes, of one sort
or another, since they were old enough to talk. There's a reason
for this: blasphemy and/or heresy is disruptive and antisocial,
absolutely regardless of its actual intellectual merit.
If we have a technical way to filter out blasphemy, we don't need
to suppress it with coercive force. Imagine a world in which,
not just in theory but also in practice, you could say anything
you wanted - so long as you marked it as what it was.
### Filtering: quality
All other filtering problems are unimportant next to quality.
Any successful digital republic must be in some sense a successor
of Usenet, whose defeat by the barbarians is a matter of history.
Alas, no one really knows how to do decentralized quality
filtering. (Even centralized filtering doesn't work well.)
Fortunately, a young network is inherently high-quality.
Low-quality content is parasitic. It develops only as a network
matures. There's plenty of time to work on the outer walls while
the network boots up.
And we can state one social-engineering goal which is not
*sufficient* for barbarian resistance, but perhaps almost
*necessary*. This is *expansion resistance*: the difficulty of
creating a new identity.
If expansion resistance is zero, anyone can create infinite
numbers of identities; Sybil attacks become trivial. Expansion
resistance is negligible in email; spam filtering works, kind of;
it can save SMTP, it certainly couldn't *create* SMTP. Email has
a lot in common with 14th-century Constantinople.
Metafilter (which anyone can join for $5) has solid expansion
resistance; it may not be perfect, but it's certainly spamless.
And the grand champion is certainly the '80s Arpanet, where where
creating an identity involved applying to a university or getting
a tech job - effectively, infinite expansion resistance.
Imagine a genuinely abuse-free global, decentralized network,
where no one had ever heard of a firewall. Usenet was a fragile
flower that could only exist under this glass bell. We can't
go back to the Arpanet, but we have to understand why it worked.
Broadly, disposable identities and sockpuppets are the enemy of
Internet civilization. The principle of one identity per person,
persona or corporation is an absolute principle of netiquette.
Genuine multiple personas exist - it's one thing to split your
own identity between person and persona, name and *nom de plume*
or *nom de drag* - but they're rare, and an easy exception.
One of the most praised texts in 20th-century political science
is s James Scott's _Seeing Like A State_. Scott points out that
successful governments encourage social structures which are
structurally governable, like a forester planting rows of trees
in straight lines. People today have names like "Carter" because
medieval English barons made their peasants take surnames, just
so their tax databases would have valid primary keys.
A naive libertarian might call this a bad thing. Simplicity is
not tyranny; simple government is good government, which is the
opposite of tyranny. The simpler its task, the less energy the
government must exert to achieve the same output. Anarchy and
tyranny are cousins; so are liberty and order.
# Conclusion
Goals and ideals are different things. An ideal is something you
want. A goal is an ideal, plus a realistic plan to get it.
Goals are more interesting than ideals, don't you think?
Goals and features are also different things. What are the
features of a network that attempts to achieve these design
goals? In the next installment, we'll look at how our own
network — [Urbit](http://urbit.org) — measures up to these
yardsticks.