MultiChain is a platform that enable us to create and deploy private BlockChain that can be used either within a Organization or between Organizations. MultiChain provides a simple API and command-line interface thats make it easy to maintain and deploy.

The main aim of MultiChain is :-

to ensure that visibility of BlockChain ‘s activity must be kept within the chosen participants.

‘s activity must be kept within the chosen participants. to control over which transaction are permitted.

to enable more secure mining with proof of work and its associated cost.

the BlockChain system only store transaction related to participants.

Hand-shaking process in MultiChain :- Hand-shaking process in MultiChain take place when two BlockChain nodes Connect

Each node present its identity as a public address on the permitted list.

Each node verify that other’s address is on its own permitted list.

Each node sends a challenge message to other party.

Each node sends back a signature of the challenge message providing there ownership of the private key corresponding to the public address they presented.

If any of the node is not satisfying with the results then it aborts the peer-to-peer connection.

Mining in MultiChain :- MultiChain restricts miner to a set of identifiable entities. MultiChain introduce a parameter called “mining diversity” which is constrains by

0 <= mining diversity <= 1. The Validity of block is verified by :

Apply the permissions changes defined by transactions n the block in order.

Count the total permitted miners who are defined after these changes in the block.

Multiply no of miners by mining diversity and round up to get left spacing.

this enforce the round-robin schedule in which miner create blocks in rotation in order to generate a valid BlockChain. The mining diversity parameter defines the strictness of the schema. The 1 value defines every permitted miner is included in rotation and 0 defines no restrictions at all.

In MultiChain the transaction fees and the Block reward is Zero by default but you can set these value in params.dat file. the params.dat file contains the whole configuration like :-

The Chain’s Protocol

Target Time for Block

Active Permission Type

Mining Diversity

Mining Reward

Permitted Transaction Type

Maximum Block size

Maximum meta data per Transaction.

you can find and read about all these parameters Here.

References :- MultiChain White Paper