Version Upgrade Issue
This chapter discusses version upgrades and how to handle bug fixes.
One of Ethereum's characteristic features is that once deployed Smart Contracts can not be tampered with.
This point is very important.
It is because Smart Contracts have this guarantee they can be used as contract logic.
If this is not guaranteed, there is no need to record the code and data as a Smart Contract, and the distinction to using a traditional DB ceases to exist.
However, if there is a bug in the code, the smart contract application should be fixed in a way that satisfies the following conditions.
Do not modify the deployed code. (As stated above Ethereum does not even allow this.)
Ensure that data already existing will continue to be available.
After the bug fix, the smart contract application can continue with the bug resolved.
The bug can only be fixed by the provider who provided the contract itself.
We will present a method meeting these conditions on the next page.