Fluid mode via Holochain: putting theory into practice

I’ll be talking about Holochain, a crypto project I’m particularly interested in, and how it relates to how we make and share meaning in society.

This is an attempt to synthesise two illustrations I’ve previously made that point at a theoretical cluster some of us are calling metarationality, metasystematicity or fluid mode with what I think is currently one of the clearest attempts to make that theoretical cluster into a reality. I’ll try to be clear with the tech, but it does help if you understand a bit about how blockchains work and what makes them useful for decentralisation.

There is a lot of theory and implementation detail about Holochain that I’m leaving out – if you are interested I recommend you read this super clear introduction by my friend Moritz, check out more of Holochain’s online material or take a stab at their technical but well thought-out whitepaper.

Hierarchy versus grammar

When I’m ‘thinking in systems’ I’m thinking of the system as both a set of things – nodes, objects or agents – and the rules for interaction between the things. We can use this model to think about technical systems (computer networks), social systems (communities and institutions), and belief systems (ideologies and paradigms). Both the loosely-defined metarationality community and the Holochain team are rethinking how these human-made systems are designed, and what it even means for a system to be ‘designed’ at all.

I wrote in an earlier essay about existing as a human within two different types of systems – formal and playful – using the metaphors of ballet and contact dance. Within the context of being a ballet student or ballet dancer, there is a set of clear aims and a linear, planned process for training your body and mind to work together to achieve those aims. The aim is an abstract direction, a platonic ideal – the ‘perfect ballet dancer’ does not exist, but the abstract idea is largely the same for all dancers. In contact dance there is no abstract ideal. There are qualities of beauty, expression, aliveness that you might be aiming towards, but each dancer’s conception of that ideal is different. What the system provides is a grammar; rules for building interactions between dancers. There are no ‘mistakes’ in contact dance, in the sense of things that are not predicted by a formal system of movement. There are, definition, mistakes in ballet. In ballet, the purpose of the system exists outside of the movement – the goal is to be a beautiful or excellent dancer, or to perform for an audience. In contact dance the purpose is inherent in the movement; it’s just to dance.

A lot of the systems we exist within in modern society act more like formal systems, which is excellent for coordinating large groups of people or objects but not as good for maximising the flourishing of each person or organism within the system. Moreover, each formal societal system thinks it is the best, and must beat out all the other systems for the prize of becoming ‘how society works’. I’d argue that we’re in the process of noticing (slowly from the perspective of humans, quickly from the perspective of history) that no one system can actually be ‘how society works’ and that we need a new way of thinking about how these formal systems influence and relate to how society is organised.

What is the current paradigm?

In another earlier essay I discussed David Chapman’s clear but simple model that maps Robert Kegan’s stages of adult development to the organisation of society.

Stage 3 – Pre-modern, relationship-driven, pre-theoretical stage, where coordination of groups of people happens by appealing to relationships and the emotions that go along with them. (e.g. tribalism, many corporations, extended families). Group size is limited by peoples’ ability to keep track of relationships.
Stage 4 – Modern stage, theoretical stage, where coordination of groups of people happens by the evolution of a single shared belief system or set of values, and appealing to that set of values. E.g. Christianity, capitalism, democracy. Group size is often limited by the surveillance/control ability of the leaders, and their ability to suppress competing narratives.
Stage 5 – Metamodern or fluid stage, after there’s a realisation that no one system can adequately explain all of reality (*cough* the death of the metanarrative). A stable version of this metamodern stage allows people and groups to share parts of belief systems through shared grammars, and tools that help one system interact with another.

Chapman’s argument is that the postmodern movement of the last 50 yrs or so marks a transition between the modern stage and whatever this stage 5 is, after a loss of faith in belief systems we used to think were infallible and at the cusp of a larger transition to a new mode of being, and that right now there’s an opportunity to help society build a new way of relating to meaning that doesn’t rely on 100% shared data and rules.

The founders of Holochain, with a wealth of knowledge in systems thinking, mechanism and currency design, seem to be steeped already in this Stage 5 thinking. They’ve long ago somehow already drunk the Kool-Aid. They’ve argued that the fundamental shift that needs to happen in order to bring this kind of meta-system about is from designing in terms of data to designing in terms of agents. Holochains are agent-centric, which contrasts with blockchains, which are data-centric.

Hang on, since when are blockchains ‘modern’? Aren’t they meant to be all about decentralisation and not letting any centralised actor take control?

Well, Holochain argues that blockchain-based systems are just as formal and restrictive as their centralised counterparts – just in different ways. What blockchain people mean when they talk about consensus is that everybody considers the same piece of information to be true. The aim of a data-centric approach is to create one single shared data reality or truth amongst all nodes in the system (in this case, computers connecting to the network). What this means is:

‘Blockchains don’t record a universal ordering of events – they manufacture a single authoritative ordering of events – by stringing together a tiny fragment of local vantage points into one global record that has passed validation rules.’

Holochain whitepaper

In a blockchain, every single node must follow the same set of rules about what can be added to the chain, and must hold an identical copy of the whole chain. In practice, as we’ve already seen with Bitcoin and Ethereum, this means that nodes rapidly become huge, expensive and unwieldy, and require specialised equipment to run. This limits participation to a few big actors (e.g. a handful of mining companies taking advantage of cheap Chinese electricity in Inner Mongolia). Running a Bitcoin node now takes 125GB of disk space, and reports say it’s difficult, if not impossible, to run a full Ethereum node on a consumer computer. This problem will only get worse as these blockchains become more popular. In smaller blockchains it is also possible to just spend a bunch of money (with a 51% attack) in order to have complete control over the chain’s data reality.

