In the continuing series “Edge Cases: The Metanet Blog,” nChain researcher Jack Davies broke down the nodes an edges that make up the Metanet DAG and how the Metanet protocol can be used to create on-chain DAG structures that can facilitate a peer-to-peer value network on Bitcoin SV.
Edge Cases: The #Metanet Blog
Part 2.1 — Nodes & Edges
nChain Researcher Jack Davies @JackD004 looks at exactly how the Metanet protocol can be used to create on-chain DAG structures that can facilitate a peer-to-peer value network on #BitcoinSV.https://t.co/Xwvg7cc6O2
— nChain (@nChainGlobal) September 2, 2019
Having previously explained what a directed acyclic graph (DAG) is and why the Metanet is a form of DAG, Davies delved into the Metanet nodes and their unique structure, as well as their unique identifiers. A Metanet node is a transaction that follows the rule set of the Metanet protocol.
For a transaction to qualify as a Metanet node, it must have at least one OP_RETURN output and an input signed by a parent node, denoted by SigP (parent). The node contains six elements, four of which are crucial. These are the address of the node, the version of a node, the address of the parent of the node and the version of the parent. The first two elements — denoted as P(node) and TxID(node) — are used to uniquely identify a node while the latter two — denoted as P(parent) and TxID(parent) are used to identify the parent of the node, if it has one.
The Metanet edges, on the other hand, are created by signatures. This means that to create an edge from a parent node to a child node, the latter must be signed using the key pair associated with its parent. In simpler terms, SigP (parent) must appear in the input of the child node.
The nodes and edges are crucial in the Metanet protocol, Davies explained.
The crucial aspect here is that the Metanet protocol leverages the input signatures and requires that they include signatures from the parent node to enforce permissioning structure on the Metanet graph. In other words, the ‘write access’ to write a new Metanet node to a tree requires creating a node edge, which in turn requires a signature.
Each node has a unique node identifier, derived from the address defining the node — denoted P(node) — and the unique transaction ID of the node — denoted TxID (node).
The Metanet’s permissioned structure extends to any graph structure that can be created with the Metanet protocol.
“In other words, what the rules of the protocol allow us to do is describe a consistent on-chain genealogy — the ability to describe, trace, and extend the flow of permissions throughout the graph as a kind of on-chain lineage.”
Davies also looked at the core properties of the Metanet DAG, the first of which is generality. The Metanet protocol doesn’t restrict a developer from building any specific type of structure. This gives it the ability to accommodate all the existing use cases as well as any unforeseen future applications.
The Metanet protocol also has a permissioning structure which leverages on the input signatures. Lastly, the Metanet protocol is designed to ensure high levels of efficiency. It distils everything into four core elements in each transaction, a minimalist approach that requires little overhead to implement without sacrificing any important functionality such as domain structure and version control.
As celebrated Bitcoin developer Unwriter noted on a blog post, “Bitcoin is the most efficient data storage protocol, and Metanet is the most efficient data structure protocol which sits on top of it.”
New to Bitcoin? Check out CoinGeek’s Bitcoin for Beginners section, the ultimate resource guide to learn more about Bitcoin—as originally envisioned by Satoshi Nakamoto—and blockchain.