3 ms·
Less technical, and mostly correct (I left plenty of room to nitpick) Imagine a bank that, instead of having a central computer that all the ATM's call into, r
by URSpider94 14y ago
Less technical, and mostly correct (I left plenty of room to nitpick)
Imagine a bank that, instead of having a central computer that all the ATM's call into, relies on each ATM to track every customer's balance. When I try to withdraw money from any ATM in the network, it checks its records of my balance, then broadcasts the transaction to all of the other ATM's.
Since the network is distributed, an evil-minded customer might send his brother out with a second ATM card, and time two withdrawals of the complete account balance, to take place at virtually the same second. Since it takes a few seconds for each transaction to be disseminated, there is a chance that both withdrawals will succeed before either ATM learns of the other transaction -- thus leaving the bank short by that amount, and me and my bro with twice the cash that we should have.
So, the bank institutes a policy of nominating one ATM at random to issue a report of all transactions that it has received once every minute. This report is guaranteed to be self-consistent -- if a customer's balance would go below zero, then that withdrawal is not included in the report. Ties are broken by time stamp down to the microsecond, and then by random chance in the unlikely event of a tie. Now, an ATM can ensure it's not being duped by transmitting the proposed withdrawal, then waiting to receive the next report and verifying that the withdrawal is included in it, then dispensing the money.
Then one day, a major network cable linking the East Coast and West Coast ATM clusters breaks. Both halves continue right on operating (they are fault-tolerant), but now transactions are only spread to half of the network, and each minute two independent reports are issued, again to only half the network each. Now, if you live in NYC and your brother is in LA, you can each withdraw the full balance from your account, and both transactions will be verified since they are being processed by two independent networks.
Later, when the network cable is patched, the two halves have to merge their respective reports and one of the withdrawals will be thrown out as invalid -- but you still have twice the cash.
- T-hawk 14y agoI can't find a cite, but I read an article somewhere that some transit fare systems work like that. Each node tracks every customer's balance and broadcasts transactions. That's how the turnstile is always able to respond instantly, because the validation is local. It's possible to duplicate a card and swipe it simultaneously at different stations to double-spend. It's considered an acceptable leak in the system given the high effort, infungibility of the good, and near-zero actual cost of a free-rider. Where subways diverge from Bitcoin is that sold goods can represent a real loss, can be resold thus creating the incentive to scam, and that Bitcoin is anonymous where subway cards aren't (security cameras) so repeated instances of this crime can be caught. So the consequences of double-spending with Bitcoin are vastly higher and the network can't just choose to live with it.