Earlier quoted context omitted.
The situation is not as bad as this article claims. Well it kind of is actually. The people that wrote the DAO script had the script checked by lots of Ethereum experts and the bug slipped through. So if the Ethereum experts can't stop things like this happening then what chance do individual developers have. Basically creating a turing complete scripting language on the blockchain is not secure. No financial institu…
Whenever I hear "expert" I think of https://www.youtube.com/watch?v=BKorP55Aqvg
Ethereum is Doomed
171–180 of 217 posts
Re: Ethereum is Doomed
#172Earlier quoted context omitted.
If you overflow the stack it throws and rolls back (which is another attack in certain circumstances). What killed TheDAO is basically that childDao called back the sender method, which sends again without having deducted yet. Do the deduct before the send, and the whole problem goes away.
Right, but would the deduction commit even if the send fails? Isn't this the whole concurrency 101 "Atomic deduct and send" problem?
The send returns false if it fails. So if you check for that, you can throw an exception, which rolls back the whole transaction just like in SQL.
The reason the send doesn't automatically throw is that if you were doing lots of sends in a loop, you'd actually want to ignore the exception, so if one send fails it doesn't block everybody.
Re: Ethereum is Doomed
#173I have actually tested this attack technique (using my own contracts on a local test chain), and I've been in discussions with some Solidity developers and the guy who first published the attack. The situation is not as bad as this article claims. For starters, you can use address.send(x) instead of address.call.value(x)(). All computations on Ethereum have to be funded with "gas" (transaction fees), and send() only…
Send at the end is like return-once or tail recursion. Does - http://www.joeykrug.com/home/a-serpent-send-exploit change things at all?
Solidity is the official supported language, Serpent is an earlier and slightly lower-level language that some people still use. I expect they'll fix the gas default.
Re: Ethereum is Doomed
#174Earlier quoted context omitted.
The situation is not as bad as this article claims. Well it kind of is actually. The people that wrote the DAO script had the script checked by lots of Ethereum experts and the bug slipped through. So if the Ethereum experts can't stop things like this happening then what chance do individual developers have. Basically creating a turing complete scripting language on the blockchain is not secure. No financial institu…
Whenever I hear "expert" I think of https://www.youtube.com/watch?v=BKorP55Aqvg
Re: Ethereum is Doomed
#175The problem with Turing completeness is that if it's not there from the start, people inevitably end up needing features that aren't present in the restricted language, and then a Turing complete language is added to either the original system or a successor, and being an afterthought it usually ends up being a hack job. Examples: SQL was supplemented with procedural languages for stored procedures, Excel was supplem…
There are languages which are both expressive and Turing incomplete, for example Coq. In the Coq language, Turing incompleteness is actually needed to be able to make complete proofs. Maybe Solidity would have been better implemented within Coq, but it's too late now.
Re: Ethereum is Doomed
#176Earlier quoted context omitted.
I think you're thinking of use cases that would definitely be stopped outside of ethereum world: > Some rich soon-to-be-dead billionaire tech nerds want to be able to do something every year without worrying about a judge taking that away from them. You can do things like this, but the law either already covers this, or will adjust. If you gain money, you're expected to pay the usual tax on that gain. First few may g…
As long as you never convert into traditional currency, how will they know you participated in a transaction?
Re: Ethereum is Doomed
#177Earlier quoted context omitted.
I think you're thinking of use cases that would definitely be stopped outside of ethereum world: > Some rich soon-to-be-dead billionaire tech nerds want to be able to do something every year without worrying about a judge taking that away from them. You can do things like this, but the law either already covers this, or will adjust. If you gain money, you're expected to pay the usual tax on that gain. First few may g…
The point of Ethereum is to provide something that is different from the real world. If not, it is simply fiat, except that it is 1000 times more inefficient and burns up loads of electricity.
Re: Ethereum is Doomed
#178Earlier quoted context omitted.
So instead of hiring a juris doctor lawyer to review my contracts, I'll hire a PhD computer scientist ;)
Correct. Programmatic contracts should have democratized the entire business but instead this new scheme creates a new class of "lawyer".
Re: Ethereum is Doomed
#179> Solidity is like programming in JavaScript, except with your bank account accessible through the Document Object Model. Such a beautiful, terrifying sentence.
This is a very snarky hyperbole. Solidity has as much to do with Javascript as Java does. For starters, Solidity is a compiled, typed language. It is still new and has to be improved.
Re: Ethereum is Doomed
#180Earlier quoted context omitted.
What _legally_ exploitable bank bugs have you heard of? Keyword there being legally.
This exploit wasn't legal either. It was blatantly fraud. I've asked a lawyer for their opinion and it was a very simple question to answer. Contracts are never entirely literal and usually there are implied clauses in contracts. There is a very simple test called the "officious bystander": if there had been a neutral bystander who had asked "should we allow anyone to take $50 million dollars without our consent" the…