3 ms·
"Smart contracts are immutable, which means they cannot be modified." - that's not true. Some contracts can be upgraded, it just depends how they are programmed
by bouncycastle 5y ago
"Smart contracts are immutable, which means they cannot be modified." - that's not true. Some contracts can be upgraded, it just depends how they are programmed.
- cshum 5y agoSuch contract can proxy call another (upgraded) contract by changing references. This is defined on the contract source code and, by signing it, you agree its implications of "upgradable". The proxy contract and the actual contract is immutable. The references and variables are not, as it is meant to be programmable.
- fabian2k 5y agoBut if they're designed as upgradeable, you lose a lot of the alleged benefits of smart contracts. You can't have both at the same time, "the code is the contract" and being able to arbitrarily change it. If one side can just change it, this breaks the central idea behind smart contracts. If both sides need to agree, the mutability doesn't help you much if you're the party disadvantaged by the current version of the contract, the other side is unlikely to agree to change it to their detriment.
- Galanwe 5y agoMost of the time there is a "supplier" / "consumer" pattern in the use of smart contracts. The supplier will provide incremental versions of its contract, and the customer has the freedom of upgrading or not to the latest version. At least that's how clean contracts are deployed. The Gnosis Safe is a good example of this pattern.
- fabian2k 5y agoThat's not really mutability of a contract, that's a seamless way to switch between immutable contracts. It doesn't eliminate the risks of immutable contracts, so I think the arguments based on that are still valid then.
- chrisco255 5y agoSome contracts don't need to be immutable to be useful. A smart contract, even a mutable one, is incredibly useful. It is a state machine that can be programmed arbitrarily to receive funds, distribute funds based on particular rules, etc. Like a DAO, for an example, should be thought of as an LLC-like arrangement. Organizations necessarily evolve and need to be able to change their current framework from time to time, or they're calcified against necessary change. That being said, the rules for conducting an upgrade can still be tightly controlled or placed into a 5 of 8 multisig or a full DAO vote with 10% minimum token supply participating if need be. It's all completely arbitrary and fully programmable. That is, to say, it's incredibly powerful. A mutable contract is clearly not a violation of the contract, as it must be intentionally programmed in that way in the first place, and so it should be clear to any party reading the code of that particular contract that mutability is a feature of the contract and under what conditions mutability is able to be executed. Some contracts you want to be immutable, some contracts you want to be configurable. It's just as simple as that. No need to overthink it, just understand what type of contract you're interacting with and under what terms. That's all.
- agumonkey 5y agoIs the smart ideal to replace human bottleneck ? Instead of big data you get big financia ?
- everfree 5y agoThe extent of their mutability is dictated by their immutable code. But you're right in that such a setup allows a contract system to be mutable in practice.
- TameAntelope 5y agoEven if they’re immutable, you can just roll out a new one with the changes in it, can’t you?