MultiChain technology is a platform that helps users to establish a certain private Blockchains that can be used by the organizations for financial transactions. A simple API and a command-line interface are what MultiChain provides us. This helps to preserve and set up the chain.
MultiChain is for creating new blockchains with their own native currencies and/or issued assets. Users cannot transact existing cryptocurrencies on MultiChain unless someone trusted acts as a bridge in the middle, holding some cryptocurrency and issuing tokens on MultiChain to represent it.
MultiChain is an offtheshelf platform for the creation and deployment of private blockchains, either within or between organizations. It aims to overcome a key obstacle to the deployment of blockchain technology in the institutional financial sector, by providing the privacy and control required in an easytouse package.
Like the Bitcoin Core software from which it is derived, MultiChain supports Windows, Linux and Mac servers and provides a simple API and commandline interface.
In the next few sections we describe the first public release of MultiChain. Later we discuss several other features on the MultiChain roadmap.
Private blockchains MultiChain solves the related problems of mining, privacy and openness via integrated management of user permissions. The core aim is threefold: (a) to ensure that the blockchain’s activity is only visible to chosen participants, (b) to introduce controls over which transactions are permitted, and (c) to enable mining to take place securely without proof of work and its associated costs.
Once a blockchain is private, problems relating to scale are easily resolved, since the chain’s participants can control the maximum block size. In addition, as a closed system, the blockchain will only contain transactions which are of interest to those participants. To understand permissions in MultiChain, we begin by noting that all cryptocurrencies manage identity and security using public key cryptography.
Users randomly generate their own private keys and never reveal them to other participants. Each private key has a mathematically related public address which represents an identity for receiving funds.
Once sent to a public address, those funds can only be spent using the corresponding private key to “sign” a new transaction. In this sense, access to a private key is equivalent to ownership of any funds which it protects.
Beyond controlling access to funds, this type of cryptography enables any message to be signed by a user to prove that they own the private key corresponding to a particular address. MultiChain uses this property to restrict blockchain access to a list of permitted users, by expanding the “handshaking” process that occurs when two blockchain nodes connect:
- Each node presents its identity as a public address on the permitted list.
- Each node verifies that the other’s address is on its own version of the permitted list.
- Each node sends a challenge message to the other party.
- Each node sends back a signature of the challenge message, proving their ownership of the private key corresponding to the public address they presented.
If either node is not satisfied with the results, it aborts the peertopeer connection. The principle of connecting permissions to public addresses can be extended to many other operations on the network. For example, the right to send and/or receive transactions can be restricted to a given list of addresses, since transactions reveal the addresses of both senders and recipients. Since transactions can have multiple senders and recipients, a transaction is only allowed if all of its senders and recipients are permitted .
Indeed in some cases we may prefer the blockchain to be fully publicly viewable and only apply restrictions on the ability to transact. Finally, by adding a signature field to the coinbase transaction included by miners in blocks, mining in MultiChain can similarly be restricted . As discussed in the next section, this is crucial to preventing minority rule in a private blockchain.
In MultiChain, all privileges are granted and revoked using network transactions containing special metadata. The miner of the first “genesis” block automatically receives all privileges, including administrator rights to manage the privileges of other users. This administrator grants privileges to other users in transactions whose outputs contain those users’ addresses together with metadata denoting the privileges conferred. When changing the administration and mining privileges of other users, an additional constraint is introduced, in which a minimum proportion of the existing administrators must vote to make a change.
These votes are registered by each administrator in a separate transaction, with the change applied once sufficient consensus is reached .
The first few blocks of a chain define a “setup phase”, in which a single administrator is able to bypass this voting process. Future versions of MultiChain could also introduce “super administrators” who can assignand revoke privileges on their own.
Mining in MultiChain
The MultiChain defines miners to an identifiable set of entities. It introduces a criterion known as mining diversity that binds with 0 <= mining diversity <= 1.
The efficacy of block is verifiable by performing the following:
- Apply the changes in permissions set by transactions and the block respectively.
- Count the total approved miners set after these variations in the block.
- Multiply the number of miners by mining diversity and round up to attain left spacing.
- This, in turn, put the round-robin schedule in effect. The miners create blocks in a rotation in this schedule so as to generate an accurate BlockChain. The mining diversity criterion establishes the rigidness of the scheme. The “one” value delineates that the rotation includes every permitted miner. Whereas zero result means no restrictions at all.
- The protocol of the chain.
- Target time for the block.
- Active permission type.
- Mining diversity.
- Mining incentive.
- Approved type of transaction.
- Maximum block size.
- Maximum meta data per transaction.