How is Data Validated on Holochain?

On Holochain, each node that receives a piece of data validates it against the shared application rules and gossips (transmits) it to their peers. If the rules are broken, the validator rejects the data.

There is no overall, global “correctness” (or consensus) built into Holochain. If foul play is detected (e.g., the node is either propagating or validating bad data) the validator blocks that node and send a warning to others as a signed ‘warrant’ that provides proof of the act. Here’s an infographic describing this process. In summary, instead of a global consensus system, Holochain uses an accountability-based system with data validation by peers.

As an example, let’s imagine a distributed version of Airbnb, called ‘Ourbnb.’ The Ourbnb Holochain app would certainly be written with a rule, “Don’t rent your apartment to two parties at the same time.” The moment a user rents to two parties at the same time, nodes receiving that data on the DHT attempt to validate it against the app rules, detect a collision, and reject it. Holochain’s gossip protocol is designed to operate at a rate at which collisions are detected almost immediately by gossiping peers. And since Holochain’s processing requirements are low, it doesn’t have a coin built into it to incentivize participation. Users participate because they derive value from the app and want to cooperate to ensure its success.

As a user, you don’t need to trust the provider of the application you’re using, only agree with the shared protocols that make up the application itself. Aside from being responsible for the maintenance and security of apps they provide, application providers on Holochain are not like traditional application providers today (think Facebook, Twitter, etc.). They don’t host your data, because your data is stored by you and a random subset of the users of the application.