The upgradability of contracts has always been a hotly debated topic.
If the contract is upgradeable, this means compromising the minimum level of trust on the chain. If it cannot be upgraded, the iteration of the protocol will face great resistance.
Different applications have different needs, and the level of trust is not uncompromising. For DeFi-like asset-heavy protocols, hard-coded contracts consolidate the security of assets. For other applications that require frequent iterations, non-upgradable contracts mean heavy costs such as user migration. At one time, Ethereum was the only deployment option, so utilizing proxy contracts became the obvious choice for an iterative protocol. Now more and more smart contract platforms are developing rapidly, which also provides more options for different applications.
This article is from Andre Cronje, where AC expresses his views on the nature of smart contracts. Rhythm BlockBeats translated the full text:
I have had mixed feelings over the past day. I haven't been able to make sense of all the data available, so I can't make a good summary of what happened. This incident really got me thinking about smart contracts and the role they play in our ecosystem. There is a unique duality in smart contracts, that is, on the one hand, it repeats mechanical work that cannot be changed, and on the other hand, it cannot run smoothly from the beginning, but all it has to do is eliminate all human influence factors , and prevent the occurrence of human failure. So smart contracts are not only a trust assumption, but also a contingency measure. Even if one day I die, all the codes I have written in DeFi will still run independently as usual without any intervention from me.
For some, this is a flaw, but in my opinion, it is a great advantage - the immutability of smart contracts is exactly what it is advantage. I have always been against the agency model in the past, which still relies heavily on human leadership to make decisions and cannot do its own work. This is because they know they are constantly being watched by humans and may be replaced at any time. However, not only smart contracts need to worry about losing their status, but users should also be cautious, because the proxy model still has certain risks. However, we have also developed corresponding risk mitigation tools and introduced time locks to ensure that participants have enough time to react. At the same time, we have also added a multi-signature mechanism to avoid failures caused by individuals. But at the end of the day, these methods are all about giving humans some control over smart contracts.
We have deviated from our original direction.
I want to repeat here what I wrote in a previous post: In Crypto, you are voting with money. If you keep voting for low-level scams, get-rich-quick schemes, or crap forks, they will only increase. Platform building itself is already quite difficult, it takes longer than anyone imagined, and building a platform without human intervention will take even longer. However, we have advanced to the stage where we can directly manage these agreements, which are sending funds out of the EOA. I myself am at fault for this, and I myself have strayed from the original vision.
I am very concerned about various topics about protocols and robots, because I once thought that we are not building for humans, but for machines, in order to facilitate their generation A new machine currency, to facilitate transactions by our future machine overlords, to generate a mechanism that can survive our extinction. I still strongly believe in this, but I've lost track.
I always hope that someone can agree with my point of view, so I started looking for the community to find like-minded people. I really wanted to belong and not be a lone ranger anymore. Now, however, there are only a handful of people who can discuss with me the nuances of smart contracts and their relationship to digital finance. Most of them are retired or don't care much about the latest developments in the industry.
I need to re-examine my goals, but when I look at the code I wrote, I also found that although my thinking has changed, I have The enthusiasm for the cause has not been affected in the slightest. My code has no proxies, no artificial components, management functions, no DAO controls, no multi-signature or time lock functions, it just runs normally. If you want to confirm this, you can check out the code for Solidly here.
The immutability and autonomy of smart contracts are precisely its advantages, not problems.
We talk about trust assumptions a lot, but trust assumptions don't exist in code, only we need them.
I will continue to work hard for the era when machines are king in the future, maybe I can become their pet in the future.