What happen is someone mess around with a block ?

+1 vote
Let say I have few private nodes, and one was compromise and the attacker change the content of the block. How the other nodes response to this ? Will the compromise node or block be black list ?
asked Sep 2, 2017 by AmK

2 Answers

+1 vote
I dont believe there is any kind of blacklisting, its all in the rules.. (I would also like to know how we can identify a node/ip that is sending "bad" data, so we can block it perhaps, else they can continue to send invalid addresses etc.. - is this in a log somewhere?)

A block must pass the various assertions. You cannot double spend, you cannot manufacture new coins etc. The rules are designed to ensure integrity of the data. Remember that this is all hashed and the chain is confirmed many times.

If a malicious node, creates or alters a block and sends it to other nodes, it must abide by the rules, for example, if the first transaction tries to send more than the consensus amount for a miner, it will be thrown out.

If the block is valid against all these rules, you will get into a fork scenario, where two chains now exist. This fork is resolved by the next mining around (or the next), where the winner of the next block, will propagate his block, and the correct block before it, thus removing the fork. In a bitcoin scenario, a malicious node, would be quickly discarded by consensus rules and not get anywhere.

On multichain, if you only have two nodes you could have a real problem*, but with a good infrastructure and healthy amount of miners, the chances of this is next to zero.

*we have the ability to change permissions and consensus rules.
answered Sep 4, 2017 by MaSsv
0 votes
Yes, there is automatic blacklisting within MultiChain for nodes that send invalid transactions, blocks, and so on. The basic architecture of this is inherited from Bitcoin Core, the reference implementation for the bitcoin network, so it's been quite seriously battle tested in the open Internet.
answered Sep 4, 2017 by MultiChain
where can I see these?
You can see banscore in the output of getpeerinfo (if misbehaving node is still connected). Nodes are disconnected and banned if banscore reaches 100 (if not overridden by -banscore runtime parameter).

You can look for the word "Misbehaving" in debug.log. If you see "ERROR" row in debug.log, sometimes banscore is incremented too.

When node is banned, you will see "BAN THRESHOLD EXCEEDED" record in debug.log
awesome. thanks