In a data-centric system, disagreeing with the consensus is costly – you have to hard fork the entire blockchain (and lose the advantages of the network effects), or you are just evicted from a given space (in the case of centralised systems like Facebook and Twitter). Because there is only one reality, who controls that reality becomes incredibly important.

What is Holochain’s suggested alternative?

‘The term consensus, as normally used, implies deliberation with regard to differences and work on crafting a perspective that holds for all parties, rather than simply selecting one party’s dataset at random.’ 
Holochain whitepaper

According to the Holochain founders, the problem with blockchain mechanism design is the need for for ‘absolute confidence’ in order to create a trustless system.

We might be able to agree that a certain ordering of bits was placed somewhere at a certain time, but disagree on the meaning at the level of real-world identity, ownership, agreements or collective decision-making. Agents can only be sure that they see a certain piece of data and that it matches a certain model they already had. Essentially, meaning-making is a continually contested, partial and evolving activity.

The aim of an agent-centric approach is to allow nodes to share independently evolving data realities or truths. In a Holochain each node has their own personal chain, which has its own rules about what can be added to it, and what the threshold is for trusting a given data source (including other nodes). Every agent keeps track of their representation of that portion of reality that is of importance to them – given they need to manage trade-offs between the desire for trust and the cost of validation for particular circumstances. Each app asks that users use a particular set of rules in order to contribute to its shared reality, and different apps have different needs for security and cost-effectiveness. E.g. checking whether an email is spam or not and validating that a large financial transaction was sent require different levels of trust and different levels of willingness to spend resources on preventing a trust violation.

How is this metarational?

In a Holochain-based system, nodes do not need to agree to one singular set of rules and create one unified system. They only need to agree on enough rules between individual nodes and groups of nodes to establish the level of trust needed for each application they use together. As pointed out in the Holochain whitepaper, a given group of nodes could agree on a set of rules identical to those of a blockchain like Bitcoin or Ethereum – they think of a Holochain node’s parameters as being on a spectrum of highly trusting to trustless where on the ‘trustless’ end you could theoretically just replicate a blockchain within the Holochain paradigm.

On the practical, technical side, this means that from the outset Holochain avoids the scaling problems that blockchains like Bitcoin (that require validation by all nodes) are currently experiencing. On the philosophical side, this means the system does not demand a single, unified ‘truth’. You and I could run Holochain nodes on our phones that each validate the other’s data using the cryptographic hash functions that were iriginally developed as part of blockchain systems like Bitcoin. We wouldn’t need to pay to store data on the Holochains, if we were storing the data ourselves. Moreover, no two nodes would hold the same set of data, but they would share parts with each other in order to form consensus for particular applications.

I would argue that the fully realised vision of Holochain is a playful system. Each node is interacting with other nodes to build its own individual set of truths, and clusters of rules that multiple nodes follow in order to coordinate constitute ‘grammars’ or ways of playing together – rather than complete top-down recipes for defining consensus on reality. You could imagine a Holochain app being more like a grammar or a defined way for people to interact with each other in a way that is truly peer-to-peer, rather than a central ‘location’ where people connect (which is the current metaphor for apps, social networks and ‘platforms’). A truly decentralised holochain Twitter, for example, might allow you to choose your thresholds for parameters about message length, spamminess, or who can connect with you, and you wouldn’t be reliant on a central party to host your data, or protect the platform on your behalf. You could imagine it becoming easier for communities to split when differences emerge without losing network benefits – they’d just change their validation thresholds (how strict they are on who they accept) and let their membranes breathe differently – as opposed to centralised networks like FB with strictly defined, opaque membranes.

There is still a lot more to think about, and a lot more for me personally to learn about Holochain, fluid mode and agent-centric models more broadly. I don’t know how well the Holochain paradigm (and it is more of a paradigm than a single system) hold up when faced with zero-sum actors who essentially provide centralised services for simplicity and security, like Coinbase increasingly does in the regular crypto community. It doesn’t matter if the system is decentralised if you access it using a wallet whose private keys are controlled in a centralised way by a private for-profit company. Other blockchains inadvertently rely on trust in the central actors, like Ethereum’s Vitalik Buterin, in lieu of social trust in the mathematic security of the system. It remains to be seen whether Holochain as a concept could see widespread adoption without a correspondingly broad paradigm shift into positive-sum, fluid-mode thinking by a large fraction of the population. Because if it does, then adoption will be a gargantuan task, and educating app developers about the new development paradigm will require a lot of effort.

What’s next?

Personally, I’m going to continue to learn more about the Holochain paradigm, how to build apps using it, and its intellectual influences. I think the question of ‘how does an application designed for fluid mode from the outset behave in practice?’ is fascinating and a question I definitely don’t have an answer to yet. Other crypto communities like Ethereum and Bitcoin have struggled to make the user experience simple and easy, and doing so in complicated crypto systems while giving the user full control of their data and experience is hard. I also don’t really know what the developer incentives are within the system (other than ideological) – what incentivises developers to build apps that truly maximise the agentiness of their users? What happens when developer and user interests clash? I don’t know yet. Developer business models also seem tricky, and I’d like to learn more about that.

I’d also love to hear about other projects that seem to be doing this playful, fluid-mode thing in practice. One of the tricky parts is that there are so many groups with so many influences that often you have no idea that a nearby group is working on a similar thing because the language is so unfamiliar. If you know of projects like this, let me know!