<blockquote>
  <p>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?</p>
</blockquote>

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

<blockquote>
  <p>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?</p>
</blockquote>

<p>No. Each block has a coinbase transaction that rewards the miner who generated that block.</p>

<blockquote>
  <p>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.</p>
</blockquote>

<p>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.</p>

<p>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.</p>

CC BY-SA 3.0
2014-03-11T08:25:39.393Z
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?
Frankenstein
CC BY-SA 3.0
2014-03-11T08:31:18.227Z
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.)
David Schwartz
CC BY-SA 3.0
2014-03-11T08:39:33.343Z
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?
Frankenstein
CC BY-SA 3.0
2014-03-11T08:49:36.413Z
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.)
David Schwartz
CC BY-SA 3.0
2014-03-11T08:53:48.180Z
oohh I think here concept of index comes into picture which gives information about unspent transaction. Thank you for patiently answering my questions.
Frankenstein
CC BY-SA 3.0
2014-03-11T08:20:01.923Z
2014-03-11T08:20:01.923Z
David Schwartz
<p>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.</p>

<p>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? </p>

<p>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?</p>

<p>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.</p>

<p>Thanks for your time     </p>

<blockchain><signature><verification><mining-reward><transaction-verification>
Verification of transaction once trasaction is broadcasted
Frankenstein
# Verification of transaction once trasaction is broadcasted

(Asked by: username_0 on 2014-03-11)

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

**Tags:** blockchain, signature, verification, mining-reward, transaction-verification


---

## 1 answers

### Answer by username_1 on 2014-03-11. Score: 2 | Accepted answer

> 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.

> **Comments:**
> **username_0**: 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?  
> **username_1**: 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.)  
> **username_0**: 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?  
> **username_1**: 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.)  
> **username_0**: oohh I think here concept of index comes into picture which gives information about unspent transaction. Thank you for patiently answering my questions.  

---

