全 58 件のコメント

[–]ethdev443 150 ポイント151 ポイント  (15子コメント)

Recognizing a problem is the first step towards solving it. This sort of constructive self-criticism is one of the reasons why Ethereum is already so successful.

[–]seweso 17 ポイント18 ポイント  (0子コメント)

Undersell, overdeliver. Instead of the reverse which other coins seems to do. :)

[–]0xstark 57 ポイント58 ポイント  (4子コメント)

Vitalik's post here is specific to criticisms of the ethereum protocol itself, but it's also important to consider valid criticisms of the broader ecosystem and community.

For instance, while it's true that bugs in smart-contract code are not an inherent flaw of ethereum (any tool can be used poorly), they are a barrier to usability and adoption. BTC-types often make an exaggerated version of this point. It might be fair to say that a valid criticism of the ethereum ecosystem right now is that it is harder than it should be to write safe smart-contract code.

There are also fair criticisms of groups like the core devs and the foundation. Again, while not a technical issue, the way that decisions are made has an impact on the platform. Doing things like streaming core dev meetings is a great start, though I think there's more we can do here. Likewise, the foundation is often criticized for not doing more with its funds to support the project.

As a community we can be defensive about these criticisms (especially when they come from maximalist-types), and respond by pointing out that they aren't really problems with the technology itself. Which is true - but part of ethereum's ethos since early days has been about building an ecosystem and a community that best supports the technology - this is one of our large differentiators from bitcoin. If, unlike bitcoin, we care a lot about our ecosystem & community, we shouldn't say that criticisms of them are off-topic.

tl;dr: there are many valid criticisms of ethereum that go beyond the protocol, let's take these seriously too!

[–]wakalixes 6 ポイント7 ポイント  (2子コメント)

Does anyone know if there is any work being done to make programming smart contracts easier. What if there was a scratch like environment where one could drag and drop premade blocks that were known to be safe. Someone who is a novice would then be able to piece together something useful and safe without a lot of prior skill.

[–]rabf 2 ポイント3 ポイント  (0子コメント)

I remember seeing something like this, but can't remember its name...

[–]RedRunner77 1 ポイント2 ポイント  (0子コメント)

There will be.

Frameworks are arguably the most important part of developing any sort of app. If an open-source foundation doesn't tackle it first, eventually a large company is going to build out a framework for internal use and then publish it (I don't know about other types of programming, but in web-dev this is extremely common).

[–]jsibelius 2 ポイント3 ポイント  (0子コメント)

What I find really interesting is that there are people who, out of sheer care for the community read smart contracts and comment on them. As a developer, I can say that it can be quite hard to read other people's code and especially something I consider quite complex like solidity. (ok, it is not that solidity is hard, but the whole different mindset that you have to have to write smart contracts... to think about how the users interact with the blockchain, how the UI will work, the funds, the gas costs, etc..., how smart contracts are deployed, updated...)

Mind you, the people that do that can actually make a lot of money with this skill writing these contracts.

[–]intertron 13 ポイント14 ポイント  (0子コメント)

This actually reassures me. When someone only says the positives of a project you should run the other way.

[–]xxeyes 5 ポイント6 ポイント  (18子コメント)

I appreciate this list, along with the much more extensive counter arguments to other criticisms of Ethereum in the larger post. However, my primary concern remains unaddressed:

https://www.reddit.com/r/ethereum/comments/5zyr97/can_the_ethereum_blockchain_remain_immutable_in/?ref=share&ref_source=link

[–]Dunning_Krugerrands 5 ポイント6 ポイント  (14子コメント)

It doesn't actually act though does it? It enables or incentivises but it doesn't act. Politically I take the point philosophically Ethereum is no more morally culpable than any other bit of financial or information plumbing.

[–]xxeyes 1 ポイント2 ポイント  (13子コメント)

I agree that Ethereum is not morally culpable. However, my point is that the actions of malicious smart contracts, once programmed, can only be curbed by direct censorship within the Ethereum network. Non-Turing-Complete blockchains don't have this problem. If, for example, a cryptolocker programmer requests ransom in Bitcoin, there is no point in attempting to regulate the Bitcoin blockchain; Bitcoin is entirely separate from the problem. However, if a cryptolocker smart contract is programmed into Ethereum to automate the process of locking data and releasing it when the ransom is received, the only way to address the problem is to attempt to disable the contract within the Ethereum network. Ethereum thus invites incredible regulatory pressure and I can't imagine how it will remain immutable, at least in the sense that we value as crypto enthusiasts.

