Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Chain reorgs and double spends are two different sets. IIRC the 2010 reorg didn't have any double spends

>It’s impossible to count how many of those abandoned transactions were successfully replayed on the new chain

To detect if transactions were double spent, you would need some sort of database. Like a data base with _really_ good integrity. Maybe with periodic and limited deltas. Increase the some of the integrity with decentralized time stamping, sleeping-beauty hashed chaining. hmmm I wonder if there is anything like that...

Cheekiness aside, it's possible a node could ascertain whether or not transactions were replayed and definitely not impossible. The steel-man reply is: node software doesn't have great resources to do it.



No, it's literally impossible. That's the whole point of a decentralized blockchain: nodes cannot (and don't want to) have total information about the network. That is, nodes don't know if re-org's are happening elsewhere in the network and don't know if they are about to get re-org'd. Every re-org is an opportunity for the actors involved in the re-org to send BTC elsewhere on the new chain and thus make transactions on the old chain "reversed".

Nodes in Bitcoin do not care if these transactions were reversed across chains, they only care about the transactions on the one most work valid chain, where "valid" is a set of rules expressed in the software binary that node is running. Two nodes can disagree on validity rules and literally never find out. Or a block can trigger a fork in the 2 nodes and then we need developers to tell us which chain is valid Bitcoin (see 2017 fork). While this is happening, transactions can go from being settled in a valid most-work chain to suddenly being considered invalid because everyone else is rejecting that chain.

It's a faulty design for a global payment network. We'd expect it to be predictable in how it handles transaction reversal and for human entities to be held accountable for ruleset changes.


You've moved goalposts. Your original claim was:

A) >It’s impossible to count how many of those abandoned transactions were successfully replayed on the new chain

now it's

B) >nodes don't know if re-org's are happening elsewhere in the network

Claim A is false as it is indeed entirely possible:

I have a chain of height 100. It is fully synced. I am sent a series of blocks diverging at height 80. I have all the information I need to ascertain which of the transactions in the two competing chains are being replayed or have been doublespent.

Claim B is true


You're assuming in claim A that your node knows about all abandoned chains. Like I said, that's impossible because nodes don't have total information. I'll simplify and strengthen my claim for you: it's impossible to find all reversed transactions.

The comment I was replying to claimed that transactions can never be reversed. I'm just highlighting how this represents a poor understanding of how Bitcoin really works.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: