Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
The Metanet
Jack Davies
29th May 2019
2
19
nChain
20
• Introduction – the current state of the Metanet
• The Metanet Protocol:
▪ Node and edge structure
▪ Metanet-valid transactions
▪ Data-insertion methods
▪ Interpreting the graph – domains, naming and locating
• Use case examples
Contents
3
19
nChain
20
“The Internet becomes a side-chain”
Credit: Ayre Media
4
19
nChain
20
5
19
nChain
20
What do these projects have in common?
• The blockchain acts as a universal server.
• Data, websites and content are hosted on-chain.
• Everybody can contribute (e.g. Planaria).
• Specialisation.
The Metanet paradigm
6
19
nChain
20
SPV check
Merkle proof
7
19
nChain
20
Data storage:
Search engine:
Applications:
Identity management:
8
19
nChain
20
The Metanet Protocol
The umbrella for the Metanet
9
19
nChain
20
The Metanet:
“A protocol for structuring the on-chain internet”
10
19
nChain
20
A transaction protocol:
• Specifies a transaction structure
• Write-permission controlled by digital signatures
• Read-permission controlled by encryption
• Highly generic
The Metanet protocol
11
19
nChain
20
B://cat B:// C:// D://
Planaria Bitcom A.N.N.E bit://
MAP AIP Preserve Sticker
The Metanet protocol:
Credits: _unwriter, Mr. Scatman, Satchmo, Attila Aros, Libitx and others.
12
19
nChain
20
A transaction protocol:
1. Node and edge structure
2. Metanet-valid transactions
3. Data insertion methods
4. Interpreting the Metanet:
i. Versioning
ii. Domains, naming and searching
iii. Key-management
The Metanet protocol
13
19
nChain
20
Aims:
• Associate content across transactions.
• Search for content using keywords.
• Create domain-like structures.
Solution:
• Structure Metanet as a DAG.
1. Node and edge structure
14
19
nChain
20
Definition: Directed Acyclic Graph (DAG)
• Consists of nodes and edges.
1. Node and edge structure
15
19
nChain
20
Definition: Directed Acyclic Graph (DAG)
• Consists of nodes and edges.
1. Node and edge structure
nodes
16
19
nChain
20
Definition: Directed Acyclic Graph (DAG)
• Consists of nodes and edges.edges
1. Node and edge structure
17
19
nChain
20
Definition: Directed Acyclic Graph (DAG)
• Consists of nodes and edges.
• Each node specifies itself and its parent.
1. Node and edge structure
18
19
nChain
20
Definition: Directed Acyclic Graph (DAG)
• Consists of nodes and edges.
• Each node specifies itself and its parent.itself parent
1. Node and edge structure
𝑁𝑜𝑑𝑒𝑃𝑎𝑟𝑒𝑛𝑡
𝑃𝑎𝑟𝑒𝑛𝑡
19
19
nChain
20
Definition: Directed Acyclic Graph (DAG)
• Consists of nodes and edges.
• Each node specifies itself and its parent.
1. Node and edge structure
𝑁𝑜𝑑𝑒
𝑃𝑎𝑟𝑒𝑛𝑡
𝐶ℎ𝑖𝑙𝑑
𝑁𝑜𝑑𝑒 references 𝑃𝑎𝑟𝑒𝑛𝑡
𝐶ℎ𝑖𝑙𝑑 references 𝑁𝑜𝑑𝑒
20
19
nChain
20
𝑁𝑜𝑑𝑒𝑁𝑜𝑑𝑒 = 𝐸𝑑𝑔𝑒 =
𝑁𝑜𝑑𝑒 1
𝑁𝑜𝑑𝑒 2
𝑃𝑎𝑟𝑒𝑛𝑡
𝐶ℎ𝑖𝑙𝑑
21
19
nChain
20
1. Node and edge structure
How do we achieve this structure?
• Transactions are nodes
• Edges are signatures
𝑁𝑜𝑑𝑒 ≔
𝑇𝑟𝑎𝑛𝑠𝑎𝑐𝑡𝑖𝑜𝑛
𝐸𝑑𝑔𝑒≔ 𝑆𝑖𝑔 𝑃
22
19
nChain
20
A transaction is a node:
1. Node and edge structure - nodes
𝐼𝑛𝑝𝑢𝑡𝑠 𝑂𝑢𝑡𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
𝑁𝑜𝑑𝑒 =
𝑆𝑖𝑔 𝑃𝑝𝑎𝑟𝑒𝑛𝑡 𝑃𝑛𝑜𝑑𝑒
𝑇𝑥𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡
OP_RETURN
Node
23
19
nChain
20
1. Node and edge structure - nodes
A transaction is a node:
𝐼𝑛𝑝𝑢𝑡𝑠 𝑂𝑢𝑡𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
𝑁𝑜𝑑𝑒 =
𝑆𝑖𝑔 𝑃𝑠𝑜𝑢𝑟𝑐𝑒 𝑃𝑛𝑜𝑑𝑒
< 𝑁𝑢𝑙𝑙 >
OP_RETURN
“Root” node
Minimum
required
24
19
nChain
20
1. Node and edge structure - edges
A signature creates an edge:
𝐼𝑛𝑝𝑢𝑡𝑠 𝑂𝑢𝑡𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷1
𝑆𝑖𝑔 𝑃0
OP_RETURN
𝑃1
𝑇𝑥𝐼𝐷0
𝐼𝑛𝑝𝑢𝑡𝑠 𝑂𝑢𝑡𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷0
OP_RETURN
𝑃0
Edge
25
19
nChain
20
𝐼𝑛𝑝𝑢𝑡𝑠 𝑂𝑢𝑡𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷1
𝑆𝑖𝑔 𝑃0OP_RETURN
𝑃1
𝑇𝑥𝐼𝐷0
1. Node and edge structure - edges
Edges do not have to involve direct spending:
𝐼𝑛𝑝𝑢𝑡𝑠 𝑂𝑢𝑡𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷0
OP_RETURN
𝑃0
𝐼𝑛𝑝𝑢𝑡𝑠 𝑂𝑢𝑡𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝑠𝑜𝑢𝑟𝑐𝑒
[Checksig 𝑃0 ]
𝑇𝑥𝐼𝐷𝑠𝑜𝑢𝑟𝑐𝑒 , 0
Metanet edge
Bitcoin spending
26
19
nChain
20
1. Node and edge structure - edges
Edges do not have to involve direct spending:
𝐼𝑛𝑝𝑢𝑡𝑠 𝑂𝑢𝑡𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷0
OP_RETURN
𝑃0
[Checksig 𝑃0 ]
𝐼𝑛𝑝𝑢𝑡𝑠 𝑂𝑢𝑡𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷1
𝑇𝑥𝐼𝐷𝑠𝑜𝑢𝑟𝑐𝑒 , 0
𝑆𝑖𝑔 𝑃0
Metanet edge
Bitcoin spending
OP_RETURN
𝑃1
𝑇𝑥𝐼𝐷0
27
19
nChain
20
Each node has an associated unique pair:
• 𝑃𝑛𝑜𝑑𝑒 - the ‘address’ of a node.
• 𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒 - the ‘version’ of a node.
These form a unique node identifier:
𝐼𝐷𝑛𝑜𝑑𝑒 ≔ 𝐻 𝑃𝑛𝑜𝑑𝑒 ∥ 𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
1. Node and edge structure – node IDs
𝑃𝑛𝑜𝑑𝑒, 𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
28
19
nChain
20
𝑃𝑛𝑜𝑑𝑒
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
Simplified notation:
1. Node and edge structure – node IDs
𝐼𝑛𝑝𝑢𝑡𝑠 𝑂𝑢𝑡𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
=
𝑆𝑖𝑔 𝑃𝑝𝑎𝑟𝑒𝑛𝑡 𝑃𝑛𝑜𝑑𝑒
𝑇𝑥𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡
OP_RETURN
29
19
nChain
20
A node specifies 𝑰𝑫𝒏𝒐𝒅𝒆 and 𝑰𝑫𝒑𝒂𝒓𝒆𝒏𝒕 :
𝑃𝑛𝑜𝑑𝑒
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
1. Node and edge structure - node IDs
𝐼𝑛𝑝𝑢𝑡𝑠 𝑂𝑢𝑡𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
=
𝑆𝑖𝑔 𝑃𝑝𝑎𝑟𝑒𝑛𝑡 𝑃𝑛𝑜𝑑𝑒
𝑇𝑥𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡
OP_RETURN
𝐼𝐷𝑛𝑜𝑑𝑒 ≔ 𝐻 𝑃𝑛𝑜𝑑𝑒 ∥ 𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡 ≔ 𝐻 𝑃𝑝𝑎𝑟𝑒𝑛𝑡 ∥ 𝑇𝑥𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡
30
19
nChain
20
1. Node and edge structure - rules
The rules for the Metanet graph are:
• Nodes are transactions
• Edges are created by signatures
• A node must specify 𝐼𝐷𝑛𝑜𝑑𝑒 and 𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡
• A node can have:
▪ 0 or 1 parent (in degree = 0,1)
▪ Arbitrary number of children (out degree = free)
𝑅𝑜𝑜𝑡 𝑛𝑜𝑑𝑒𝑇𝑥𝐼𝐷0
𝑃0
𝑇𝑥𝐼𝐷1
𝑃1
31
19
nChain
20
1. Node and edge structure - permissioning
A child of a node can only be created by the owner of 𝑷𝒏𝒐𝒅𝒆:
𝐼𝑛𝑝𝑢𝑡𝑠 𝑂𝑢𝑡𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝐴𝑙𝑖𝑐𝑒,2
𝑆𝑖𝑔 𝑃𝐴𝑙𝑖𝑐𝑒
OP_RETURN
𝑃𝐴𝑙𝑖𝑐𝑒,2
𝑇𝑥𝐼𝐷𝐴𝑙𝑖𝑐𝑒
𝐼𝑛𝑝𝑢𝑡𝑠 𝑂𝑢𝑡𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝐴𝑙𝑖𝑐𝑒
OP_RETURN
𝑃𝐴𝑙𝑖𝑐𝑒
Edge
Bitcoin-valid
Metanet-valid
Metanet-valid
Bitcoin-valid
32
19
nChain
20
A child of a node can only be created by the owner of 𝑷𝒏𝒐𝒅𝒆:
𝐼𝑛𝑝𝑢𝑡𝑠 𝑂𝑢𝑡𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝐴𝑙𝑖𝑐𝑒,2
𝑆𝑖𝑔 𝑃𝐵𝑜𝑏
1. Node and edge structure - permissioning
OP_RETURN
𝑃𝐴𝑙𝑖𝑐𝑒,2
𝑇𝑥𝐼𝐷𝐴𝑙𝑖𝑐𝑒
𝐼𝑛𝑝𝑢𝑡𝑠 𝑂𝑢𝑡𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝐴𝑙𝑖𝑐𝑒
OP_RETURN
𝑃𝐴𝑙𝑖𝑐𝑒
Edge
Bitcoin-valid
Metanet-valid
Metanet-invalid
Bitcoin-valid
33
19
nChain
20
Only 𝑷𝟎 can create:𝑇𝑥𝐼𝐷0
𝑃0
𝑇𝑥𝐼𝐷2,1
𝑃2,1
𝑇𝑥𝐼𝐷2
𝑃2
𝑇𝑥𝐼𝐷1
𝑃1
𝑇𝑥𝐼𝐷1,1
𝑃1,1
𝑇𝑥𝐼𝐷1,2
𝑃1,2
𝑇𝑥𝐼𝐷2,2
𝑃2,2
34
19
nChain
20
Only 𝑷𝟏 can create:𝑇𝑥𝐼𝐷0
𝑃0
𝑇𝑥𝐼𝐷2,1
𝑃2,1
𝑇𝑥𝐼𝐷2
𝑃2
𝑇𝑥𝐼𝐷1
𝑃1
𝑇𝑥𝐼𝐷1,1
𝑃1,1
𝑇𝑥𝐼𝐷1,2
𝑃1,2
𝑇𝑥𝐼𝐷2,2
𝑃2,2
35
19
nChain
20
Only 𝑷𝟐 can create:𝑇𝑥𝐼𝐷0
𝑃0
𝑇𝑥𝐼𝐷2,1
𝑃2,1
𝑇𝑥𝐼𝐷2
𝑃2
𝑇𝑥𝐼𝐷1
𝑃1
𝑇𝑥𝐼𝐷1,1
𝑃1,1
𝑇𝑥𝐼𝐷1,2
𝑃1,2
𝑇𝑥𝐼𝐷2,2
𝑃2,2
36
19
nChain
20
𝑇𝑥𝐼𝐷0
𝑃0
𝑇𝑥𝐼𝐷2,1
𝑃2,1
𝑇𝑥𝐼𝐷2
𝑃2
𝑇𝑥𝐼𝐷1
𝑃1
𝑇𝑥𝐼𝐷1,1
𝑃1,1
𝑇𝑥𝐼𝐷1,2
𝑃1,2
𝑇𝑥𝐼𝐷2,2
𝑃2,2
𝑰𝑫𝟎 = 𝑯 𝑷𝟎 ∥ 𝑻𝒙𝑰𝑫𝟎
𝑰𝑫𝟐 = 𝑯 𝑷𝟐 ∥ 𝑻𝒙𝑰𝑫𝟐𝑰𝑫𝟏 = 𝑯 𝑷𝟏 ∥ 𝑻𝒙𝑰𝑫𝟏
𝑯 𝑷𝟏,𝟏 ∥ 𝑻𝒙𝑰𝑫𝟏,𝟏 𝑯 𝑷𝟏,𝟐 ∥ 𝑻𝒙𝑰𝑫𝟏,𝟐 𝑯 𝑷𝟐,𝟏 ∥ 𝑻𝒙𝑰𝑫𝟐,𝟏 𝑯 𝑷𝟐,𝟐 ∥ 𝑻𝒙𝑰𝑫𝟐,𝟐
37
19
nChain
20
𝑃0
𝑇𝑥𝐼𝐷0
𝑃1,1
𝑇𝑥𝐼𝐷1,1
𝑃1,2
𝑇𝑥𝐼𝐷1,2
𝑃1
𝑇𝑥𝐼𝐷1
𝑃3
𝑇𝑥𝐼𝐷3
𝑃2
𝑇𝑥𝐼𝐷2
𝑃1,1,1
𝑇𝑥𝐼𝐷1,1,1
𝑃1,2,1
𝑇𝑥𝐼𝐷1,2,1
𝑃3,1
𝑇𝑥𝐼𝐷3,1
𝑃3,1,1
𝑇𝑥𝐼𝐷3,1,1
𝑃3,1,2
𝑇𝑥𝐼𝐷3,1,2
𝑃3,1,3
𝑇𝑥𝐼𝐷3,1,3
38
19
nChain
20
The Metanet :
39
19
nChain
20
Content of transactions:
• Metanet flag
• Attributes
• Content data
2. Metanet-valid transactions
40
19
nChain
20
2. Metanet-valid transactions
𝐼𝑛𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
𝑆𝑖𝑔 𝑃𝑝𝑎𝑟𝑒𝑛𝑡𝑃𝑛𝑜𝑑𝑒
𝑇𝑥𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡
𝑂𝑢𝑡𝑝𝑢𝑡𝑠
OP_RETURN
𝑀𝑒𝑡𝑎𝑛𝑒𝑡 𝐹𝑙𝑎𝑔
⋯
⋯
𝐷𝑎𝑡𝑎
41
19
nChain
20
𝐼𝑛𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
𝑆𝑖𝑔 𝑃𝑝𝑎𝑟𝑒𝑛𝑡
𝑂𝑢𝑡𝑝𝑢𝑡𝑠
OP_RETURN
𝑃𝑛𝑜𝑑𝑒
𝑇𝑥𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡
𝑀𝑒𝑡𝑎𝑛𝑒𝑡 𝐹𝑙𝑎𝑔
⋯
⋯
𝐷𝑎𝑡𝑎
2. Metanet-valid transactions Metanet flag:
• 4-byte protocol flag.
• Indicates Metanet subset of
Bitcoin.
• A global identifier for
protocols.
• Chosen by vote.
42
19
nChain
20
𝐼𝑛𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
𝑆𝑖𝑔 𝑃𝑝𝑎𝑟𝑒𝑛𝑡
𝑂𝑢𝑡𝑝𝑢𝑡𝑠
OP_RETURN
𝑃𝑛𝑜𝑑𝑒
𝑇𝑥𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡
𝑀𝑒𝑡𝑎𝑛𝑒𝑡 𝐹𝑙𝑎𝑔
⋯
⋯
𝐷𝑎𝑡𝑎
2. Metanet-valid transactions Attributes:
• Metadata related to the
node.
• Implement other protocols
within Metanet.
• E.g. protocol identifiers,
keywords, file types, file
names.
• Application-specific.
43
19
nChain
20
𝐼𝑛𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
𝑆𝑖𝑔 𝑃𝑝𝑎𝑟𝑒𝑛𝑡
𝑂𝑢𝑡𝑝𝑢𝑡𝑠
OP_RETURN
𝑃𝑛𝑜𝑑𝑒
𝑇𝑥𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡
𝑀𝑒𝑡𝑎𝑛𝑒𝑡 𝐹𝑙𝑎𝑔
⋯
⋯
𝐷𝑎𝑡𝑎
2. Metanet-valid transactions Content data:
• The main data payloads
related to the node.
• E.g. documents, media files,
web-pages, encrypted
messages, social media.
• Non-compulsory – nodes do
not have to include payloads.
44
19
nChain
20
2. Metanet-valid transactions
The Metanet is the umbrella protocol:
• Attributes and data can encode any
other protocol.
• The Metanet protocol-specific
elements provide structure.
𝐼𝑛𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
𝑆𝑖𝑔 𝑃𝑝𝑎𝑟𝑒𝑛𝑡
𝑂𝑢𝑡𝑝𝑢𝑡𝑠
OP_RETURN
𝑃𝑛𝑜𝑑𝑒
𝑇𝑥𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡
𝑀𝑒𝑡𝑎𝑛𝑒𝑡 𝐹𝑙𝑎𝑔
⋯
⋯
𝐷𝑎𝑡𝑎
45
19
nChain
20
2. Metanet-valid transactions - examples
Demonstration of Metanet-valid transactions for:
• Simple data insertion - B://
• Insertion across transactions - B://cat
• Overwriting data - D://
46
19
nChain
20
𝐼𝑛𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
𝑆𝑖𝑔 𝑃𝑝𝑎𝑟𝑒𝑛𝑡
𝑂𝑢𝑡𝑝𝑢𝑡𝑠
OP_RETURN
𝑃𝑛𝑜𝑑𝑒
𝑇𝑥𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡
𝑀𝑒𝑡𝑎𝑛𝑒𝑡 𝐹𝑙𝑎𝑔
[Protocol ID]
[Data]
[Attributes]
Protocol
47
19
nChain
20
B://𝐼𝑛𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
𝑆𝑖𝑔 𝑃𝑝𝑎𝑟𝑒𝑛𝑡
𝑂𝑢𝑡𝑝𝑢𝑡𝑠
OP_RETURN
𝑃𝑛𝑜𝑑𝑒
𝑇𝑥𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡
𝑀𝑒𝑡𝑎𝑛𝑒𝑡 𝐹𝑙𝑎𝑔
[Data]
[Media Type]
[Encoding]
[Filename]
[19Hxiz…ZVdoAut]
B://
48
19
nChain
20
B://𝐼𝑛𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
𝑆𝑖𝑔 𝑃𝑝𝑎𝑟𝑒𝑛𝑡
𝑂𝑢𝑡𝑝𝑢𝑡𝑠
OP_RETURN
𝑃𝑛𝑜𝑑𝑒
𝑇𝑥𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡
𝑀𝑒𝑡𝑎𝑛𝑒𝑡 𝐹𝑙𝑎𝑔
[Image Buffer]
image/png
binary
duck.png
[19Hxiz…ZVdoAut]
B://
49
19
nChain
20
𝐼𝑛𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷2
𝑆𝑖𝑔 𝑃0
𝑂𝑢𝑡𝑝𝑢𝑡𝑠
OP_RETURN
𝑃2
𝑇𝑥𝐼𝐷0
𝑀𝑒𝑡𝑎𝑛𝑒𝑡 𝐹𝑙𝑎𝑔
𝐼𝑛𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷1
𝑆𝑖𝑔 𝑃0
𝑂𝑢𝑡𝑝𝑢𝑡𝑠
OP_RETURN
𝑃1
𝑇𝑥𝐼𝐷0
𝑀𝑒𝑡𝑎𝑛𝑒𝑡 𝐹𝑙𝑎𝑔
B://cat
[Data Part 1]
[Media Type 1]
[Encoding 1]
[Filename 1]
[19Hxiz…ZVdoAut]
B://
[Data Part 2]
[Media Type 2]
[Encoding 2]
[Filename 2]
[19Hxiz…ZVdoAut]
B://
50
19
nChain
20
B://cat𝐼𝑛𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷0
𝑆𝑖𝑔 𝑃𝑝𝑎𝑟𝑒𝑛𝑡
𝑂𝑢𝑡𝑝𝑢𝑡𝑠
OP_RETURN
𝑃0
𝑇𝑥𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡
𝑀𝑒𝑡𝑎𝑛𝑒𝑡 𝐹𝑙𝑎𝑔
[Info]
[MIME type]
[charset]
[name]
[15DHFx…4W6h4Up]
B://cat
[flag]
51
19
nChain
20
B://cat𝐼𝑛𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷0
𝑆𝑖𝑔 𝑃𝑝𝑎𝑟𝑒𝑛𝑡
𝑂𝑢𝑡𝑝𝑢𝑡𝑠
OP_RETURN
𝑃0
𝑇𝑥𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡
𝑀𝑒𝑡𝑎𝑛𝑒𝑡 𝐹𝑙𝑎𝑔
[Info]
[MIME type]
[charset]
[name]
[15DHFx…4W6h4Up]
[flag]
B://catMetanet edges
52
19
nChain
20
D://𝐼𝑛𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
𝑆𝑖𝑔 𝑃𝑝𝑎𝑟𝑒𝑛𝑡
𝑂𝑢𝑡𝑝𝑢𝑡𝑠
OP_RETURN
𝑃𝑛𝑜𝑑𝑒
𝑇𝑥𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡
𝑀𝑒𝑡𝑎𝑛𝑒𝑡 𝐹𝑙𝑎𝑔
[key]
[value]
[type]
[sequence]
[19iG3W…TiFesNU]
D://
53
19
nChain
20
B://cat
D://
Protocol locality:
B://
54
19
nChain
20
3. Data insertion
Metanet protocol is compatible with:
• OP_RETURN
• OP_DROP
𝐼𝑛𝑝𝑢𝑡𝑠
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
𝑆𝑖𝑔 𝑃𝑝𝑎𝑟𝑒𝑛𝑡
𝑂𝑢𝑡𝑝𝑢𝑡𝑠
𝑃𝑛𝑜𝑑𝑒
𝑇𝑥𝐼𝐷𝑝𝑎𝑟𝑒𝑛𝑡
𝑀𝑒𝑡𝑎𝑛𝑒𝑡 𝐹𝑙𝑎𝑔
[Combination protocol]
OP_RETURN
[File data 1] OP_DROP
[File data 2] OP_DROP
55
19
nChain
20
4. Interpreting the graph
The properties of the graph allow:
• Version control
• Domain structure
• Searching
• Integration of key management
56
19
nChain
20
4. Interpreting the graph - versioning
Metanet allows proof-of-work versioning:
• Multiple nodes can share a 𝑃𝑛𝑜𝑑𝑒
• Each has different 𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
• Distinguish versions by PoW:
▪ Between blocks
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
𝑃𝑛𝑜𝑑𝑒
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒′
𝑃𝑛𝑜𝑑𝑒
57
19
nChain
20
4. Interpreting the graph - versioning
Metanet allows proof-of-work versioning:
• Multiple nodes can share a 𝑃𝑛𝑜𝑑𝑒
• Each has different 𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
• Distinguish versions by PoW:
▪ Between blocks
▪ Within blocks
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒
𝑃𝑛𝑜𝑑𝑒
𝑇𝑥𝐼𝐷𝑛𝑜𝑑𝑒′
𝑃𝑛𝑜𝑑𝑒
58
19
nChain
20
Versioning:
𝑇𝑥𝐼𝐷1
𝑃1
𝑇𝑥𝐼𝐷1,1
𝑃1,1
𝑇𝑥𝐼𝐷1,2
𝑃1,2
𝑇𝑥𝐼𝐷0
𝑃0
𝑇𝑥𝐼𝐷2
𝑃2
𝑇𝑥𝐼𝐷2′
𝑃2
𝑇𝑥𝐼𝐷2′
𝑃2
𝑻𝒙𝑰𝑫𝟐
𝑻𝒙𝑰𝑫𝟐′
59
19
nChain
20
Versioning:
𝑇𝑥𝐼𝐷1
𝑃1
𝑇𝑥𝐼𝐷1,1
𝑃1,1
𝑇𝑥𝐼𝐷1,2
𝑃1,2
𝑇𝑥𝐼𝐷0
𝑃0
𝑇𝑥𝐼𝐷2
𝑃2
𝑻𝒙𝑰𝑫𝟐
𝑻𝒙𝑰𝑫𝟐′
𝑇𝑥𝐼𝐷2′
𝑃2
60
19
nChain
20
4. Interpreting the graph - domains
Domain structure is a property:
• Root nodes can be TLDs.
• Non-root can be sub-domains.
• On-chain resources anchored.
𝑇𝑥𝐼𝐷0
𝑃0
𝑷𝟎
61
19
nChain
20𝑃0
𝑇𝑥𝐼𝐷0
𝑃1,1
𝑇𝑥𝐼𝐷1,1
𝑃1,2
𝑇𝑥𝐼𝐷1,2
𝑃1
𝑇𝑥𝐼𝐷1
𝑃2
𝑇𝑥𝐼𝐷2
𝑃2,1
𝑇𝑥𝐼𝐷2,1
𝑃2,1,1
𝑇𝑥𝐼𝐷2,1,1
𝑃2,1,2
𝑇𝑥𝐼𝐷2,1,2
𝑃2,1,3
𝑇𝑥𝐼𝐷2,1,3
Domain
𝑷𝟎
62
19
nChain
20
Domains 𝑷𝟏 and 𝑷𝟐
𝑃0
𝑇𝑥𝐼𝐷0
𝑃1,1
𝑇𝑥𝐼𝐷1,1
𝑃1,2
𝑇𝑥𝐼𝐷1,2
𝑃1
𝑇𝑥𝐼𝐷1
𝑃2
𝑇𝑥𝐼𝐷2
𝑃2,1
𝑇𝑥𝐼𝐷2,1
𝑃2,1,1
𝑇𝑥𝐼𝐷2,1,1
𝑃2,1,2
𝑇𝑥𝐼𝐷2,1,2
𝑃2,1,3
𝑇𝑥𝐼𝐷2,1,3
63
19
nChain
20𝑃0
𝑇𝑥𝐼𝐷0
𝑃1,1
𝑇𝑥𝐼𝐷1,1
𝑃1,2
𝑇𝑥𝐼𝐷1,2
𝑃1
𝑇𝑥𝐼𝐷1
𝑃2
𝑇𝑥𝐼𝐷2
𝑃2,1
𝑇𝑥𝐼𝐷2,1
𝑃2,1,1
𝑇𝑥𝐼𝐷2,1,1
𝑃2,1,2
𝑇𝑥𝐼𝐷2,1,2
𝑃2,1,3
𝑇𝑥𝐼𝐷2,1,3
𝑷𝟎
64
19
nChain
20
4. Interpreting the graph – locating resources
We define a Metanet-URL (MURL) as:
′mnp:′ +′//domain name′ + ′/path′ + ′/file′
• One MURL corresponds to one transaction:
𝑇𝑥𝐼𝐷1,2
𝑃1,2mnp://bobsblog/sport/tennis
65
19
nChain
20Naming and addressing
𝑇𝑥𝐼𝐷0
𝑃0
𝑇𝑥𝐼𝐷2
𝑃2
𝑇𝑥𝐼𝐷1
𝑃1
𝑇𝑥𝐼𝐷1,1
𝑃1,1
𝑇𝑥𝐼𝐷1,2
𝑃1,2
Definition: MURL
mnp://domainname/path/file
The
Metanet
protocol
identifier
Domain
name
mapped to
𝐼𝐷𝑟𝑜𝑜𝑡
Path to
target
node
Name
associated with
target node
• Allow efficient lookup of
content.
• Allow searching by key-
word.
• Human-interpretable method
of traversing the graph.
• Definition: MURL
mnp://domainname/path/file
66
19
nChain
20
𝑇𝑥𝐼𝐷0
𝑃0
𝑇𝑥𝐼𝐷2
𝑃2
𝑇𝑥𝐼𝐷1
𝑃1
𝑇𝑥𝐼𝐷1,1
𝑃1,1
𝑇𝑥𝐼𝐷1,2
𝑃1,2mnp://bobsblog/sport/tennis
“Bob’s blog”
“sport” “finance”
“tennis”“golf”
• Allow efficient lookup of
content.
• Allow searching by key-
word.
• Human-interpretable method
of traversing the graph.
• Definition: MURL
mnp://domainname/path/file
67
19
nChain
20
4. Interpreting the graph – key management
𝑷0
𝑷1 𝑷3𝑷2
𝑷1,1 𝑷1,2 𝑷3,1
𝑷1,1,1 𝑷1,2,1 𝑷3,1,1 𝑷3,1,2 𝑷3,1,3
HD Key Tree Metanet tree
68
19
nChain
20
Use case examples
Building on the Metanet
69
19
nChain
20
UC1: Institutional record storage
Year 1 Year 2
Storage of records:
• Institution key anchored.
• Encrypted by institution.
• Transparently recorded.
70
19
nChain
20
UC2: Social media
Profile
71
19
nChain
20
UC2: Social media
Feed
72
19
nChain
20
Interacting trees:
Pointer
73
19
nChain
20
Vote on your preferred flag:
Metanet Flag
META (0x6d657461)
MTNT (0x6d746e74)
METN (0x6d65746e)
MNET (0x6d6e6574)
74
19
nChain
20
The take-away message:
Everybody can start to build structured,
on-chain applications using the Metanet protocol
75
19
nChain
20
• Release of technical summary.
• Metanet blog series.
Announcements
76
19
nChain
20
Thank you.