Trust and security is critical to the adoption of a currency based blockchain. Polkadot/Substrate are great platforms, in the fact that they allow on chain upgrades. While the additional flexibility and freedom is valuable, it also introduces new risks in breaking changes or bugs to the DApps running underneath.
How can users feel safe and confident in the smart contracts they are using on PLASM (or any parachain)? Are there systems that can be put in place, that can add fail-safes, and give an average user confidence?
Current state, what are the actual risks a user might face if breaking changes were made to polkadot or a parachain? Could a runtime upgrade prevent a smart contract from executing completely, or could someones money get stuck in limbo? What happens to smart contracts that are ‘in flight’?
What are some realistic solutions that could address the above risks?
All parachains are based on Parity Substrate and many of them are using ink!. Both tools are under active updates. In this sense, the breaking changes on Substrate will be reflected on Plasm and other parachains. As @public_sate mentioned, we need to make it less influential.
If there is no way to stop them, can a smart contract enforce versioning? for instance, can I put in a dependency check to ensure that my smart contract supports runtime version ‘X’, and if the Parachain runtime does not match a compatible version, I could make it error out or fail?