Coding Upgradeable Smart Contracts
This article discusses alternative techniques for coding upgradeable smart contracts in Solidity, the defacto smart contract language for the Ethereum blockchain.
Upgradeable contracts are also updateable, downgrade-able, changeable, correctable. We could also change the users and even the contract owner. In short, they are not just upgradeable smart contracts, they are flexible smart contracts.
Background
In our article Sharing Decentralised Data — Upgradeable Solution, we presented a possible solution to providing upgradeable smart contracts. However, that is certainly not the only solution and this article discusses alternative solutions, in particular, where you should put which code and why.
Alice and Bob share some data in a data vault of their choosing, with user access controlled by a smart contract, all linked together by the internet.
Alice and Bob want to be able to change the smart contract controlling their data access, as and when they need to. They need to be able to easily modify their smart contract. They need a flexible smart contract.