Subject: Re: [hrpc] BGP and politics

From: Stephane Bortzmeyer <[email-masked]>
Date: Mon, 5 Feb 2018 09:26:22 +0100

On Tue, Jan 23, 2018 at 11:02:20AM +0100,
 Niels ten Oever <[email-masked]> wrote 
 a message of 92 lines which said:

> Thanks for this, I think this paper makes a similar point:
> 
> https://policyreview.info/articles/analysis/myth-decentralised-internet

I find this paper hard to read. It claims several times that BGP is
not decentralised but distributed but it apparently never defines
these terms. (And there is no agreed-upon definition, they are very
fuzzy terms, mostly used to make a political point, not for a rigorous
analysis.)

It is an interesting question to see which one of BGP and DNS is the
closest from a "perfect" peer-to-peer ideal. IMHO, BGP is "more P2P"
(there is no root, no tree structure) but the entry barrier is higher
(there are much less AS than domains).

---

From: Harry Halpin <[email-masked]>
Date: Mon, 5 Feb 2018 17:50:35 +0100 (CET)

----- Mail original -----
> De: "Stephane Bortzmeyer" <[email-masked]>
> À: "Niels ten Oever" <[email-masked]>
> Cc: "Corinne Cath" <[email-masked]>, "Stephane Bortzmeyer" <[email-masked]>, [email-masked]
> Envoyé: Lundi 5 Février 2018 09:26:22
> Objet: Re: [hrpc] BGP and politics
> 

In terms of defining decentralized vs. distributed, we put forward this definition in our (hopefully!) rigorous analysis over the last 15 years of research. 

Decentralized system:  A distributed system in which multiple authorities control different components and no single authority is fully trusted by all others.

Thus, decentralized systems are subsets of distributed systems. The classic definition of distributed systems is from Lamport:

Distributed system: A system with multiple components that have their behavior co-ordinated via message passing. These components are usually spatially sepraated and communicate using a network, and may be managed by a single root of trust or authority.

The full paper "Systematizing Decentralization and Privacy" is here, and while aimed at technical systems designers, should be readable outside of engineering circles:
https://www.petsymposium.org/2017/papers/issue4/paper87-2017-4-source.pdf

The classic definition of a distributed system we take from Lamport's 1978 classic: "Time, clocks, and the ordering of events in a distributed system" Our paper updates this and I would be interested in any other coherent definitions.

  yours,
      harry
> _______________________________________________
> hrpc mailing list
> [email-masked]
> https://www.irtf.org/mailman/listinfo/hrpc
>

---

From: Stephane Bortzmeyer <[email-masked]>
Date: Mon, 5 Feb 2018 18:10:35 +0100

On Mon, Feb 05, 2018 at 05:50:35PM +0100,
 Harry Halpin <[email-masked]> wrote 
 a message of 64 lines which said:

> Decentralized system:  A distributed system in which multiple
> authorities control different components and no single authority is
> fully trusted by all others.

That's a definition among many others. For instance, other people
define "decentralized" by "changing something can be done without any
involvment of another actor" (the opposite of "centralized").

> The classic definition of distributed systems is from Lamport:
> 
> Distributed system: A system with multiple components that have
> their behavior co-ordinated via message passing. These components
> are usually spatially sepraated and communicate using a network, and
> may be managed by a single root of trust or authority.

It is awfully outdated. By this definition, Gmail is a distributed
system. And so is L.root-servers.net.

The problem with Lamport's definition (it reflects its age) is that it
focus on machines, not on organisations. A distributed system is when
there are several authorities, the fact that there are several
machines is a detail.

---

From: Harry Halpin <[email-masked]>
Date: Mon, 5 Feb 2018 18:42:39 +0100 (CET)

----- Mail original -----
> À: "Harry Halpin" <[email-masked]>
> Cc: "Stephane Bortzmeyer" <[email-masked]>, "Niels ten Oever" <[email-masked]>, "Corinne Cath"
> <[email-masked]>, [email-masked]
> Envoyé: Lundi 5 Février 2018 18:10:35

I agree that it's tricky. Perhaps that fits within our definition. If no single authority needs to be consulted in a given system before changing a component, then it's a decentralized system. 

I would be interested in published serious written works (including RFCs) with different definitions. I do think harmonizing definitions is important for technical interoperability as well as social understanding. 

> there are several authorities, the fact that there are several

If there's a better or newer definition, I'd like to know. According to Google, Gmail is a self-described distributed system, as are most cloud technologies. The reason is how to create such technologies are typically taught in courses on "Distributed Systems" at universities, using in textbooks (i.e Nancy Lynch textbook) called "Distributed Systems", and most of these systems use a variant of Lamport's Paxos for maintaining state. Of course, it's OK to create another definition for "distributed systems" other than the one used by engineers, but one should then be prepared to confuse most engineers and that might not help a genuine interdisciplinary understanding. I would hope that HPRC documenets are to be read by working engineers, the kind that normally read IETF docs.

The key definitional point, phrase it however you will, is that there is no single trusted authority. On the machine side, an authority may include such simple things like clocks. On the organizational side, this may mean a 'governing body' ranging from a national government (ISO) to the IAB (IETF). For example, in the paper we point out that Tor has both technical centralization (directory authorities) and social centralizaiton (i.e. the Tor Project coders determine commits in a centralized manner) so it doesn't really count as a fully decentralized system, but a hybrid model (as it does have peer to peer routing). On the social side, neither the IETF nor the ISO would count as decentralized. On the standards side, the Open Web Foundation agreement was the closest I think we had to a "decentralized" standards body, i.e. an agreement anyone could copy without consulting anyone, with the results all being the same.  

Perhaps a bitcoin example helps. Enterprise blockchains (federated, permissioned, ala Enterprise Ethereum Alliance) are not decentralized if a single authority decides "who is in" and "who is out." On the other hand, Bitcoin as such allows any one to join and independently audit the other components in the system. So, Bitcoin counts as decentralized (at least on paper, although in practice there's the large Chinese mining pools in practice). 

The philosophical question is whether distributed systems have 'several' authorities and if real decentralized systems exist with 'no authority.'  However, even in p2p systems - usually upheld as some kind of 'pure decentralized system' - one *still* has to trust other people to route your packets, it's just you can change that trust in decentralized systems. The closest you can come to a 'no authority' system probably would be point-to-point ad-hoc networks, but there are few working systems in that space. In fact, we could find only very few and are looking for me. One informal conclusion of our work is that seems that working systems require some trust relationship, even if it isn't assumed (Don't Trust, Verify!) and thus the system can be decentralized.

---

From: Niels ten Oever <[email-masked]>
Date: Tue, 13 Feb 2018 13:31:24 +0100

> (there are much less AS than domains).

This PhD thesis tries to break this down, and is also wrestling with the
socio-technical aspects of the Internet infrastructure and architecture:

https://www.ischool.berkeley.edu/sites/default/files/ashwin-dissertation.pdf