With all this talk of bitcoin scaling, the August 1st bitcoin network fork, segwit, segwit2x, BCC, BTC and other general craziness going on in the bitcoin space... and the competing incentives between bitcoin miners and bitcoin users, I've been looking under the hood to get a better understanding of what is really going on.
TLDR; Bitcoin is splitting into two coins (BTC & BCC) because of competing incentive structures pitting one group of miners against core developers. The miners fork called BCC (Bitcoin Cash) will have 8 MB block sizes allowing for more transaction throughput, but will not enable off-network payment channels. Core developers fork is based on SegWit2x, which will increase throughput and also enable the lightning network payment channel that lays the ground work for very low cost off-chain transactions. The community at large seems to be behind BTC/SegWit and many people have suggested BCC will not get enough miners on their side to survive, but only time will tell.
One way to think about bitcoin that is helpful in understanding the current affairs is this: bitcoin is a collection of individuals who have all decided to have the computers that they control run the same code (network protocol) that keeps track of who owns which bitcoins. There are miners who do work to process each transaction and cryptographically secure the network and get paid fees and block rewards for doing this work. There are users (represented by the bitcoin core developers) who execute transactions on the network. Each computer (miner and user) that participates in the network has it's own copy of all the transactions that have ever happened, this is why the technology can generally be referred to as decentralized ledger technology (DLT).
This copy of all transactions that have ever happened is called the bitcoin-blockchain. The code/network protocol that each of the computers run has a set of rules that everyone agrees upon that decide how new transactions are written to the bitcoin-blockchain. As long as the network agrees that a transaction is valid, then, the transaction is written to the bitcoin-blockchain, distributed to each node, and is forever held as a true/non-contestable transaction, this feature is called transaction immutability. Due to the growing popularity of bitcoin, the technology has been having growing pains and the network protocol needs to be updated in order to handle more transaction throughput and reduce transaction fees.
The competing ideas for how to scale the network illuminate the careful balance of incentives that the original implementation of bitcoin created that has enabled the bitcoin network to continue to grow and become a stable and secure place to store value. At the time of this writing, there is around $40 billion dollars of value stored in bitcoin. For miners, they would like to have the solution based upon larger block sizes - BCC will fork bitcoin and start mining 8 MB blocks on August 1st. That means that each new block in the BCC blockchain is able to hold more transactions, thereby increasing transaction throughput. Because miners make money by writing transactions into blocks, this direction to scale the network is preferred by these miners because they are able to continue to collect transaction fees because all transactions will be written to a block. For users, and the bitcoin core developers, they are moving towards what is called SegWit2x. This is a combination of a proposal called Segregated Witness with the promise to increase block size to 2 MB in the near future.
What is interesting about the segregated witness solution is that it enables payment channels, specifically in bitcoin, called the lightning network. Payment channels allow for the creation of off-chain transactions that can be very low to zero-cost. This has the potential to allow for online micro-transactions and small transactions which could lead to broader interest by merchants to accept this as a form of payment because of the lower transaction fees. Payment channels are very promising and there is a lot of research and development going into building out use-cases.
Payment channels reduce fees because the only time a transaction is written to the blockchain is when you open and close a payment channel. A payment channel can be opened between 2 or more parties by having at least one of those parties lock funds into the channel. Once the payment channel is open, the parties conduct transactions with those locked funds among themselves that are instantaneous and have zero transaction fees. One very interesting aspect of payment channels is that they can be networked together to form a chain of transactions between parties that do not directly have a channel open between them, but are connected via a network of open payment channels. For example, if I have a payment channel open with Dan, and Dan has a payment channel open with Josh, Josh and I can transact with each other by using Dan as an intermediary payment channel even though Josh and I do not have a payment channel open between us. Payment channels are a very promising area of research for crypto-currencies and this may be the path that we see being followed that will allow for low cost transactions, online micro-payments, and low dollar amount retail transactions between parties whether they be P2P, B2B, B2C, or C2B. Once a payment channel is closed, the value of all transactions conducted within that channel is settled on the blockchain.
For a really good technical deep-dive on how payment channels work, I highly recommend these videos.
Jackson Palmer runs it down in 15 minutes: what are payment channels? (eg. the lightning network) - YouTube
Technical deep dive on the lighting network: SF Bitcoin Devs Seminar: Scaling Bitcoin to Billions of Transactions Per Day - YouTube
Lightning network white paper: https://lightning.network/lightning-network-paper.pdf
For more information on the bitcoin payment channel lightning network: Lightning Network
Payment channels on the Ethereum network: Raiden Network
Thank you for taking the time to read this post, please leave any questions or comments below!