8 ms·
Your comment doesn't address the point of the article. The author isn't talking about Ethereum itself, which they acknowledge up front can comfortably be consid
by aboodman 5y ago
Your comment doesn't address the point of the article. The author isn't talking about Ethereum itself, which they acknowledge up front can comfortably be considered decentralized.
The point is smart contracts. They are code, and they have to get updated if there are bugs. How do they get updated? Well, in the simple (and common) case somebody holds the private key and updates it. That's centralization, obviously.
You can get arbitrarily complex with how smart contracts are updated. You can have multisig, where 2:3 have to vote to update, or you can have actual voting, or you can even do voting by stakeholder in the contract.
But whatever you choose, it's fully a function of the smart contract itself what level of decentralization it achieves, and not at all about Ethereum.
- exo762 5y agoSome projects avoid upgrading contracts at all. They deploy a new version, create a new UI and point this new UI to new contracts. Uniswap V2 vs Uniswap V3. This way users are actively opting into new set of contracts.
- aboodman 5y agoThis makes sense to me and I think can be considered decentralized. How common are completely immutable contracts though? It seems like for any contract that holds significant value it would be insane to make it immutable, particularly when it's written in a turing complete language like Solidity.
- exo762 5y agoHolders of large amounts of funds often value simplicity. Take old Gnosis Multisig vs new Gnosis Safe. While lots of projects migrated (moved funds) to Gnosis Safe, some are still using old Multisig contract, which was so simple it could be audited by anyone in an hour. Old Gnosis Multisig is immutable and can definitely be considered a huge success.
- patrickaljord 5y agoIt's pretty common, the two biggest and most used decentralized exchanges uniswap and sushiswap hold $10.5B and are immutable.
- arisAlexis 5y agoUniswap censored tokens representing stocks some months back. This is 100% mutable behavior of the project.
- snug 5y agoThat was blocked at the web interface, if you wanted to use one of those tokens you could directly interact with the smart contract to get around those blocks
- Acrobatic_Road 5y agoThe Uniswap devs created a standard called Tokensets to allow different front-ends to curate which tokens are available without actually censoring anything. https://www.tokensets.com/ https://www.tokensets.com/
- DennisP 5y agoIt's a tradeoff. There have been cases where an immutable contract was hacked, but there have also been cases where an admin key was compromised resulting in loss of funds. Users also have to consider the possibility that the admin is corrupt.
- saurik 5y ago> Well, in the simple (and common) case somebody holds the private key and updates it. I will grant you "simple", and maybe even "common"... but only because most people don't really understand decentralization and many of the ones who do don't care about it. The "actual" way this happens, for the protocols and contracts that "actually matter" (certainly almost everything you would have heard of, as opposed to the long tail of tiny pet projects) is that, in the case that a bug is found, all of the users have to vote with their feet to move to and accept a new one. Essentially, this is equivalent to saying "decentralized contracts simply aren't upgradable", but of course everything is upgradable if you accept the idea of people giving up on old software and using new software ;P. (If this sounds familiar, it should be: this is in a very real sense similar to how Wireguard intends to deal with cryptographic breaks in its chosen cipher suite, as they aren't some centralized power able to upgrade everyone's computers remotely.) (FWIW, there is something else you can do, but as it would be implemented by still more contracts that themselves might have bugs I don't consider it the answer here as it begs the question: you make a contract--hopefully a simpler one that is less likely to have a bug--that lets people vote on which contract is the current accepted one, assuming they can all have compatible APIs.)
- Grimm1 5y ago> I will grant you "simple", and maybe even "common"... but only because most people don't really understand decentralization and many of the ones who do don't care about it. So assuming that this is mainly an issue of people not understanding versus understanding and not caring (though you said there’s some of that) how is the Ethereum community going to get the word out so that this becomes a mainstream success versus mainly for speculation as it is now? A common issue and one that I personally feel crypto in general suffers from is that neat tech isnt a a criteria on which most people flock to use something so what are the reasons end users need to know to be like ah yup I will drop my regular finance interactions for this or heavily augment them with this?
- saurik 5y agoI question your premise. If you analyze "by weight instead of by volume" then I maintain that all of the important projects you hear about--think of the decentralized exchanges or lending platforms, such as Uniswap--do not have back doors in their contracts for centralized code updates: when Uniswap wants to build a new version, they release a totally new system that happens to share a name. That there are a large number of silly projects most people haven't heard of, or random tutorials on the web for getting started in crypto, that involve building contracts with backdoors is no different from any technology... most stuff isn't scalable or even slightly secure, even if the products from the biggest companies and used by the most people tend to be: like think how many websites have ubiquitous SQL or HTML injection attacks... only "by volume" (looking at the total number of such websites, irrespective of how much use they get) as "by weight" (looking at the websites you use during the course of a day by how much you use them) I bet almost none of them do.
- thebean11 5y agoSort of..an individual smart contract is completely immutable; the code cannot be updated. You can create a proxy smart contract that points to the contracts actually handling execution, and update those pointers to point to new, updated version of the code which is what I assume you're referring to. Plenty of popular smart contracts do not do this though, and are fully immutable. Rather than updates, the developers upload a new version. Users can use the new version, or stay on the old one forever (the developers cannot delete it). Regardless of which one, though, this is known ahead of time. A user (or, more likely, a community of users) can inspect the code and see to what extent the key holders can modify functionality.
- Darvon 5y agohttps://en.wikipedia.org/wiki/Ethereum_Classic#The_DAO_bailout https://en.wikipedia.org/wiki/Ethereum_Classic#The_DAO_bailo... Eth is immutable unless the central players lose too much money then they can roll it back
- baby 5y agoConsensus can mutate yes. People tend to forget that these protocols run on top of a consensus protocol.
- RealityVoid 5y agoI think the DAO hack is misrepresented in the crypto community lore. The network simply decided to follow the main developers and those that did not, kept with what is now ETH classic. A hard fork can happen in absolutely _all_ cryptocurrencies, and I see it as a feature rather than a bug.
- drdeca 5y agoWhile I generally agree, I will say that the ability to dictate a Schelling point is a form of power. Imagine a first past the post election, where there is no official list of candidates (one simply writes in a name), but where a particular person has the position that they are always the first person to publicly recommend any candidate, and all voters hear this recommendation. This would be a powerful position, even if that person was not eligible as a candidate, and even though everyone can vote for whatever candidate they want. When in a position of significant power, even if this power is only of the form of one’s reputation and/or one’s influence on Schelling points, one has a responsibility to, when exercising this power, to take into account the effect it will have on others. I don’t mean that he failed to do so. I imagine it must have been a difficult decision! And I do hold Vitalik in high regard. But if one presents such a fork as being merely the the result of independent choices of each user, I think one is mistakenly omitting the power used by big names which promote one fork or another. I don’t mean to say that this power being present is a problem that needs to be solved, making this power not present. I don’t think that is possible. Like I said, I do largely agree with much of the “people are free to choose what fork they use” framing. But while I think it is probably basically the best that can be achieved, I do think it is best to acknowledge that even without authority from things other than social influence and such, that there is still power through said social influence + Schelling point influence + etc. , and it is possible for this power to be misused (though I don’t claim that it was misused in this particular case). In addition, I do think it seems prudent and good to avoid exercising this power unless the reason to use it is especially compelling (e.g. either part of an upgrade which basically the whole community has been expecting for a long time, or which has overwhelming support, or to handle something which , if not handled, could have an existential impact on the chain, or things like this) . (And, while I haven’t kept up with his latest writings and actions, I suspect he kind of agrees?)
- carlosdp 5y ago> But this fails to hold true for general purpose chains acting as a VM, including the front-runner Ethereum. Ethereum nodes can in theory filter modifications to the smart contracts they execute, but in practice, node operators have no reason to inspect or reject these upgrades, because they have relatively little stake in the success of individual contracts or their ecosystems. If an owner of a smart contract publishes a new change, nodes will mindlessly run it. Ethereum is blockchain AWS. This part does talk about Ethereum itself. It's just a conflation that, I agree, the author probably didn't intend, but nonetheless demonstrates the lack of understanding.
- mgummelt 5y agoIt's not a conflation. The article is explicitly differentiating Ethereum services from the Ethereum protocol, just like aboodman says.
- webinvest 5y agoNot really. By default, smart contracts can’t ever be edited or taken down. They’re permanently written into the Ethereum blockchain forever. They can only be modified based on any included state-modifying functions you originally wrote into the smart contract. There’s some fancy complex stuff where you can deploy 2 smart contracts with one being a proxy contract. Here, the proxy contract functions a lot like DNS does on the Internet. In this case, the contract CAN be (almost) fully updated but the proxy contract has to be setup at the very beginning. In like 80% or more of the smart contracts I’ve seen, smart contracts do not utilize proxy contracts for (almost) full updatability due to the extra complexity it adds, the less trustworthyness, and some other reasons. Source: I am a smart contract developer.
- mgummelt 5y agoAuthor here. You've probably read more smart contracts than me, but this hasn't been my observation. Rarible, for instance, is very popular and uses proxy contracts. Axie as well.
- vmception 5y agoOr you can burn the admin key and let the contract exist with bugs. That happens a lot too. Decentralized communities choose to use a different contract or not. I’m not really sure the point of the goal posts here.