Vitalik originally proposed Create2 in EIP-1014. With Create2, developers can generate contract addresses without actually deploying a contract, and this allows reserving an address on Ethereum blockchain in a deterministic way.
Create vs. Create2 Create opcode uses the sender’s address and a nonce to generate a new address for the contract, this method does not provide a secure and deterministic way to reserve an address. Create2 uses an arbitrary address, a salt (random number) and contract creation code to generate an address. As these values are independent and fixed, this allows a secure way to compute addresses for future use.