0

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.

1 Answer 1

1

How can Node B certify that block x is an invalid block

At a very basic level: a blockchain is a hash-linked list. Each block references the hash of the block preceding it, so any modification to a past block will be obvious, because that block's hash will no longer be a part of the longest chain.

The situation is trickier for a new node that is hearing the history for the first time though, or during a time when there are two valid competing chain-tips. Which chain-tip should be considered valid?

Bitcoin uses proof-of-work to decide which chain is valid: the one that has the most work accumulated (often termed 'the longest chain'). You cannot fake work being done, and so the competition amongst miners is what secures the network's history from tampering.

Without an objective measure (ie, energy spent creating a PoW), it can become very difficult to determine the valid chain in the event of a chain-split. You could create a system of voting, but such a system relies on subjective measures, and as such may be more game-able by network participants.

1
  • When it comes to a blockchain where there’s no mining involved, just a bunch of nodes that are the ones in charged of keeping the blockchain’s correctness alive, what way would be good to solve the aforementioned issues according to your knowledge? Thank you!
    – Juan
    Feb 11, 2019 at 11:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.