Handling Bitcoin Firewall?
14 comments
Its not so easy to stop BTC transactions. There are a lot of forms to make BTC transactions... you could do it with SMS, with GIFS with ofuscated data, via phone, via mail, via twitter...
But yes, as celticninja says..." If you are not on the network you cannot make transactions on the Blockchain."
Even though I'm not a blockchain expert, I'm a bit surprised by the other responses.
AFAIK, when a node finds a new block, it announces that to its peers and starts working on finding the next block. No explicit acknowledgment from peers is required, instead they implicitly acknowledge the new block by appending it to their version of the chain and working on finding the next block based off that version. If a node receives a broadcast with a chain that is different than the one it currently works off of, it keeps the one that is more difficult to verify ("longer"), discarding the other one.
If you would divide all nodes into two unconnected sets (by the hypothetical firewall), two parallel versions of the chain would emerge, and those chains would diverge at the block that was last found before the separation event. Once you drop the firewall, the longer version would "win" over the shorter version, and all blocks mined on the losing chain since the separation become "stale", and the transactions contained in those blocks are returned to the mempool for re-processing. This is a huge problem, since the processing order is not guaranteed and depends on the fees transactions are endorsed with. Addresses could theoretically spend BTC they do not yet possess. Not sure how this would be handled.
If this is a prolonged event, the Bitcoin community would probably work on a software fork in some way?
AFAIK, when a node finds a new block, it announces that to its peers and starts working on finding the next block. No explicit acknowledgment from peers is required, instead they implicitly acknowledge the new block by appending it to their version of the chain and working on finding the next block based off that version. If a node receives a broadcast with a chain that is different than the one it currently works off of, it keeps the one that is more difficult to verify ("longer"), discarding the other one.
If you would divide all nodes into two unconnected sets (by the hypothetical firewall), two parallel versions of the chain would emerge, and those chains would diverge at the block that was last found before the separation event. Once you drop the firewall, the longer version would "win" over the shorter version, and all blocks mined on the losing chain since the separation become "stale", and the transactions contained in those blocks are returned to the mempool for re-processing. This is a huge problem, since the processing order is not guaranteed and depends on the fees transactions are endorsed with. Addresses could theoretically spend BTC they do not yet possess. Not sure how this would be handled.
If this is a prolonged event, the Bitcoin community would probably work on a software fork in some way?
A 10 year chain of transactions would require an enormous amount of time to re-process. Effectively billions of transactions would arrive at once on both sides of the dropped firewall.
Transactions that were "known good" for the last 5 years might not be valid, or at least could take years to validate.
Transactions that were "known good" for the last 5 years might not be valid, or at least could take years to validate.
There is no "reprocessing", in Bitcoin the longest chain always wins. Assuming the cut-off country has fewer transactions than the rest of the world and assuming the people still continue to trade among themselves without any connection to the main net (which would be idiotic), every single transaction is invalid because it never was included in the longest chain. The only thing that happens when the country allows Bitcoin connections again is that everyone who accepted BTC as payment to a local wallet during a time when they had no internet connection find out they made a big mistake.
Look at it this way: Would you trade Bitcoin with someone on a private intranet? They tell you "give me $1000 and I'll transfer you the coins on my intranet, not on the public net". Of course you wouldn't, right?
Look at it this way: Would you trade Bitcoin with someone on a private intranet? They tell you "give me $1000 and I'll transfer you the coins on my intranet, not on the public net". Of course you wouldn't, right?
I have seen whole countries "drop off the internet" for extended periods of time. Sometimes it is political, sometimes it is due to a cable break.
Russia has suggested dropping off the internet: https://www.technologyreview.com/2019/03/21/65940/russia-wan...
China has a fairly successful firewall and has recently come out against bitcoin mining.
I can see a country that feels that bitcoin threatens its currency working hard to create a bitcoin firewall. I can also see the firewall being lifted after a change in government.
If the country re-joins and its blockchain is shorter than the current chain, what happens to all the transactions? What happens to the coins that are mined within the country?
I can see where a country could have billions of micro-transactions (e.g. coffee purchases) that happen over a single year.
Is it even worth the processor time to process billions of "penny" transactions?
Russia has suggested dropping off the internet: https://www.technologyreview.com/2019/03/21/65940/russia-wan...
China has a fairly successful firewall and has recently come out against bitcoin mining.
I can see a country that feels that bitcoin threatens its currency working hard to create a bitcoin firewall. I can also see the firewall being lifted after a change in government.
If the country re-joins and its blockchain is shorter than the current chain, what happens to all the transactions? What happens to the coins that are mined within the country?
I can see where a country could have billions of micro-transactions (e.g. coffee purchases) that happen over a single year.
Is it even worth the processor time to process billions of "penny" transactions?
No. The bigger chain will be kept, the other one discarded. There’s no such thing as parallel chains and merge.
This said if you had n btc before firewall, you’ll still have n btc when it reopens.
(note that, as other said, such a firewall may be hard to do.)
This said if you had n btc before firewall, you’ll still have n btc when it reopens.
(note that, as other said, such a firewall may be hard to do.)
Did I say something incorrect? (I noticed downvotes.)
I was trying to say that Bitcoin doesn't handle "merge". If 2 chains diverge at some point for whatever reason (in this case a firewall) then the nodes have the incentive to only keep the longest and discard the other one.
Therefore when the firewall disappears, all nodes will continue on the primary chain, with the effect of "discarding" all transactions that happened inside the firewall. And the amount of BTC in the op's wallet would be "reset" at the value it had before the firewall.
I was trying to say that Bitcoin doesn't handle "merge". If 2 chains diverge at some point for whatever reason (in this case a firewall) then the nodes have the incentive to only keep the longest and discard the other one.
Therefore when the firewall disappears, all nodes will continue on the primary chain, with the effect of "discarding" all transactions that happened inside the firewall. And the amount of BTC in the op's wallet would be "reset" at the value it had before the firewall.
This is correct. Maybe people just misunderstood your first post, the way it was written was slightly ambiguous.
If you are not on the network you cannot make transactions on the Blockchain. You are talking about something like off chain transactions, like the lightning network, where small transactions occur on a different network and are then bundled up onto the main chain. However this is on top of the existing network and requires ongoing access to the bitcoin Blockchain.
What you propose cannot work.
What you propose cannot work.
As I understand it there is no central network. So nodes inside the firewall only see internal transactions. Nodes outside the firewall only see external transactions.
As a result, both sets of nodes create long chains based on the transactions they see.
As a result, both sets of nodes create long chains based on the transactions they see.
Yes but the 2 chains cannot be merged, the longer chain is the true chain, so all the transactions on the shorter chain get cancelled. Essentially the users in the fire walled country would revert back to where their transactions and balances were in n they day they diverged. Good for some, not for others.
So if China firewalls and keeps mining they could take over the chain?
10 years later the firewall is opened. Does every in-country transaction chain have to be added to every account chain in the world? Do all of the world's transactions have to be added to the in-country transactions?