Monday, October 28, 2013

Worldwide software update

I had an interesting thought today in relation to software updates.

If the laws of physics, say friction or gravity, were to run off software, and we had to run an update to that software..... what would that look like?

Typically we get software updates from a manufacturer, and we select when we run the update, perhaps on our computer before we go home for the day.   We update our software when it is convenient to us.

Bitcoin is a little bit different.   Bitcoin is software, for money.   One thing about money and economic activity is that you can't just simply turn it off to run a software update.

First, lets me say that we dont ever need to update the software.   The software works fine just how it is, and would operate without any maintenance from here until the end of time.

Second, software updates in bitcoin are referred to as "forks".   There are 'hard' forks and 'soft' forks.

A soft fork is a software update that doesn't change the rules of the network.  A soft fork can add features, but it cannot remove or change existing features.  These updates can be done at the leisure of the miner, exchange, or payment processor.

A hard fork is much more serious.   A hard fork must be done simultaneously around the world until there is a consensus of the miners.   With proper coordination this poses little to no risk, but if implemented poorly, could destroy everything that bitcoin has built to date.
_______
With a 'best case' hard fork scenario, all miners and exchanges are notified of an up and coming software update.    Perhaps a specific time and specific date.
  When the time comes, most everybody needs to shut off the current running software, run the update, then continue again.   This affects a couple groups of people.
  -Bitcoin miners need to stop, so that transactions are not verified under the old software.  Note that 100% of miners dont need to stop, just enough to stop solving blocks in a reasonable amount of time.   If 75% of miners shut down(perhaps just 5 pools), then to get 6 transactions verified would take about 4 hours.  Plenty of time.
  -Bitcoin users:  At the designated time, users are not affected, because mining and transaction verification has stopped.    It would kind of be the same as all Visa cards being declined for a 10 minute period today.
  -Exchanges.   Since the blockchain has come to a stop, incoming transactions to exchanges stop as well.

In general, under a hard fork scenario in bitcoin, the entire world would undergo a software update.   People would just stand in the starbucks line.... waiting for the go ahead.
_______
  The worst case scenario for a hard fork would be complete disorganization.   Miners would still verify transactions under the old software, which are then invalid once the new software meets consensus.  This would be particularly disastrous for exchanges, as they trade bitcoins for dollars, then send the dollars away only to find their bitcoins dont exist.
  For the consumer this is slightly less important.   If you paid your cable bill, then would just come back to you and have you pay it again.  If you had bought a TV, best buy would contact you asking for payment again.   This is still a chaotic environment, but still manageable.
________
A soft fork doesn't really matter a whole lot..   A soft fork would add features to the network.   Miners that dont update their software done get to use those features...(i think)  Not really a big deal.   An up and coming soft fork could be in multi-signature transactions.    Transactions today require 1 private key, but the software is coming that will allow us to use any 2 of 3 private keys.    If a miner found a block without this software update, the users transaction would wait until a miner WITH the software update found the block.

 Note that multi-signature transactions are the future of bitcoin banking/security.    One private key to the owner of the bitcoins, one private key to a bank or hot wallet (coinbase) and one private key to a trusted third party, in the event that one of the three lose their keys.   Then coinbase can't run off with your coins, and neither can sombody that stole your private keys through a hack of some-sort.
____________
Lets have fun with this hard fork idea.   Lets say the US government invests 100 million dollars in bitcoin mining and gets 51% of the network.     Since they own 51% of the network, then update the software to increase the cap to 42 million coins, of which they automatically get 20 million of.   O NO!!

  Not really.    The only thing they did was fork the bitcoin blockchain.  Now we have BTC1 and BTC2.   Users, exchanges, miners and payment processors can then chose which version of the blockchain they want to continue with.

The Government could setup their own exchange of BTC2 if the wanted to, but nobody would use it.
______________
 An interesting note here.... is who coordinates updates of the sofware in the event of a hard fork?   The Bitcoin Foundation is the un-appointed lead development team for bitcoin, however what if they want to run a software update nobody wants?   It is a serious concern.  
  Where I see this going is decentralized development.   There will be many many bitcoin foundations throughout the world.   One for each country, that may have each countries own interests in mind.    Perhaps all the bit coin foundations of all the countries would lead, democratically, software updates.    If those foundations cannot come to an agreement, the software doesn't get updated.... which is just fine.    I say its fine, because 2nd tier services and do ANYTHING that a software update can do. (I.E. coinbase can make their own rules for coinbase).   The free market will decide....
 

No comments:

Post a Comment