Kaka

Can you explain the difference between a soft fork and a hard fork in the context of blockchain protocol upgrades?