Difference between revisions of "Merged mining in JaxNetwork"

From JaxNetwork Wiki
Jump to navigation Jump to search
 
(One intermediate revision by the same user not shown)
Line 4: Line 4:
 
Nodes in JaxNet have a special agreement described in the protocol on how to perform merged mining. Every miner composes a Merkle tree in which he places his shard [[Block-candidate|block-candidates]]. In JaxNet protocol this data structure is called ''[[Merge-mining Merkle Tree]]'' (''MMMT'') since it is used for merge-mining. Another name for it is ''Shard Merkle Tree'' (''SMT'') since its leaves correspond to shards in JaxNetwork.   
 
Nodes in JaxNet have a special agreement described in the protocol on how to perform merged mining. Every miner composes a Merkle tree in which he places his shard [[Block-candidate|block-candidates]]. In JaxNet protocol this data structure is called ''[[Merge-mining Merkle Tree]]'' (''MMMT'') since it is used for merge-mining. Another name for it is ''Shard Merkle Tree'' (''SMT'') since its leaves correspond to shards in JaxNetwork.   
  
Header of Beacon chain block-candidate act as aggregator of all headers of shard block-candidates. It's the only header that contains nonce. Besides standard records, the Beacon chain block header includes the number of  shards  in  the  network,  the  encoding  of  [[#Shard Merkle Tree|shard  merge-mining  tree]],  and  its root.
+
Header of Beacon chain block-candidate act as aggregator of all headers of shard block-candidates. It's the only header that contains [[nonce]]. Besides standard records, the Beacon chain block header includes the number of  shards  in  the  network,  the  encoding  of  [[#Shard Merkle Tree|shard  merge-mining  tree]],  and  its root.
  
 
=== Shard merge-mining Merkle tree ===
 
=== Shard merge-mining Merkle tree ===
Line 11: Line 11:
 
Blocks which are merge-mined in the wrong place should be rejected during the block [[#Verification of Shard Proof|verification]] within the shard.
 
Blocks which are merge-mined in the wrong place should be rejected during the block [[#Verification of Shard Proof|verification]] within the shard.
  
=== Hash sorting ===
+
=== Hash-sorting ===
  
 
=== Merged Mining Proof ===
 
=== Merged Mining Proof ===

Latest revision as of 11:46, 26 June 2022

The mining scheme in JaxNet relies on merged mining. Miner can choose the subset of shards, download the necessary information about them and the Beacon Chain, form valid block-candidates for those shards, put them into the Merkle tree and start mining them simultaneously.

Merge-mining of shard blocks

Nodes in JaxNet have a special agreement described in the protocol on how to perform merged mining. Every miner composes a Merkle tree in which he places his shard block-candidates. In JaxNet protocol this data structure is called Merge-mining Merkle Tree (MMMT) since it is used for merge-mining. Another name for it is Shard Merkle Tree (SMT) since its leaves correspond to shards in JaxNetwork.

Header of Beacon chain block-candidate act as aggregator of all headers of shard block-candidates. It's the only header that contains nonce. Besides standard records, the Beacon chain block header includes the number of shards in the network, the encoding of shard merge-mining tree, and its root.

Shard merge-mining Merkle tree

The set of shards in JaxNet are in one-to-one correspondence with the set of leaves of Shard Merkle Tree: the first leaf from the left corresponds to the first shard, the second leaf to the second shard and so on. It is allowed to merge-mine the shard block only on the leaves of the Shard Merkle Tree which corresponds to this shard.

Blocks which are merge-mined in the wrong place should be rejected during the block verification within the shard.

Hash-sorting

Merged Mining Proof

Merged Mining Proof or MMP is the backbone and the key innovation of JaxNet protocol. According to JaxNet protocol, any miner can merge-mine multiple shards simultaneously. MMP is a tool that allows anyone within the particular shard to estimate how many shards were merge-mined. MMP is the proof that certain miner, who merge-mined the particular block, was not mining a particular subset of shards.

Verification of merge-mined block-candidate

In order to become a part of the block chain, block-candidate should go through a long list of verifications. Proof-of-Work verification is a part of this process. In a single-chain blockchain similar to Bitcoin, verification of Proof-of-Work is rather streight-forward...

Verification of Shard Proof

Since a Shard Merkle Tree protects the data integrity, the miner has a proof of how merged mining has been executed. A Shard Merkle Proof is a Merkle proof that the SC block header was mined in the correct place. Block producer broadcasts Shard Merkle Proof along with his block-candidate to convince his peers that it was merge-mined in the proper position in Shard Merkle Tree.

Verification of Merged Mining proof

Merged mining number is the miner's claim about how many shards he was mining.

See also

References