Blockchain networks are often described as permanent and unchangeable, but that does not mean the software running them stays the same forever. Like any complex technology, blockchains need to evolve. Developers discover bugs, new security techniques emerge, users demand better performance, and communities propose new features.