Smart contracts are computer programs that are kept and executed within a blockchain network. The smart contract can execute actions based on particular preconditions being satisfied. So is it possible to change the smart contract after its deployment? It is highly dependent on the way it was programmed.
When it comes to the Ethereum network, deployed smart contract code becomes immutable by default. That is why it is impossible to just modify the code as you do with regular websites and applications. However, if there is no upgradeability mechanism implemented, modifying the contract logic implies deploying a new contract.
Sometimes, smart contracts are developed with upgradeability in mind. Developers implement a proxy system where users interact with one address while the system itself is capable of redirecting the calls to replaceable implementation code. It provides some flexibility while keeping the address and part of stored data.
Upgradeability is beneficial for fixing bugs or implementing new features. However, it can create trust issues because someone controls the upgrade process.
Upgradeability of a smart contract is dependent on permissions and smart contract design itself. Some systems allow for upgradeability by single administrators, while others implement a system with the multisignature wallet or multiple approvals.
Solana is another good example of the concept. Some deployed programs can be upgraded as long as there is an upgrade authority set. If this upgrade authority is removed, the program cannot be upgraded anymore.
This example is important as not all blockchain programs should be considered immutable. Users can check the code of any deployed program and find out if it is upgradable and to whom the permission belongs.
There are advantages and disadvantages of both systems. Upgradeable programs provide more opportunities and possibilities but users have to think about the authority to upgrade the program. Immutability means there is no need to think about it but the problem with bugs is more difficult to solve.
In any case, deployment does not necessarily imply the final result of the transaction. The possibility of changing the smart contract depends on the blockchain, technical part and permissions of the contract.