the metanet - nchain · 2020. 9. 17. · planaria bitcom a.n.n.e bit:// map aip preserve sticker...

Post on 17-Aug-2021

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.

top related