0

In Bitcoin, in order for a transaction to be added to the pool of valid transactions that will be added to the chain block by the miners, at least 51% of the nodes/peers need to review that transaction and see that the public key issuing it A) has the funds to issue it, and B) has not spent them in another transaction.

  • Does anyone know how the peers network actually keeps track of that validation evolution?
  • Does each peer individually review the transaction and then send the result (valid or not) somewhere, and in this somewhere the count is made until reaching 51%?
  • Or does each validating peer somehow know about the validation result of other peers?
  • How does the system know when the 51% is reached? Isn't for that required to know the total number of nodes in the network? How can this be if each node is just connected to few peers?

I cannot somehow come up with an answer that does not imply a server knowing ALL the peers in the network...

Thank you very much for your help

2

in order for a transaction to be added to the pool of valid transactions that will be added to the chain block by the miners, at least 51% of the nodes/peers need to review that transaction and see that the public key issuing it A) has the funds to issue it, and B) has not spent them in another transaction.

This is incorrect, there is no requirement for a certain number or percentage of network peers to review or validate a transaction before it is included in a block. A transaction is either valid, or not.

Validation is done at the scale of each individual node: each node can validate a transaction on its own, and know that it is valid, without relying on any other node to confirm this info for them. An overview of the transaction validity rules can be found here. Only valid transactions can be included in blocks, so miners will validate transactions before including them in a block they are mining. Including a non-valid transaction would make the block invalid, so miners are incentivized to make sure they only include valid transactions.

In fact, miners can include transactions that were not broadcast to the network first, so that the rest of the network will first hear about the transaction when they receive that miner's new block (assuming the miner finds a valid block, of course). As long as the block is valid (which requires all transactions to be valid), this is just fine, no 51% majority is needed.

  • To clarify, miners are responsible for finding new blocks. Miners do run nodes, but common terminology is to refer to a non-mining node as a ‘node’, and a mining node as a ‘miner’. Once a miner finds a block, they broadcast it to all other miners and nodes. Each individual in the network will check the validity of the block (and as part of that, its transactions), and then append it to their local copy of the blockchain. Invalid blocks will be dropped from the network, the same goes for invalid transactions. – chytrik Jun 28 '18 at 22:49
  • Thank you very much for your detailed answer, chytrik. If a node takes a particular transaction, packs it into a block and makes it to append the block to the blockchain, then the new blockchain will just be updated in all other ledgers, without actually all those other nodes checking the validity of the transactions within the block? Or will they? In this case, how do we prevent a malicious node to include an illegitimate transaction into the network? Or do actually all other nodes that get the updated Blockchain also check the validity of the transactions in the new added blocks? – mosegui Jun 28 '18 at 22:51
  • Ok Chytrik, thank you very much. Now I got it – mosegui Jun 28 '18 at 22:53

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.