How to monitor the mutability of Multichain blockchain

+1 vote
I am running a multichain-based web application which is storing the content in the form of transactions as an append-only ledger. I know that my blockchain is private and only permitted nodes can generate new transactions. What if a permitted node generates malicious content and pushes it onto the blockchain or tries to change a transaction's data that has become part of a block. Obviously, the blockchain will not stop him/her to do it. So, here are my two main questions:

1. How to monitor the data mutability of multichain. Assume that we know hash pointers, previous block hash, etc.

2. How multichain can revoke the publishing of malicious content onto it
asked Aug 26, 2021 by Ahtazaz

1 Answer

0 votes

So I assume you want to monitor if one particular node is changing its local information, i.e. lying about history in its responses to MultiChain API requests that come to that particular node, based on a changes in that local node's storage of blocks. (The network and blockchain design as a whole will prevent a malicious node from overwriting the history on other nodes.)

If you want to monitor for this (slightly unusual) scenario, you.can retrieve the full raw data for any block of concern, using the getblock API with verbose=0 and then calculate any hash function of that raw data. Do the same on other nodes, and check that the hash values match.

In terms of revoking malicious content, you have two choices: (a) do this at the application level, i.e. post a subsequent stream item which labels the previous one as malicious and instructs other nodes of the application to ignore it, or (b) use MultiChain Enterprise together with offchain data, with the purgepublisheditems and purgestreamitems commands run on all nodes to remove their local copies of the data.

Remember that you also have stream filters which can be uses to validate data before it is published to a stream.

answered Aug 27, 2021 by MultiChain