Author

Topic: What is the path a Bitcoin makes from "Send" to "Receive" ? (Read 824 times)

sr. member
Activity: 257
Merit: 251
Not at all, I appreciate the comments - I'll try to make a better video about the 51% attack - the last one wasn't that great in my opinion.
copper member
Activity: 1498
Merit: 1528
No I dont escrow anymore.
So I tried grouping all of the answers here into a video and this is what I got. Hope you like the outcome.

I mostly like it, but I dont quite get this part

Quote
Miners will gather this floating transaction file along with other unconfirmed files like it, and will need to order them in some way. This is important in order to prevent double spending as explained in previous videos.

The order of the transactions within a block does not matter. Since you say "in same way" I think its fine. Its just a list of transactions. Are you hinting at finding the hash here?
Also you are not preventing double spending here, at least not all kinds of double spends.

I checked your video on doublespending, here: https://www.youtube.com/watch?v=cOc7V64HUDQ

While I like it -again mostly- I think you should add the 51% attack / brute force attack. A quality video that can explain a 51% attack would be pretty popular right now Wink

I know Im nit-picking Tongue
sr. member
Activity: 257
Merit: 251
So I tried grouping all of the answers here into a video and this is what I got. Hope you like the outcome.
copper member
Activity: 1498
Merit: 1528
No I dont escrow anymore.
At what stage, does the prioritization occur, when people pay more, to get the transaction processed quicker?

The transaction will be in the next block if you pay 0.0001 per KB (which is done automatically by most clients anyway). If you pay more you are still in the next block, so it wont go any faster. Its not like miners can find a block faster just because you pay tripple default fee.

Before entering the blockchain?

Miners include transactions into blocks. They decide if your transaction will be in the block they try to solve. If they find the block they get the fee. So each miner/mining pool can decide which transactions to take and which not.

Hope I expressed myself correctly  Huh

Not sure, if not ask again Wink
legendary
Activity: 1904
Merit: 1074
At what stage, does the prioritization occur, when people pay more, to get the transaction processed quicker?

Before entering the blockchain?

Hope I expressed myself correctly  Huh
sr. member
Activity: 266
Merit: 250
Quote
1. Is this order of things correct ?

In general yes, however step two is not entirely correct. It is more correct to say that nodes broadcast your transaction. Step three should also be changed to nodes check your transaction against the most recent block on the blockchain to ensure your TX is valid.

Quote
2. Is every computer that holds the whole blockchain on it considered a node

As long as they are connected to other nodes and transmit transactions throughout the network.

Quote
3. Will the recipient see the transaction in his client only after 1 confirmation or even when it's unconfirmed ?

The recipient will see the TX as 0/unconfirmed as long as it is connected to a node that the TX has been propagated to. The recipient will almost certainly see the TX as soon as it has one confirmation

Quote
4. Don't miners also participate in the act of validating transactions or are they just used for ordering them inside the Blockchain ?

Miner can input transactions in the blocks they mine even if the transactions have not been broadcast throughout the network. Generally speaking miners use certain criteria to determine what TXs will be included in a block. Most miners will not include irregular transactions. It is not possible to include an invalid transaction (one that sends a spent output) as the block would not be valid.
sr. member
Activity: 257
Merit: 251
Quote
Detailed answer, shorten it as you please:

1. You press "send":
Wallet signs a transaction with private key to prove to the network that it's a valid transaction.

2. Your transaction is sent but "unconfirmed":
Wallet sends the transaction to the network. This transaction is like a file which is shared with everyone (and most importantly, with the miners) p2p style - it's floating around the network, being shared. If the transaction is in any way not valid the nodes and the miners of the network would not "accept" it - they would delete it and stop sharing it.

Each miner maintains their own "mempool" which is basically a pile of transactions that floated around. When you sign a transaction and transmit it p2p, you're hoping the nodes and miners relay it to each other until most everybody has a copy of it in their pile of transactions. "Unconfirmed" means the signed transaction is floating around but hasn't entered the blockchain yet. This is considered "unconfirmed" because even though you signed it and it's valid, you don't know in what order it will enter the blockchain.

3. Your transaction "confirms":
The miners build their blocks from whatever they have in their pile, so if your transaction is there, it is being included in the next block. When a miner "finds" a block, it contains all the transactions the miner had in their pile. Until it's in the block the transaction is just floating around, it's not actually in the blockchain - but once in the blockchain you know there's very little anyone can do to "reverse" or mess around with the order of transactions so it's "confirmed".


Amazing detailed explanations - thank you  both so much, I feel that this has cleared up what I needed to know.
WiW
sr. member
Activity: 277
Merit: 250
"The public is stupid, hence the public will pay"
WiW
sr. member
Activity: 277
Merit: 250
"The public is stupid, hence the public will pay"
Detailed answer, shorten it as you please:

1. You press "send":
Wallet signs a transaction with private key to prove to the network that it's a valid transaction.

2. Your transaction is sent but "unconfirmed":
Wallet sends the transaction to the network. This transaction is like a file which is shared with everyone (and most importantly, with the miners) p2p style - it's floating around the network, being shared. If the transaction is in any way not valid the nodes and the miners of the network would not "accept" it - they would delete it and stop sharing it.

Each miner maintains their own "mempool" which is basically a pile of transactions that floated around. When you sign a transaction and transmit it p2p, you're hoping the nodes and miners relay it to each other until most everybody has a copy of it in their pile of transactions. "Unconfirmed" means the signed transaction is floating around but hasn't entered the blockchain yet. This is considered "unconfirmed" because even though you signed it and it's valid, you don't know in what order it will enter the blockchain.

