Holochain Forum

What Does “Agent-Centric” Mean? How is it different than “Data-Centric?”

Traditional blockchains and client/server systems start from a data-centric ontology. They are built around the concept that data is a ‘thing’ that exists in and of itself apart from any observer.

An agent-centric ontology views data as a perspective or an observation shared by multiple individuals. We believe this is the way the real world works: both Einstein and quantum physicists assert that physical phenomena are relative to the context of the observer. Variances in observations indicate that there is no one, reliable, objective reality.

This may all seem too theoretical, but we can even observe this in daily life. What is the temperature of the room around you? The thermostat on the wall records one temperature, the thermometer stuck on the window and bathed in full sunlight records another, the decorative thing your aunt gave you is wildly miscalibrated, and your nose feels cold. There’s no one true room temperature, only a set of perspectives.

This also has serious implications for how a distributed system is built. When faced with the objective truth about subjectivity, you have choices to make. Client/server chooses to accept one perspective as canonical and throw away all other perspectives. Blockchain does the same thing, expending a lot of energy getting everyone to agree on that perspective. But Holochain allows each agent to record their own perspective, only expending energy on consensus where it matters — among the agents who actually care about the data they’re trying to agree upon. This avoids the power concentration of client/server and the inefficiency of blockchain.

Using tech that embodies an agent-centric mindset also enables vastly richer interactions and collaboration. All perspectives are preserved and come together to form a more comprehensive picture of the whole.

@pauldaoust Can you or others please provide some examples and/or additional clarification on this concept? I don’t understand the idea that “…data is made up of shared experiences seen from many points of view.” I love that “…it’s a collection of shared, relative experiences”, I’m just not understanding how that is the basis of how Holochain treats data (or what difference that will make in using Holochain vs blockchain).

@Rob When I was first introduced to Holochain, the agent centric concept was one of the most challenging concept for me to understand.

In Holochain, every piece of data (called an entry) is tied to a set of agents on the network who authored or approved that piece of data. Agent’s (user/node) self-hosted ledgers are the canonical source of entries on the network. The provenance of all shared data is strictly enforced and the structure, content, and its compliance with shared application rules are validated by randomized peers.

In Blockchain, every piece of data is tied to a global consensus that authors and approves the data. Agents don’t have their own ledgers, everything (data validation/transaction) is on the global Blockchain network.

From the Greenpaper:
Blockchain: Data-centric, a single global data set - one shared reality across all nodes.
Holochain: Agent-centric, allows nodes to act independently, or in tight coordination only with counterparties, and then share independently evolving data realities that come to agreement over time

I’ll share some comments from various team members/community members.

““In an agent-centric world, agents — users, humans with their machines — constitute the basic root layer of the ontology. Data, then, is correctly represented by something an agent either perceives as input or creates (says) as output. There is no absolute, nor objective truth — as in true outside of the context of an agent claiming or believing or denying the validity of an expression. Objectivity could be approached by inter-subjectivity — when and where needed — not as a central aspect of the architecture like with blockchains. Every agent is free to act as they deem useful and is sovereign to make sense of the world (=everything everybody else is saying and doing) as it makes sense for their unique perspective and use-case. If that entails trusting other parties’ output in the process it is a conscious decision and not implied by the architecture.” https://medium.com/holochain/holochain-reinventing-applications-d2ac1e4f25ef

“However consider that for DHT - state is not global, but relative - due to the agent centric nature of the DHT design. Think of it as - those that participate in the game with you - only get your “player’s state” relative to any interaction with “their player’s state”. If a “state entry” is not shared - there is no guarantee that you can see the same state in the same time. Look at the whitepaper and you will notice that not even the timestamp (which is part of the signing hash of a given agent’s entry) has any centralized authority (no guarantee of sameness), but is rather used to create uniqueness for a given agent’s source chain.”

An article from a community member about what agent centric means: http://crypto.abedijoo.com/what-does-agent-centric-mean-in-holochain/

A Deep Look At Holochain’s Agent-Centricity: On Holochain, the only consensus is between those who choose to interact with each other. Every agent carries their own permanent record of the actions they’ve taken. For example, let’s say Alice wants to buy a tall mocha latte from Bob’s coffee shop using a Holochain community currency app…

Alice and Bob have come to consensus — by themselves, certainly, but supported by data gathered from impartial witnesses. This is quite different from blockchain, where you have to submit your transaction for a group of miners and wait for confirmation that the transaction has been accepted. We call this approach agent-centric computing, and it’s why we’re able to offer such high transaction throughput and user autonomy.


If I read that right, blockchain means that everything is the same for everyone, it has the same “value”. Whereas with Holochain, everything is relative, so there is context for transactions. In fact, that makes transactions inherently relational.
Am I in the ballpark?

Value is what we assign/give it (regardless if it’s Holochain or Blockchain)

Blockchain enforces the same process to validate/confirm a transaction through a global consensus/global agreement mechanism.

Holochain enables/allows you to validate a transaction without global consensus because two parties or a group of peers can validate a transaction/entry/activity without involving everyone on the network.

The term/meaning of value is quite an interesting topic.

Check out this article, it’s a great intro to cryptocurrencies. https://medium.com/holochain/beyond-blockchain-simple-scalable-cryptocurrencies-1eb7aebac6ae

My understanding of this topic is still very immature but from a conversation with a dev the other day I got to an interesting point. Perhaps some people can comment if this idea is helpful or not to understanding “Agent-Centric”:
So there’s a software concept called event sourcing where an application never stores any state. Instead it stores all of the events that have occurred up till now.
Then to find the current state you simply replay all the events.
Is it possible to think of each agent as having there own series of events that gives them their own point of view?
Then the “truth” is found in how multiple agents decide to combine their local history of events.

For example:
Alice’s history:
Event A then event B then event C.
Bob’s history:
Event A then event C.
Then say in this particular game we have the rule that events must be in alphabetical order.
So when these agents try to agree on a shared truth Bob needs to put event B after A and before C. Even though Bob never even saw event B.

Is this a useful way to look at it or am I still missing a few things?

Thanks, @dhtnetwork :smile:

I think I have my answer to the forum question “Why does Holochain matter to you?”

1 Like