We’ve had enough of digital monopolies and surveillance capitalism. We want an alternative world that works for everyone, just like the original intention of the web and net.

We seek a world of open platforms and protocols with real choices of applications and services for people. We care about privacy, transparency and autonomy. Our tools and organisations should fundamentally be accountable and resilient.


Jörg F. Wittenberger [LibreList] Re: [redecentralize] Thoughts on decentralization and deperimeterization 2014-09-04 14:49:06 (6 years 7 mons 4 days 02:03:00 ago)

first of all: this is a great post.  I'm going to reply only to specific 

Am 02.09.2014 23:44, schrieb Dominic Tarr:
> I was very happy when I first saw ZeroTierOne, and also thought your
> "I want to believe" post was brilliant,
> but I think there is another challenge to decentralization that simply
> having addressability is not sufficient to address.
> Security.
> Building truly p2p systems must deal with not only regular distributed
> systems problems,
> but also the problem of incenting the participants in the network to
> behave properly.
> This is trivial if I own all the computers that run my system. But the
> system runs outside
> my own datacenter, on other people's computers then I need some was to
> ensure that
> they cooperate.
> Now, "ownership" is a concept deeply imbued into human society, but
> it's worth remembering
> that it is essentially a solution to this same problem. It all boils
> down to using coersion to ensure
> that participants in society behave in a approximately helpful manner.

The lesson to take away so far: at the end of the day there MUST be some 
way for one *user* to ensure other *users*  behave in helpful manner.

This is a social problem, hence we don't look for a technical solution.

We may however look for technical solutions to help.  Like supporting 
the user in selecting peers they know, trust (to some extend within some 
specific context and not another), talk to at all etc.

Zerotier seems to do a good job at letting them talk to each other. Good 
enough, you don't want a single tool responsible for everything.

> Humans on the other hand, have an abstracted notion of property, I
> maintain control of my bicycle
> by chaining it to something when I am not using it, and you maintain
> ownership of real estate by
> interfacing with systems of contracts and laws that date back
> thousands of years. Basically, you just
> punish people who transgress the property rights, this requires police
> and lawyers and courts and prisons,
> and a millitary to protect your property system from neibouring
> property systems...

We could also say: Property (as in "attributed & ensured by a legal 
system") is a virtual property (as in "being an attribute not having a 
physical component").

To decentralize therefore needs (among other things)
a) a component to model a legal system and
b) use (a) to model property
c) make sure that (b) is not tied to physical devices
d) provide proofs of (b) sufficient complete and obvious to be useful as 
evidence in a court case.

(The (d) I added because we better reject the idea of a pure 
machine-supported "proof" as applicable to humans for moral reasons.)

> Now - if you want to build a true p2p system, a decentralized system -
> that depends on people
> freely choosing to run your program, and also choosing not to abuse
> your protocol, or try to
> trick or deny service to other nodes in the network.

Who said that a user should ever *depend* on some people hosting your 
data without any responsibility?

Instead you want "some appropriate degree of decentralization". (There 
is no global jurisdiction either.  And we *should* abstain from 
invention, we need to *model properly* to actually model property.)

You want to depend only on responsible peers.  That's a trust solution 
again.  So not technical, but something the user MUST be able to 
decide.  (No matter how hard this is for the implementor.)

So the model of a legal system is actually important.  And "property" is 
the best example I know of.

If I chain my bike and you took it anyway, I'll need to find some 
witness who confirms that I'm the legal owner.

Translating this into "virtual space": if you manipulate my device in 
such a way that the state changes to "bike gone" (or if I completely 
loose my device, which is not different in that context), than I'd like 
to turn to my friends and ask them "please give me a correct copy of my 
inventory list again".

I'm well aware that I'm skipping here a lot of issues, but that's what 
it boils down to.

> There is the distributed systems problems, but this is the easy part.
> What if my blog post becomes insanely popular? will my laptop have to
> serve terabytes of data?
> what happens while I am disconnected from wifi inbetween cafes?
> Obviously the answer is to distribute the data - prehaps you can get
> my blog post from
> other people who have read it, not just from me. If a few hundred
> people from around the world
> have seen it, then there is probably a pretty good chance that someone
> currently online has it.
> But then what if they refuse to serve it, or serve the wrong thing?
> (this could be malicious or by accident)

These are *some* of those issues I skipped.  You are right: that's the 
easy part.  Once we got rid of the idea that we need servers the blog is 
no longer going to be on you laptop only.  It's going to be on the 
devices of the witnesses you choose for your blog as well. Those will be 
able to seed the distribution. Your readers will torrent the repository 
and compose your blog locally.

Malice or accident: if you witness don't do their job good enough on 
average, you probably want to exchange some for more reliable peers.  
(See above: this must be the users choice or it's too bad.)

> What you do have is crypto, and information processing powers many times greater
> than when the property system was created. Would it be possible to
> create a system that enforced cooperation using just information?
> I think this is possible, not just because there are computer systems
> which achive this within specific
> contexts, but also, because humans can already do this naturally.

I agree that using human society as the model is the most important step 
to be taken at this point.

We have property, right and contracts.  Every programmer will tell you 
that they can program everything they understand well enough to explain 
formally.  Why not these?

> Small scale groups do not use coersion,
> they use information - everyone involved pretty much knows what is
> going on, and if someone is being
> abusive they get blocked out.

I agree with the "everyone...knows" - in small groups everyone is 
usually "commissioned to witness" every ongoing process.

Though: being blocked out is a form of coercion.

>   Certainly, this system is not invunerable, but it *is* a system.
> A reputation system. It's not very scalable, and it's not very
> accurate (human gossip is quite lossy)
> but we do have something to go on here.

Feels as if I have missed something.  Dominic, which system are you 
referring to here?

> could you use crypto and computers to scale and secure a reputation
> system, without giving any particular
> node too much implicit trust?

Yes.  See above: I'd control whom I contract with to ensure those bear 
witness of facts I consider important.

This keeps the size of the network I have to maintain within reasonable 
bounds.  It make sure my secret and not so secret data goes only where I 
expect it to go.  And it scales because there is no chokepoint, since it 
does not need a global reputation system at all.