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.
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.