Backwards Compatibility

1 min read

An upgrade to a system is backwards compatible if the upgrade does not render the old version of the system unusable. Backwards compatibility is present when an upgrade makes previously invalid behavior valid, but not when an upgrade makes previously invalid behavior valid. Backwards compatibility allows users to choose whether and when they want to upgrade, and is highly preferable in decentralized, consensus-based systems. When an upgrade is backwards compatible, it is called a soft fork, while non-backwards compatible upgrades are called hard forks.

For example, LED light bulbs offer an improvement on traditional filament light bulbs. However, LED light bulbs can be screwed into the exact same sockets as traditional bulbs. Upgrading a home to LED bulbs therefore does not render traditional bulbs useless.

When introducing changes to Bitcoin, developers always attempt to achieve backwards compatibility in order to avoid forcing users to upgrade. While introducing the SegWit upgrade, developers created “wrapped” SegWit, a P2SH transaction which allowed wallets to send to SegWit addresses without upgrading to SegWit itself.