0

It is often said that the major bottleneck of blockchain scalability is that every (honest) node has to process every (valid) transactions. But the progress of a blockchain is how fast it reaches consensus, and this does not seem to require all nodes to verify all transactions as the block containing the longest chain can spread throughout the network before every transactions in the block is verified by all the nodes.

2

But the progress of a blockchain is how fast it reaches consensus, and this does not seem to require all nodes to verify all transactions as the longest chain can spread throughout the network before every transactions on it is verified by all the nodes.

All nodes having received a block does not mean that the network has come to consensus. Consensus occurs when all nodes on the network agree on what the blockchain is. This can only happen once every node has verified all blocks and their transactions. So verifying all blocks and transactions is actually a bottleneck.

  • Yes, I was saying that consensus is reached when (the block containing) a longest chain spread throughout all the nodes, not just any block. All node will agree on the longest chain based on its cumulative work. When a node is validating a block, its acceptance does not require that all transactions in the block must have reached the node beforehand, just that the block and its content follows all the rules. – Danny Jan 22 at 7:11
  • The validity criteria includes that all the transactions in a block are valid. – Anonymous Jan 22 at 9:29
  • @Anonymous , Yes but I am referring to the validation of each transaction when a node receives it, not the one during block validation. (normally each tx is verified twice in the blockchain network) – Danny Jan 22 at 10:14
  • They’re really not. Validation happens once and is cached if not in a block. – Anonymous Jan 22 at 10:24
  • 2
    Not necessarily. BIP 152 Compact Blocks allows for blocks to be relayed before they are fully validated. It is possible to have received and then relayed an invalid block because some parts of it were valid. This has happened in the past. If you assume that all nodes have verified all of the transactions in a block before that block is relayed, then yes, when the block has propagated to all nodes consensus has been achieved. There is no need for every node to receive and verify all unconfirmed transactions for consensus to be reached. Bitcoin Core even allows for this by using blocks only mode – Andrew Chow Jan 22 at 16:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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