The Chirping Machine
The full article was originally published by b0rg on Medium. Read the full article here.
One way you could describe a distributed ledger is a network of machines which tell each other the truth.
In a distributed ledger networked nodes send messages back and forth that look this:
Nodes send and receive these truth statements, verify if they are true, and collect them into a list of true statements which we call the ledger:
This statement is true: ______ and this statement is true: _____ and this statement is true: _____ and this statement is true: _____ and this statement is true: _____ and this statement is true: _____ and this statement is true: _____ and …
The contents of these messages are usually statements about debts, like “Kendra owes Vinicius $40.” But these statements could really be anything: the sky is blue, the peacock’s tail is bright, there was a gentle rain this afternoon. In the context of a distributed ledger, it doesn’t matter if these statements are true in our (human) reality, only that they are true with respect to the reality agreed upon by the nodes and recorded in the ledger. A node can verify if a message is “true” by checking that it does not conflict with any statements already in the ledger.
For example, the two statements “All cats have six legs” and “All cats have eight legs” cannot both be true so only one should be included in a ledger. A distributed ledger must ensure that all nodes eventually agree on the exact same ledger and that the ledger does not contain any conflicting statements — a kind of distributed truth telling machine.
The Matryoshka Principle
In the IOTA protocol there is a basic rule that if I want other nodes to accept my message, I have to publicly verify the truth of two or more messages I’ve received from others. So, in IOTA a message would look like this:
The first part of the message is a new statement which I am adding to the ledger, and the second part is are some verified messages of the same format received from other nodes. Because of this recursive property messages eventually expand into something like this:
Because a message attests to the truth of the messages it references and the messages they reference and so on, every message ends up containing the entire history of the Tangle, at least as seen from a certain point of view, at a certain moment in time. When a node sends a message it is actually saying “This statement is true: ____ and all the messages in the history of ledger referenced by this message back to the first message ever sent are also true.” Every message in the Tangle is a direct view to the beginning of the Tangle like branching rivers that all lead back to the sea.