2

Different threads were posted in order to clear up this question, but there are some points that I would need to confirm:

  • When you become a full-node (NOT miner, you just downloaded the full blockchain with a wallet or smilar), are you automatically a validator? Meaning that every new block will be validated by you (and the rest of full-nodes) in order to publish to everyone else whether is trusted or not. Or it does not exist someone that can be only a "validator", and only miners can be also validators?

  • Does block validation process spend too much energy? Or validate blocks is not a "big deal"?

  • In protocols that use PoW and PoS/DPoS (Bitcoin, Ethereum, Cardano, EOS...), once a block has been constructed using one of those consensus methods and included into the chain, will be always being involved this "second" validation for the rest of the full-nodes in that particular blockchain network? (I suspect that this second validation could be work slightly different in each of them, but always including this validation for the rest of the nodes)

  • And finally: what happen if one full-node start to rejects new blocks (he/she considers that are not valid), but the rest of the nodes says that is correct? Imagine a troll/hacker that starts to say that all the nodes are invalid, can that people be banned? Or will be that person just ignored?

3 Answers 3

3

When you become a full-node (NOT miner, you just downloaded the full blockchain with a wallet or smilar), are you automatically a validator? Meaning that every new block will be validated by you (and the rest of full-nodes) in order to publish to everyone else whether is trusted or not. Or it does not exist someone that can be only a "validator", and only miners can be also validators?

Yes, all full nodes validate all transactions before putting them in their mempool and all the blocks they receive. You do not publish to anyone if it's trusted or not, everyone checks if it is valid by themselves.

Does block validation process spend too much energy? Or validate blocks is not a "big deal"?

No.

In protocols that use PoW and PoS/DPoS (Bitcoin, Ethereum, Cardano, EOS...), once a block has been constructed using one of those consensus methods and included into the chain, will be always being involved this "second" validation for the rest of the full-nodes in that particular blockchain network? (I suspect that this second validation could be work slightly different in each of them, but always including this validation for the rest of the nodes)

Not sure what exactly you mean here. Every full node will validate all blocks once.

And finally: what happen if one full-node start to rejects new blocks (he/she considers that are not valid), but the rest of the nodes says that is correct? Imagine a troll/hacker that starts to say that all the nodes are invalid, can that people be banned? Or will be that person just ignored?

If someone rejects valid blocks he will be left behind as the other nodes will continue to build their chain. No one asks anyone if "other nodes are valid" or "other blocks are valid", they ask each other for blocks which they verify themselves when they receive them. If he tries to provide an invalid block when asked for one he will be banned by other nodes. That's the whole point of bitcoin, you don't have to trust anyone, you check yourself.

5
  • Hi Mike, pretty good answers over here! :) Was interesting the statement "you dont have to trust anyone, you check yourself". What happen if your transaction is being confirmed (good validation, you have enough founds) by some nodes but rejected by others? (this should not happen since everyone is following the same rules, but imaging that this could happen), or in other words, how many "good" validations should get your transaction before going into the mempool?
    – 3Chicken
    Nov 10, 2018 at 20:49
  • Every node has it's own mempool. As long as you are connected to one good node (i.e not one that is not relaying your valid transaction on purpose) your tx will eventually be propagated to the whole network and a miner will pick it up and put it in a block. Remember transactions are not considered final until they are in a block and have a few confirmation.
    – Mike D
    Nov 11, 2018 at 12:35
  • The question was more focused to what happens when a transaction, TX1 for example, its being spreaded over the network and some nodes reject it (not valid) but others accept it (valid transaction). This should not be possible since all are following same rules, but imagine that happens: - Is there a minimum or "valid transaction" confirmations needed, so the miners can check it into a new block?
    – 3Chicken
    Nov 11, 2018 at 18:48
  • @3Chicken nothing happens, it doesn't matter who rejects, it all it matters is if it's in a block or not. If it can reach a miner and he puts it in a block then there is no problem.
    – Mike D
    Nov 11, 2018 at 21:18
  • Hi Mike. Knowing that a node that detects an invalid transaction does not "publish" it to the rest of them, can happen that an invalid transaction get into a block and no one detected as invalid (but some nodes did)? I would say that this is pretty improbable (since loads of nodes validate your transaction, and I think that also the miner that construct the new block with the TX) but...could happen?
    – 3Chicken
    Nov 11, 2018 at 21:26
1

On the Bitcoin network, all full nodes are validators. Each and every node will check every block it receives to make sure the proof of work is valid, the transactions match the merkle root, the transactions themselves are valid, the block time/size are valid, among other consensus rules.

Does block validation process spend too much energy?

Compared to mining, block validation is rather cheap. However, it is not free, and very large blocks can take a relatively long time to validate. This is one of the reasons for the 20,000 MAX_SIGOPS limit per block.

Networks such as ethereum use the concept of Max Gas to limit the amount of work required to validate a block, since gas consumed is roughly proportional to the computational effort needed to validate a block.

In protocols that use PoW and PoS/DPoS (Bitcoin, Ethereum, Cardano, EOS...), once a block has been constructed using one of those consensus methods and included into the chain, will be always being involved this "second" validation for the rest of the full-nodes in that particular blockchain network?

Yes, in every network, each full node should be validating each block it receives, regardless of the method of construction.

what happen if one full-node start to rejects new blocks (he/she considers that are not valid), but the rest of the nodes says that is correct?

In Bitcoin, a node that provides false data will be banned for bad actions from the peer list of the node it provided false data to.

2
  • Hi Raghav, thanks for the details :) Based on your answers and other threads, basically each node has its own mempool where validate transactions. Now my concern is what happens when a transaction, TX1 for example, its being spreaded over the network and some nodes reject it (not valid) but others accept it (valid transaction). This should not be possible since all are following same rules, but imagine that happens: - Is there a minimum or "valid transaction" confirmations needed, so the miners can check it into a new block?
    – 3Chicken
    Nov 11, 2018 at 10:27
  • And, also: - Is there some value that identify every TX as unique? Whether TX1 it`s spreaded over the network, and exist in millions of nodes (basically millions of mempools) what will avoid to include that TX in more blocks (so will be duplicated, and provoke double spending? I would say that some kind of unique identifier should exist per TX, right? (so whether a TX has been already included into the blockchain, will not be included again).
    – 3Chicken
    Nov 11, 2018 at 10:30
1

Or it does not exist someone that can be only a "validator", and only miners can be also validators?

It totally does exist and is known as full node, which means that it is a node that validates all the rules.

are you automatically a validator?

As above, yes, by definition the full node validates

Does block validation process spend too much energy? Or validate blocks is not a "big deal"?

This depends on the consensus rules and the implementation of the node. In bitcoin, the aim is to make the validation as cheap as possible.

will be always being involved this "second" validation for the rest of the full-nodes in that particular blockchain network?

When the miner creates new block it usually tries to propagate it to the network as quickly as possible so that the rest of the network can build on the top of it so its block will become a part of the best chain.

This means that the block is sent to other nodes and those nodes are usually validating the block and only if it is valid they will propagate further to the network and/or built on top of it.

what happen if one full-node start to rejects new blocks (he/she considers that are not valid), but the rest of the nodes says that is correct?

When a node rejects a block, it usually blacklists the peer that sent it. If there is disagreement on which blocks are valid, the network will split and you will have two different forks that are not compatible.

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.