Bitcoin Forum

Other => Beginners & Help => Topic started by: BTC Turkiye on October 11, 2018, 01:29:29 AM



Title: A Rookie Question (Sorry)
Post by: BTC Turkiye on October 11, 2018, 01:29:29 AM
Does full nodes also confirm transactions? or is it only the miners who confirm?
If the nodes don`t confirm any transactions then all they do is just send, receive and keep a ledger am I right on this?
Also signature stuff etc but that`s pretty much it though right?


Title: Re: A Rookie Question (Sorry)
Post by: pooya87 on October 11, 2018, 03:45:10 AM
the term "confirm" is used when a transaction is included in a block. which means miners are the ones "confirming" transactions because they find blocks and include transactions in it.

if you mean "validate" then that is what nodes do. they receive transactions, validate them to see if they are not breaking any rules and relay them to the rest of the network. they also receive blocks that miners find, and again validate those before adding them to their "storage" which is the local copy of the blockchain they store.

more info: https://en.bitcoin.it/wiki/Full_node


Title: Re: A Rookie Question (Sorry)
Post by: BTC Turkiye on October 11, 2018, 06:10:14 AM
the term "confirm" is used when a transaction is included in a block. which means miners are the ones "confirming" transactions because they find blocks and include transactions in it.

if you mean "validate" then that is what nodes do. they receive transactions, validate them to see if they are not breaking any rules and relay them to the rest of the network. they also receive blocks that miners find, and again validate those before adding them to their "storage" which is the local copy of the blockchain they store.

more info: https://en.bitcoin.it/wiki/Full_node

I think it`s a really good explanation and I understood most of it. But I`m confused on one minor thing;
What`s the (technical) difference between confirming and validating?


Title: Re: A Rookie Question (Sorry)
Post by: Jet Cash on October 11, 2018, 07:36:34 AM
Isn't a confirmation the addition of a new block to the longest chain, and therefore confirming that the block, and the transactions within it, are a part of the permanent blockchain. Validation is the checking of transactions to ensure that they do not break any of the rules, and that they are derived from spendable funds. A block that contains an invalid transaction can render that block invalid, and cause sunsequent blocks to be built on the previous block. This shows the danger to miners who don't check for valid transactions when building blocks.


Title: Re: A Rookie Question (Sorry)
Post by: Banemu on October 11, 2018, 07:46:08 AM
the term "confirm" is used when a transaction is included in a block. which means miners are the ones "confirming" transactions because they find blocks and include transactions in it.

if you mean "validate" then that is what nodes do. they receive transactions, validate them to see if they are not breaking any rules and relay them to the rest of the network. they also receive blocks that miners find, and again validate those before adding them to their "storage" which is the local copy of the blockchain they store.

more info: https://en.bitcoin.it/wiki/Full_node

I think it`s a really good explanation and I understood most of it. But I`m confused on one minor thing;
What`s the (technical) difference between confirming and validating?

validation is done by full nodes before the transaction is added to transaction queue - mempoo for further processing which after it is additionally validated and added to a block.

Miners disburse electrical and processing power confirming transactions in the queue. After confirmation, it is then added to a block. The entire block has been generated and confirmed. Until a miner produces a new block containing the transaction, it is not confirmed

Most Nodes do validation rejecting transactions that are considered invalid, but ONLY miners do confirmation.





Title: Re: A Rookie Question (Sorry)
Post by: pooya87 on October 11, 2018, 12:54:00 PM
~
I think it`s a really good explanation and I understood most of it. But I`m confused on one minor thing;
What`s the (technical) difference between confirming and validating?

this of this duo as "separation of concerns".
- a miner is only concerned with performing mathematical operations and finding the next block as fast as possible so that he can win the race and get the block reward. when he finds a block and includes transactions in them, he is "confirming" those transactions.
- a node is responsible for "validating" everything including transactions. this means to check the transaction so that it is not spending fake coins, not creating more coins that is had, check to see it has the right signature,... and then gives these transactions to the miner to include in his block.

when you are a miner you just have hardware (ASIC) that doesn't even understand what a valid tx is. it only knows what hash is and how to do it fast. then you as a miner either run a node that does the verification for you or connect to a mining pool that runs a node that does the verification.