What you're describing is basically copy-on-write: https://en.wikipedia.org/wiki/Copy_on_write, which is a part of most modern filesystems (ZFS, BTRFS, etc). That makes it software-based, but the idea is the same: you can easily make snapshots, roll back to previous versions, etc.