As early as 2010, shortly after Satoshi implemented a block limit into Bitcoin, discussions around block size began. However, discussions around the block limit largely stayed in the background until 2017 when tensions within the Bitcoin community rose over rising transaction fees and increasingly divergent opinions on scaling Bitcoin. Supporters of bigger blocks believed that for Bitcoin to fulfill the vision of a peer-to-peer electronic currency as outlined in the original whitepaper, it was crucial to raise the block limit in order to increase transaction capacity. Bitcoin Cash proponents pushed for a system that could scale to VISA level transaction throughput without second layers and while maintaining affordable transaction fees. It rejected the philosophy of Bitcoin Core that Bitcoin’s central value proposition is censorship resistance and trust-minimization, and that Bitcoin full nodes needed to be maximally decentralized to achieve this. Instead of envisioning Bitcoin as a settlement layer or a Digital Gold, Bitcoin Cash envisions Bitcoin as a peer-to-peer electronic cash system, emphasizing Bitcoin’s utility as a medium of exchange.
In 2017 at the Consensus conference amidst rising transaction fees on Bitcoin and increasingly tense debate around the Bitcoin block limit, a meeting with miners and Core Developers took place in what is referred to as the “New York Agreement”, where an agreement was reached to support SegWit and a 2MB hard fork. Known as SegWit2x, this proposal was backed by over 80% of the network’s hash rate. Despite the desires of miners, users wanted to activate SegWit without the block size increase. They set a date (August 1, 2017) where Bitcoin would soft fork to support SegWit and keep the 1MB block size. Enough nodes signaled support for it that they forced miners to accept or have their blocks rejected by the network. A faction of the bigger blocks camp, rejected SegWit altogether, citing frustrations with the prioritization of SegWit over bigger blocks, and on August 1, 2017 they launched a hard fork of Bitcoin called Bitcoin Cash, with 8MB block limits. The 8MB block limit was later increased to 32MB in 2018 after another contentious hard fork regarding a minority faction’s desire to raise the block limit to 128MB. This hard fork resulted in the creation of Bitcoin SV, a fork of Bitcoin Cash.
Although increased block capacity could increase transaction throughput on-chain, it could potentially restrict the universe of participants who could be capable of running full nodes, thus making this something the community needs to address in order to be able to execute on its vision of a decentralized peer-to-peer cash system. In addition to pursuing on-chain scalability through larger block sizes, Bitcoin Cash prioritizes fast-paced development of technological improvements in opposition to the more conservative philosophy of Bitcoin. Given such, Bitcoin Cash has planned network upgrades every six months. To date, Bitcoin Cash has 6 competing node implementations: BitcoinABC, Bitcoin Unlimited, BXT, Parity, Bitprim, and Bitcoin Cash.
BCH is used as a native currency within the Bitcoin Cash network. BCH can be used for peer-to-peer payments and value storage within the Bitcoin Cash network. With its larger block sizes (relative to Bitcoin), Bitcoin Cash aims to offer high throughout and on-chain scalability through increased block sizes, aiming to reduce the reliance on off-chain scalability solutions for transactions.
Bitcoin Cash uses Nakamoto Consensus whereby the valid chain is the longest chain with the most accumulated proof-of-work. Consensus in Bitcoin Cash, and other systems using Nakamoto Conensus, is probabilistic because there is always a chance that a new, longer competing chain could emerge with more accumulated proof-of-work, that would invalidate the current chain.
Miners solve computational puzzles to generate new blocks using a SHA-256 algorithm. In this process, miners compete to generate a hash less than the target number set by Bitcoin Cash’s difficulty adjustment algorithm. Notably, the target difficulty level is adjusted every block as opposed to Bitcoin’s every 2016 blocks.
Although open to anyone with a CPU, Bitcoin Cash mining is now dominated by ASICs usually situated in enterprise-scale data centers. Furthermore, in order to smooth individual miner revenue as mining has become more competitive, mining is now done in pools where participants contribute hash power to the pool and receive a proportional share of the profits if the pool finds a valid block.
Bitcoin Cash, the protocol, is a distributed, time-stamped ledger of unspent transaction output (UTXO) transfers stored in an append-only chain of 32MB data blocks. A network of mining and economic nodes maintains this blockchain by validating, propagating, and competing to include pending transactions (mempool) in new blocks. Economic nodes (aka “full nodes”) receive transactions from other network participants, validate them against network consensus rules and double-spend vectors, and propagate the transactions to other full nodes that also validate and propagate. Valid transactions are sent to the network’s mempool waiting for mining nodes to confirm them via inclusion in the next block.
Mining nodes work to empty the mempool usually in a highest-to-lowest fee order by picking transactions to include in the next block and racing against each other to generate a hash less than the target number set by Bitcoin Cash’s difficulty adjustment algorithm. Bitcoin Cash uses a Proof-of-Work (PoW) consensus mechanism to establish the chain of blocks with the most accumulated “work” (a.k.a., energy spent on solved hashes) as the valid chain.
Bitcoin Cash developement is open to the open-source community. Although largely driven by Bitcoin ABC, Bitcoin Cash has 6 different client implementations. Protocol development is governed by a proposal process whereby anyone in the open-source Bitcoin Cash community can submit draft proposals. After debate by the community, the client implementation editors accept or reject the proposals. Decisions from the process are written into the Bitcoin Cash specification, as well as the software that runs the network. Finally, protocol changes are “ratified” on-chain when the majority of the network adopts the upgrade and doesn’t break consensus.
Although very similar to Bitcoin overall, as opposed to users signaling support of upgrades, Bitcoin Cash tends to use hash power signaling to indicate support of network upgrades. Furthermore, Bitcoin Cash implements planned upgrades on a bi-annual basis as part of its more progressive network upgrade philosophy