3

To be more specific, if I imagine to work with isolated transactions chained to each other according to money flow, then I understand that we wish to have a single chain because forks would mean the presence of double-spend attempts.

But blocks actually are an aggregate of transactions happened in a certain window of time, so I find hard to understand the necessity of not having forks in a chain of blocks. Are transaction chains and block chains two very different things with different purposes? What I understood is that the first has the goal to order temporally the transactions while the second serves to make tamper proof the ledger by incorporating hashes of a block in another one.

In my mental model the time ordering goal is already reached by the transactions data structure itself while the chain of blocks has the (only) purpose of making tamper proof the structure. What am I not understanding?

2 Answers 2

6

if I imagine to work with isolated transactions chained each other according to money flow, then i understand that we wish to have a single chain because forks would mean the presence of double-spend attempt.

The purpose of the blockchain is to enforce this. It is cheap to make conflicting transactions - the sender of a transaction can trivially double spend themselves. The blockchain serves as a method to determine which of those "forks" of the transaction graph is the "correct" one. The fact that it does so through batches of transactions doesn't matter, it resolves the same issue for all transactions included. Forks in the blockchain allow for conflicting transactions to enter the blockchain and be considered the "correct" transaction.

3
  • Thank you for the answer. Is it wrong to say that ,from the point of view of a merchant who receives a payment for example, forks are informative of the fact that some nodes refuse some transaction within that orphane block and that it should be wiser to wait ,before accepting payment and provide goods,until a confirmation (i.e. it belongs to a longest chain) ? But ,rejecting a block (leaving it orphan) implies that also valid transactions become invalid ones. Can this represent a problem or is it an unavoidable collateral effect of granting this kind of security ? Thank you
    – loremas89
    Apr 23 at 19:34
  • @loremaster: follow-on questions are better asked as new questions. They can refer back to an earlier question if needed. Like this. This is because this website intends to be a permanent easily searched repository of good, durable answers to specific problems. That goal is thwarted if we treat it as a discussion. May 23 at 15:04
  • @RedGrittyBrick thank you for the suggestion
    – loremas89
    Jun 2 at 18:58
3

The whole point of Bitcoin’s proof of work is to converge on a single transaction order. Each block has to be consistent within itself and with its entire history of predecessors. Each transaction output can only be spent once in a valid transaction ordering, so having a single canonical transaction order solves the doublespending problem.

Two competing blocks at the same height usually contain overlapping sets of transactions. They may also contain conflicting transactions that spend some of the same transaction outputs to different recipients. In that case, the network has not yet settled which of the competing transactions will be contained in the best chain. Only when one of the two blocks is buried by significantly more proof of work than the other (e.g. one chaintip has no succeeding blocks, the other is followed by ten more blocks) there is a strong probabilistic argument that the transactions confirmed in the block that is part of the heavier chain are reliable.

When a Bitcoin-style blockchain has frequent forks, it means that first confirmations are generally unreliable, and users should wait for more confirmations before being confident that they got paid.

1
  • Thank you a lot
    – loremas89
    Jun 2 at 18:56

Your Answer

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

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