3. Your transaction "confirms":
The miners build their blocks from whatever they have in their pile, so if your transaction is there, it is being included in the next block. When a miner "finds" a block, it contains all the transactions the miner had in their pile. Until it's in the block the transaction is just floating around, it's not actually in the blockchain - but once in the blockchain you know there's very little anyone can do to "reverse" or mess around with the order of transactions so it's "confirmed".
copper member
Activity: 1498
Merit: 1528
No I dont escrow anymore.
Hey.
I'd like to see if I got the whole Blockchain, nodes, miners thing all tied up together. If I understand correctly this is the path a Bitcoin makes from the moment I send it until it is received on the other side:


1. I click "send" on my wallet

Your programm you use as a wallet makes a transaction at this point.

2. The Blockchain is updated on my client and my transaction is set inside the "unconfirmed transactions pool"

No, the blockchain is the chain of all valid blocks. Your transaction is not yet mined into a block thus it is not "on chain". The transaction is broadcasted as a transaction that has yet to be confirmed (put into a block).


3. The "new copy" of the blockchain is sent to differnet nodes in the network which verify the validity of the transaction (meaning that I actually have the Bitcoins I need to spend and checking my digital signature using my public key).

Again, not the blockchain. The transactions propagate through the network without beeing in a block.

4. Miners take my transaction from the unconfirmed pool, group it with other transactions and create a block

See, here you got it right again. The miners take your transaction from the pool of transactions and try to create a block. We can -for the sake of simplicity- assume that the make the new block successfully.

5. Once the block is confirmed the recipient will see the transaction in his client.

Nope. Unconfirmed transactions are also seen on the client. As soon as the transaction is in the first block and the clients knows about this block it is shown with the first confirmation.

A few questions:
1. Is this order of things correct ?

The order is fine, just make sure that transactions are not blocks.

2. Is every computer that holds the whole blockchain on it considered a node ?

Everyone who has a full copy is considered a full node, yes.

3. Will the recipient see the transaction in his client only after 1 confirmation or even when it's unconfirmed ?

Even unconfirmed, because transactions can reach the clients when they are not in a block yet.

4. Don't miners also participate in the act of validating transactions or are they just used for ordering them inside the Blockchain ?

The "put transaction into a block"-part is the validation. Invalid transaction do not go into the blocks.

I know these are a lot of questions but these are loose ends I have after extensive research. Also if it's possible to keep answers non technical that would be better since I'm not a techie.

Thanks a lot !!

I hope they where not to technical Smiley If you have more, ask more.
full member
Activity: 224
Merit: 100
These are great questions, and leads to one of my own when someone answers them (and a part I can answer). People can see unconfirmed (0 confirmation) transactions. So my question is how these are sent to the clients when they aren't actually on the blockchain yet.

I think I can explain that at least. This is caused by point three in the OP. The transaction is sent out for confirmation and propagates through the network so every connected node (wallet) willl see it eventually. I mean after all the transaction must reach the mining nodes somehow to get into the blocks for confirmation.
legendary
Activity: 1988
Merit: 1007
Hey.
I'd like to see if I got the whole Blockchain, nodes, miners thing all tied up together. If I understand correctly this is the path a Bitcoin makes from the moment I send it until it is received on the other side:

1. I click "send" on my wallet
2. The Blockchain is updated on my client and my transaction is set inside the "unconfirmed transactions pool"
3. The "new copy" of the blockchain is sent to differnet nodes in the network which verify the validity of the transaction (meaning that I actually have the Bitcoins I need to spend and checking my digital signature using my public key).
4. Miners take my transaction from the unconfirmed pool, group it with other transactions and create a block
5. Once the block is confirmed the recipient will see the transaction in his client.

A few questions:
1. Is this order of things correct ?
2. Is every computer that holds the whole blockchain on it considered a node ?
3. Will the recipient see the transaction in his client only after 1 confirmation or even when it's unconfirmed ?
4. Don't miners also participate in the act of validating transactions or are they just used for ordering them inside the Blockchain ?


I know these are a lot of questions but these are loose ends I have after extensive research. Also if it's possible to keep answers non technical that would be better since I'm not a techie.

Thanks a lot !!

These are great questions, and leads to one of my own when someone answers them (and a part I can answer). People can see unconfirmed (0 confirmation) transactions. So my question is how these are sent to the clients when they aren't actually on the blockchain yet.
sr. member
Activity: 257
Merit: 251
Hey.
I'd like to see if I got the whole Blockchain, nodes, miners thing all tied up together. If I understand correctly this is the path a Bitcoin makes from the moment I send it until it is received on the other side:

1. I click "send" on my wallet
2. The Blockchain is updated on my client and my transaction is set inside the "unconfirmed transactions pool"
3. The "new copy" of the blockchain is sent to differnet nodes in the network which verify the validity of the transaction (meaning that I actually have the Bitcoins I need to spend and checking my digital signature using my public key).
4. Miners take my transaction from the unconfirmed pool, group it with other transactions and create a block
5. Once the block is confirmed the recipient will see the transaction in his client.

A few questions:
1. Is this order of things correct ?
2. Is every computer that holds the whole blockchain on it considered a node ?
3. Will the recipient see the transaction in his client only after 1 confirmation or even when it's unconfirmed ?
4. Don't miners also participate in the act of validating transactions or are they just used for ordering them inside the Blockchain ?


I know these are a lot of questions but these are loose ends I have after extensive research. Also if it's possible to keep answers non technical that would be better since I'm not a techie.

Thanks a lot !!
Jump to: