2

I have few doubts regarding verification of transaction and am trying to find answers from last few days. I agree similar post exist in this portal but I am not getting satisfactory answer for my questions. Its also fine if you can paste link which has detailed analysis of transaction verification if its annoying to answer same questions again and again.

1) Since block is created after constant number of transactions is it the case that, until that number of transactions are accumulated all transactions remains on hold?

2) Since there is only one coinbase transaction per block does this mean that all the rewards are accumulated in single transaction and then distributed among the winners?

3) When transaction is verified what exactly it verifies and how it verifies ? Here major part of my confusion is. As per my understanding it checks each and every transaction from beginning of time by verifying signatures to check whether given transactions are unspent or not which I feel is unpractical.

Thanks for your time

1 Answer 1

2

1) Since block is created after constant number of transactions is it the case that, until that number of transactions are accumulated all transactions remains on hold?

Your premise is false. Blocks are not created after a constant number of transactions. They are created whenever someone manages to create one.

2) Since there is only one coinbase transaction per block does this mean that all the rewards are accumulated in single transaction and then distributed among the winners?

No. Each block has a coinbase transaction that rewards the miner who generated that block.

3) When transaction is verified what exactly it verifies and how it verifies ? Here major part of my confusion is. As per my understanding it checks each and every transaction from beginning of time by verifying signatures to check whether given transactions are unspent or not which I feel is unpractical.

You don't have to actually do this. You just have to produce the same results as you would if you did this. Since you check each transaction as it occurs, there's an obvious optimization -- there's no need to check transactions you've already checked. That will be every past transaction.

Basically, you check that the transaction is well-formed, properly signed, doesn't spend out more money than it pulls in (unless it's a coinbase transaction), and that all the funds it pulls in come from valid transactions and haven't yet been spent.

5
  • I think I should dig more about block creation. Thanks for your answer. Regarding question 3, then how double spending is checked for broadcasted trasaction? Commented Mar 11, 2014 at 8:25
  • In a double spend, whichever transaction comes second will try to spend outputs that have already been spent. That will render the block invalid. (So no miner would create a block with a double spend as they would get no reward. But if they did, everyone would just ignore it since it's invalid.) Commented Mar 11, 2014 at 8:31
  • Ok Just consider this scenario, if I have two transactions which are assigned to me and I want to spend them, then if I try to double spend them by doing single transaction (using both as input ) today and then again using same transactions 10 years after. Is this a possible scenario and if yes will it be checked in network? Commented Mar 11, 2014 at 8:39
  • Yes, it will be checked. The system behaves as if every input of every transaction is checked to see if it was spent by any other transaction that has ever been processed. (Of course, obvious optimizations are done. For example, servers keep track of all unspent outputs so it's just a "does this set contain this value" operation.) Commented Mar 11, 2014 at 8:49
  • oohh I think here concept of index comes into picture which gives information about unspent transaction. Thank you for patiently answering my questions. Commented Mar 11, 2014 at 8:53

Your Answer

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

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