Looking at checkpoints file, I'd guess everyone'd start at the genesis block (hard-coded in the client) until we get to block 11111, the earliest block acting as a checkpoint. I'm not sure what'd happen when a client reaches that block, but since difficulty isn't hard-coded, we'd reach block 11111 pretty quickly... I'd guess it'd either cause "misbehavior score" to increase, resulting in clients banning themselves, or the client notices this and presents some kind of "your data's corrupted" message and stops trying to process blocks until the client's restarted.
Ahh, I wasn't aware that the genesis block was hard coded into the client.
Whatever the case, resetting Bitcoin would destroy all companies involved in it, and remove the likelihood of anyone trusting Bitcoin ever again.
Yup. It's in chainparams.cpp and even includes Satoshi's message:
const char* pszTimestamp = "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks";
CTransaction txNew;
txNew.vin.resize(1);
txNew.vout.resize(1);
txNew.vin[0].scriptSig = CScript() << 486604799 << CScriptNum(4) << vector<unsigned char>((const unsigned char*)pszTimestamp, (const unsigned char*)pszTimestamp + strlen(pszTimestamp));
txNew.vout[0].nValue = 50 * COIN;
txNew.vout[0].scriptPubKey = CScript() << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef3
8c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f") << OP_CHECKSIG;
genesis.vtx.push_back(txNew);
genesis.hashPrevBlock = 0;
genesis.hashMerkleRoot = genesis.BuildMerkleTree();
genesis.nVersion = 1;
genesis.nTime = 1231006505;
genesis.nBits = 0x1d00ffff;
genesis.nNonce = 2083236893;
hashGenesisBlock = genesis.GetHash();
assert(hashGenesisBlock == uint256("0x000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f"));
assert(genesis.hashMerkleRoot == uint256("0x4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"));
The source is really well-explained. I was surprised. I only just finally started to really look through it after 3 or 4 years... It's massive (relative to the tiny little things I've done in a short time), though.