[–]malefizer 1 ポイント2 ポイント  (2子コメント)

That's not the point. You can blacklist Ransom utxo by hardforks in Bitcoin too. If at all it's about the vulnerable of core devs to coercion.

[–]xxeyes 3 ポイント4 ポイント  (1子コメント)

Blacklisting ransom utxos is a retroactive "correction". Disabling active malicious smart contracts is something entirely different. The former is an option to "make things right", while the latter is the primary course of action to prevent future harm.

[–]malefizer 1 ポイント2 ポイント  (0子コメント)

Don't understand the argument in context of potential regulation. Does it matter?

[–]t9b 0 ポイント1 ポイント  (0子コメント)

I think you a creating a problem that doesn't exist from a misunderstanding about how ethereum works.

Being Turing complete on ethereum in a smart contract is not the same as being Turing complete on a regular computer. The main and fundamental difference is that on a regular computer running the code - any code - is free. A malicious script running on a regular computer costs nothing at all to the perpetrator. Contrast that with ethereum where firstly it costs money to execute code and secondly you are not obliged to use a malicious contract (you simply don't send your money) and you have a totally different security model.

Do you understand this difference? You cannot write self-executing scripts on ethereum.

[–]Group_A -3 ポイント-2 ポイント  (8子コメント)

Okay, and if you remove the Ethereum Foundation altogether. No one is around anymore and something "bad" happens. Then what? Anyone can grab the helm and steer the ship as they see fit. If enough people cry loud enough, maybe the .gov will step in with its own developers and cadre of miners to reverse that evil deed? Then you have yet another chain that remains for those that never agreed. And on and on and on.

Remove Vitalik and his gang forever. Ethereum is humming along all by itself and something goes wrong. Then what is the real question.

[–]xxeyes 4 ポイント5 ポイント  (7子コメント)

I'm sure I'm in the minority, but the ethos of immutable code frightens me. I see Ethereum in its "idealized" state being a stronger facilitator of malicious activity than good. My expectation is that in the long term, even stakers / node operators will no longer want to support the network in a totally immutable fashion for all the harm doing so would cause. I think Ethereum will evolve to become the base infrastructure of many things, but I don't think it will remain immutable.

[–]Group_A 1 ポイント2 ポイント  (6子コメント)

Then what is the point to all of this? Ethereum is supposed to be programmable. At the same time I certainly don't expect Vitalik and his gang to clean up every mess in every aisle from now on and into the future. Someone else may feel like it is necessary and may be able to do just that. I don't see why because it is programmable it becomes less immutable, which is what I think you are after?

Can the Chinese government not round up every miner and every mining operation and install their own operators in that existing infrastructure, in less than 24 hours and say, hey let's reverse all Bitcoin transactions for the hell of it. This immutability blasphemy is nonsense. And with a flick of a switch it is done?

[–]Group_A 2 ポイント3 ポイント  (1子コメント)

I think I have whittled it down?

Because Ethereum is programmable, a lot more things good and bad can happen on it. And because something that was bad that happened in the past was fixed, it should be expected that if more bad things happen on it, they too will be fixed?

I think that is the gist of it?

[–]addictedtohappygenes 0 ポイント1 ポイント  (0子コメント)

They got fixed because most of the community agreed that they should have been fixed. Some fraction disagreed, and that's why we have ETC. Perhaps the community could be swayed to fix more of these issues in the future, but I definitely wouldn't say I "expect" it.

[–]xxeyes 2 ポイント3 ポイント  (2子コメント)

What is the point? I think the idea of a decentralized, immutable computational platform is powerful, but flawed. This ideal and the money to be made from it are the driving forces of adoption and Ethereum's continued development. That's the point, I guess, but I personally think everyone involved will eventually come to the conclusion that this ideal is unsustainable and the whole project will pivot to something else. The ultimate form, I think, will be a corporate or government run network. Still very interesting and hugely impactful on a global scale, but not immutable and not "for the people" as we idealize today.

For the record, I'm not sure Bitcoin will remain decentralized and immutable either, but I think it has a stronger fighting chance due to the argument I presented above against Ethereum. In the case of Bitcoin, the "rich get richer" scenario of mining chip manufacturers (and thus miners in general) will always progress toward centralization unless something is done to limit their growth. I don't know what this could be. But anyway, that is a discussion for r/Bitcoin.

[–]Group_A 0 ポイント1 ポイント  (1子コメント)

That's the beauty of it all. Anything can happen, no one knows what will happen. Keep building it and let us see.

It is fun to guess what might happen, and I am fairly certain in the beginning none on their team ever guessed today there would be this mad run on ICO's that we are seeing today. And that is the way it should be.

Build the thing and let it grow.

[–]xxeyes 3 ポイント4 ポイント  (0子コメント)

I don't disagree. I just think it is healthy to continually consider and evaluate all criticism and possible points of failure, attack and degradation of purpose.

[–]cbeast 0 ポイント1 ポイント  (0子コメント)

The Chinese government can drop the hashrate substantially if no other nation cares about the need for cryptos. An attack of that magnitude would require a response in kind. That doesn't make Bitcoin immutable. Pitting the largest economy in the world against the ethereum foundation, I would rather trust China to make good choices than Buterin.

[–]Sith503 0 ポイント1 ポイント  (2子コメント)

I feel that this is a very healthy conversation to have. However, I respectfully disagree with your conclusion to this question as I interpret it.

Namely, "How do we handle a situation where Ethereum is used in a bad way." If you would indulge my simplification of your premise, I think that really, that's what you're really talking about at the core of it.

But what is bad and what is good? Who defines this universally?

When you invoke "moral obligation", this is where I depart from your position. Simply on the grounds that your morals and mine may differ - even if we're 99.9% in agreement, perhaps we firmly disagree on one way smart contracts might be used. And so may we differ from a million others; sometimes by a few degrees, sometimes by more.

Maybe the Chinese government or American Government or Saudi Government or the Vatican or any other person or entity considers something "good" and something else "bad". Will they all agree? Who is right?

[–]hughmadden 0 ポイント1 ポイント  (1子コメント)

Im not arguing your conclusion, however you present a brutal and impractical view of the world. You are basically stating ethics and philosophy is a waste of time.

Humanitarian values are actually quite important.

[–]Sith503 1 ポイント2 ポイント  (0子コメント)

Well, as I minored in philosophy I have to disagree. My view is neither brutal nor impractical. Ethics and philosophy have a place, but not, in my opinion, at the heart of computer science.

[–]xcombelle 0 ポイント1 ポイント  (4子コメント)

No mention of bugs in smart contract ?

[–]ilovethewayyousmile 13 ポイント14 ポイント  (1子コメント)

I mean what could they do to fix it tho. I'd assume it's the developers who've got to make sure the code is solid and probably add clauses like kill switches which provide a safety net.

[–]0x2775 16 ポイント17 ポイント  (0子コメント)

You're right although there is some stuff they can be doing and are. The solidity compiler gives you warnings about vulnerabilities like the DAO recursive call exploit and other best practices and things like the underhand solidity competition that was announced a few days ago is another good step. But yeah at the end of the day you can't stop people writing shitty code.

[–]MentalRental 2 ポイント3 ポイント  (0子コメント)

Looks like he added it as #7:

Edit: (7) it's hard for regular users to know that contracts they are interacting with do what they say they do, and do not have accidental or malicious bugs.

[–]jeanduluoz 1 ポイント2 ポイント  (0子コメント)

Refreshing to hear compared to the Core dev "we are the one true coin and if you don't agree then you're a fucking idiot" propaganda

[–]TotesMessenger 0 ポイント1 ポイント  (3子コメント)

I'm a bot, bleep, bloop. Someone has linked to this thread from another place on reddit:

If you follow any of the above links, please respect the rules of reddit and don't vote in the other threads. (Info / Contact)

[–]Group_A 5 ポイント6 ポイント  (2子コメント)

What would they think if he made out like it was flawless?

[–]AlexanderSupersloth 2 ポイント3 ポイント  (1子コメント)

r/buttcoin exists for the lols, not for genuine criticism.

[–]yourslice 0 ポイント1 ポイント  (0子コメント)

I like that they call us mETH heads. Accurate and I'm happily addicted.

[–]umib0zu 0 ポイント1 ポイント  (0子コメント)

My two cents:

tl;dr - I don't think any of these are valid. I would take them more as "Cons" than "Criticisms" since I think all of them are fundamental issues of blockchains.

  1. Scalability sucks PoW is extremely expensive, and furthermore is fundamentally vulnerable to 51% spawn camping attacks with no effective strategy for recovering from one. Selfish mining is profitable starting at 25-33% hashpower, and 51% censorship attacks are definitely profitable.

Would these be fixed by PoS? This is probably the only criticism that I think can be fixed.

Privacy sucks It's hard for regular users to hold large amounts of funds without running substantial risks of theft or loss due to theft or loss of their private keys.

I don't think this is a valid criticism. For example, what does he mean by privacy sucks? Does he mean it's hard to buy ETH without revealing yourself to Coinbase or any of the other providers? Also, I don't think his criticism of large scale savings risk is good. The Nakamoto paper discouraged this behavior because of this exact issue. Digital currency is only supposed to be for anonymous transactions. While people might want to whale, the point is they shouldn't whale, so why is their risk analyzed as risk on the network? Every pure cryptoanalyst that I've met believes crypto is for short term (~2 years) storage of secrets. Your key can always be socially engineered/stolen, so if you're storing millions of dollars of ETH you're doing something you're explicitly told not to do.

Economics do not encourage good "storage hygiene"; insufficient incentives for clearing storage and insufficient cost for filling it, especially for long periods of time

You can't have a programming language without the ability to create and store some data. I can't imagine a fair and distributed way to get users to write better more efficient contract code since if a miner wins the hash race, regardless of the efficiency of the contract, they will persist the block.

(7) it's hard for regular users to know that contracts they are interacting with do what they say they do, and do not have accidental or malicious bugs.

You can say about any program. I'm sure people had no idea about Pagerank even though they were using Google's search. They used it because it worked, not because they understood how it worked. If the incentives to use a product are orders of magnitudes better than the incentives given by the alternatives, history shows people will take the risks.

[–]STFTrophycase 0 ポイント1 ポイント  (0子コメント)

Hate to burst everyone's bubble but these are valid criticisms of nearly every PoW blockchain project. I would be more impressed to see specific critiques of Ethereum (Solidity language, VM design, wealth distribution, etc.), than critiques of PoW, blockchains, etc. The responses basically worshipping the guy aren't helping either.

[–]Uptrenda 0 ポイント1 ポイント  (0子コメント)

Addendum:

  1. Usability still sucks for most apps. Using contracts involves installing a bunch of plugins (even if its simple.) Where are the true SPV-based browser wallets? Where are all the beautiful wallets that even my grandma could use?

  2. (Controversial) Lots and lots of hype, very little results. Ethereum is a general-purpose system for writing smart contracts, it represents the potential to do a lot. But so far the majority of use has come from magic bean ICO sales that solve no new problems. For all of the new changes that blockchains have introduced there have been surprisingly few new trustless agreements discovered and implemented on top of Ethereum. It would be nice to see more systems that didn't completely undermine the trust, security, and incentive benefits that blockchains provide just to use the new lingo to scam clueless investors. No offense intended by this.

  3. Development tools and docs are shitty. It takes forever to run tests for most contracts and the documentation for Ethereum is terrible. Part of the reason is that Ethereum seems to have over-engineered every possible system so you can't just write a simple Python script to talk to the network... Oh no. For that you have to use an entire cryptographic, p2p message protocol to even get a basic message to another node. It's complex... and I know that there is that one mod here who likes to scream at everyone like its our fault but personally I like to start with the assumption that the audience isn't fucking idiots. Ethereum could do more to improve its engineering by making aspects of the protocol simpler.

  4. Exchanges are still terrible. Seriously, more than half of the "decentralized" exchange protocols I've reviewed in this space don't even work, and the centralized exchanges are no better. This is a lot harder to solve than it sounds but its not impossible. Even though Ethereum has made trustless exchanges trivial to implement all that lead to is people mindlessly trying to decentralize everything when it doesn't always make sense, consequently, many of these designs have actually introduced new security vulnerabilities. I won't say anything more on this point but its amazing how in 2017 we're still stuck with total BS.

[–]CoinInvester39452624 -1 ポイント0 ポイント  (0子コメント)

Half the newcomers here might short circuit themselves trying to process his critiques.