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.


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: