What is Bitcoin Cash?
Bitcoin Cash is a cryptocurrency commonly appearing on exchanges with the ticker symbol BCH or BCC. It is technically a hard fork of Bitcoin, BTC, which is often called Bitcoin Core after its leading client software implementation. A hard fork means Bitcoin Cash continued the Bitcoin Core blockchain and software with changes that make it incompatible with the former network. The fork occurred on August 1, 2017 at block height 478558.
Some of the things that make Bitcoin Cash different from Bitcoin Core include:
Bitcoin Cash employs larger blocks. The block size determines how many transactions can fit in a block. Blocks are mined about every 10 minutes, so a larger block size allows more transactions to be included faster, increasing network capacity. Bigger blocks reduce the need for users to compete for block space, which keeps fees and delays low. Provided miners don't all conspire to set high arbitrary fees, fees only start to rise when blocks become full. Bitcoin Cash plans to keep increasing the block size to provide enough space for most or all transactions to be included in each block and maintain low fees and delays.
Satoshi Nakamoto, the creator and first developer of Bitcoin software, hard-coded a 1MB limit on block size to prevent no and low fee spam when the price of Bitcoin was very low. The measure was intended to be temporary, and he and other original developers spoke about expanding block size in advance of them becoming full as usage increased to keep fees low or even free. It was considered that hard drive space and internet bandwidth would continue to improve at a pace that would allow miners to host, transfer and add to the chain affordably, in accordance with Moore's law.
Bitcoin Core eventually took over control of the main Bitcoin code repository, and after arguments and in-fighting spanning several years decided that the 1MB limit would be maintained indefinitely. Instead of scaling block size to meet demand a "fee market" would be allowed to develop to discourage some transactions. Further, they decided that the plan to improve capacity would be changed to focus on development of second layer or sidechain solutions, such as the Lightning Network.
A significant number of developers, miners and users disagreed with the block size limitations and new scaling direction and eventually combined their efforts to create Bitcoin Cash.
Bitcoin Cash removed replace-by-fee or RBF. Before transactions are officially included in the blockchain they are distributed to network nodes and sit in a memory pool or mempool, waiting to be mined by a miner. Miners usually prefer transactions with higher fees, so when blocks are full if a user doesn't set a fee high enough to outbid other users getting mined can take some time. If the fee is set too low on a busy network at full capacity the transaction may in fact never be mined at all. To mitigate this when blocks began exceeding the 1MB limit replace-by-fee was added. Users who set a fee too low could now replace their transaction in the mempool with one containing a higher fee more likely to be mined.
The drawback to replace-by-fee is it increases the need for trust. With RBF users are able change not only the fee but the receiving address of the transaction, so they are able to redirect funds elsewhere such as back to their own wallet. Although use of the feature is technically optional, few wallets support it and merchants can't really be sure if it's enabled for a given transaction.
Before replace-by-fee was implemented it was considered relatively safe for a merchant accepting a payment to deliver a purchased product before a miner actually confirmed the transaction by placing it in a completed block. Provided a second transaction using the same funds wasn't broadcast within about 10 seconds network nodes would put the first transaction in the mempool and ignore the second. Delivering a paid product before confirmation is known as a 0-confirmation or 0-conf acceptance. Due to delays in propagating transactions throughout the entire network and variations in node policies 0-conf is not 100% foolproof but it is often considered safe enough for low value transactions.
Bitcoin Cash restores potential 0-conf functionality by removing replace-by-fee.
At the time of the Bitcoin Cash fork mining difficulty on the parent chain was high due to the concentration of miners. To help the minority chain survive Bitcoin Cash modified the mining difficulty algorithm to include an Emergency Difficulty Adjustment or EDA. The EDA made difficulty drop 20% if more than 6 blocks were not mined in the preceding 12 hours. This allowed transactions to continue to be able to be processed on the newly-separated blockchain even when there were relatively few miners working on it, and prevented the possible stagnation and death of the Bitcoin Cash chain. The new algorithm had some adverse effects, such as causing wildly erratic block times when miners jumped on and off the network chasing profits, but it succeeded in keeping Bitcoin Cash alive.
The Bitcoin Cash difficulty adjustment algorithm or DAA was again modified to become much more responsive and reliable through a hard fork in November of 2017. Previously difficulty would only adjust every 2016 blocks, about every two weeks, or when the EDA kicked in. Now Bitcoin Cash adjusts every block. This greatly reduces erratic block times even when miners frequently switch between Bitcoin Cash and Bitcoin Core.
Bitcoin Cash rejected SegWit, a modification that fundamentally changes how transaction signatures are arranged and stored in the blockchain. SegWit separates signature data from being stored directly alongside transactions to being stored in an extension of the standard block. This was done for primarily two reasons. The first was to thwart transaction malleability, the ability for a third-party to superficially modify transaction hashes in transit. This would help make implementing sidechains and Lightning easier as they could depend on hash values not changing. The second was to provide a modest increase in capacity without having to perform a hard fork that would require all nodes on the network to upgrade their software. There was fear that some nodes might fail to upgrade or choose to stay on the old blockchain and software resulting in the creation of an additional coin.
The benefits and drawbacks of SegWit and the risks of upgrading through hard forks are heavily disputed. While SegWit apparently does not pose a significant security risk Bitcoin Cash developers believe it to be unnecessarily complicated and prefer not to change the fundamental structure of transactions in the blockchain from what Satoshi outlined in the Bitcoin whitepaper.
During the aforementioned November 2017 hard fork to improve the DAA Bitcoin Cash developers patched some forms of transaction malleability without implementing SegWit. Further patches are expected in the future. Bitcoin Cash developers disagree that hard forks are a significant risk and plan two per year, every May and November, for more upgrades.
Bitcoin Cash continues to evolve thanks to the tireless efforts of several development teams, a number of dedicated individuals and a passionate community. Our collective goal is to make Bitcoin Cash the best internet money on the planet!