I'm a software developer, and I have some questions about private blockchains, I'd like to have technical answers since I'm trying to understand blockchain at a code level. I'm going to write a problem, and it's all for the sake of getting ideas :)
So this is the context:
We have a private blockchain where blocks are added by a certain type of node (let's call them validators). The validators are the ones that are allowed to add blocks to the chain: they of course, verify the blocks by making use of some rules.
We also have the regular nodes (they can't add blocks but they can send their chain to other nodes if x node requires it)
Node A modified a block (x), and node B requested Block X to node A, Node A sends its block to Node B but this block that was just sent is an invalid block because it has been modified.
How can Node B certify that block x is an invalid block (since It's valid for Node A, how does node B know that it's an invalid block): we have a 50-50, who holds the truth then?
Would node B need many examples of Block X so Node B can decide if the block is valid?: 10 examples were received by Node B, 9 out of those 10 examples has the same hash (Y) but the hash that is different (block x from Node A) is the minority, so the winning hash (winning block) would be Y
Would we need an election process where the validators nodes decide which block is valid?
How would we solve that issue according to your knowledge?
I think that problem I just wrote is called The byzantine fault problem (I'm not sure but According to what I've read it seems like it is). I'd be glad to hear answers from you and any ideas as well!.
NOTE: THE PROBLEM I just described is not related to any blockchain of any cryptocurrency. The problem i described is only related to the blockchain technology itself and applications based on it.