Decentralized Convergence vs Decentralized Agents (Cooperating in a Hostile, Mutually Suspicious Network)

Most of the discourse on decentralized systems these days is blockchain-heavy. In general, I think people tend to not mean the same thing by “blockchain” but whatever.

In my view there are really three things (or two things, with one that splits into two):

  • Decentralized Agents: this is really the realm of E, actors, the traditional networked ocap space. This is also where Spritely spends most of its time.
  • Decentralized Convergent Machines: This is where many different parties are producing the same abstracted “machine”. This actually subdivides depending on who gets to govern accepted messages (and to a lesser degree, who’s replicating the machine but not necessarily governing, but that’s just deterministic replay, not very interesting):
    • Smaller-scale governance, eg quorums is the realm of OpenCroquet and (@zarutian’s favorite) Snes9x’s multtiplayer, “permissioned blockchains” (I don’t like that term) like Hyperledger, etc.
    • Global governance, eg blockchains are where most of the zeitgeist is.

There’s actually another thing: decentralized data storage, eg content-addressed systems (eg IPFS, Tahoe-LAFS). This is more static, but can be reified into something active by turning otherwise static documents into messages to be processed by a machine.

This is an early stab at trying to explain these ideas. Really needs expansion, and more thinking on the terms.

1 Like

The Agoric folks use the adjectives solo, qourum, and (blockchain) consensus on vats per slide 6 of Deans talk on train and hotel problem.

I propose SMPC-on-virtual-cpu&mem as yet another such kind of vat.

Distributed convergence I think is also of the domain of Conflict free Replicated Data Types and such compsci fun.

2 Likes

Arguably, also the Unum Pattern too. But two big differences from CRDTs are that the unum pattern is focused more on behavior rather than data and that information/authority asymmetry can be okay. CRDTs can be an “unum construction kit” though and we’d like to implement a library of them in Goblins.

1 Like

[edited] I’d like to quibble about ‘distributed’ vs. ‘decentralized’ because… that’s what I do. A decentralized X is an X that is individually distributed around to various places, without any ‘center’. A decentralized agent system would be an agent system that is not centralized (no place that’s the center, such as an agent store). But a decentralized agent would have to be an individual agent that is not centralized - maybe that would be an unum? or something ledger-based, etc. So… I’m pretty sure you mean either ‘distributed agents’ or ‘decentralized agent system’ instead of ‘decentralized agents’. Yes the latter is a thing perhaps but it’s a different thing.

1 Like

Good points @jar! The quibbling is welcome, and exactly why we opened this thread. :slight_smile: