Bitcoin Cash Protocol

About

Style Guide — Contributors — Target Audience — Project History

Basics

Blockchain basics — Protocol hashing algorithms — Memory Pool

Transactions

Bitcoin Transaction — Unlocking Script— Locking Script

Blocks

Bitcoin blocks —

Block header — Merkle Tree — Transaction Ordering

Script (Bitcoin transaction language)

Script — Operation codes (opcodes)

Transaction validation

Transaction Validation —

Block-Level Validation Rules — Network-Level Validation Rules

Proof of Work (PoW)

Proof of Work — Difficulty Adjustment Algorithm — Mining — Stratum Protocol — Mining Pools

Addresses

Pay To Public Key (P2PK) — Pay To Public Key Hash (P2PKH) — Pay To Script Hash (P2SH) — Base58Check encoding (legacy) — Cashaddr encoding

Cryptography

Secp256k1 — Public Key — Private Key — ECDSA signatures — Schnorr signatures — Multisignature (M-of-N multisig)

Network upgrades

Bip-16 — Bip-34 — Bip-37 — Bip-64 — Bip-65 — Bip-66 — Bip-68 — Bip-112 — Bip-113 — Bip-157 — Bip-158 — Bip-159 — BCH-UAHF (BUIP-55) — HF-20171113 — HF-20180515 — HF-20181115 — HF-20190515 — HF-20191115

Network protocol

Network Messages — Handshake

Announcement messages

filteradd — filterclear — filterload — inv

Request messages

feefilter — getaddr — getblocks — getdata — getheaders — ping —

sendheaders — version

Response messages

addr — block — headers — notfound — merkleblock — pong —

reject — tx — verack

Other messages (extensions)

sendcmpct — get_xthin — xthinblock — thinblock — get_xblocktx — xblocktx —xverack — xversion

Simple Payment Verification (SPV)

Bloom Filters

Simple Ledger Protocol

Miscellaneous

Endian