Live data from Hacker News

Critical Update on DAO Vulnerability

blog.ethereum.org

321–330 of 629 posts

Re: Critical Update on DAO Vulnerability

#321
post #307
post #250

Earlier quoted context omitted.

I'm mostly an ethereum skeptic, but maybe this doesn't actually indicate that all smart contracts are doomed? Maybe all it means is that bespoke ethereum contracts are risky, and people will have to use boilerplate contracts that have proven robust in the past. I sort of assumed this DAO thing was intended in this spirit, as an experimental stab on the path to robust contracts.

> I sort of assumed this DAO thing was intended in this spirit, as an experimental stab on the path to robust contracts. With millions of dollars in prizes if you could exploit it?

With millions of dollars in prizes if you could exploit it!

Re: Critical Update on DAO Vulnerability

#322
post #308
post #250

Earlier quoted context omitted.

I'm mostly an ethereum skeptic, but maybe this doesn't actually indicate that all smart contracts are doomed? Maybe all it means is that bespoke ethereum contracts are risky, and people will have to use boilerplate contracts that have proven robust in the past. I sort of assumed this DAO thing was intended in this spirit, as an experimental stab on the path to robust contracts.

There are bugs in critical shared software infrastructure like Linux, libc, OpenSSL, and so on as well and not just a few minors ones. Why would it be any different for "bespoke ethereum contracts"?

If an ethereum contract was the size and complexity of any of those projects I would certainly expect it to contain many errors.

Re: Critical Update on DAO Vulnerability

#324
post #307
post #250

Earlier quoted context omitted.

I'm mostly an ethereum skeptic, but maybe this doesn't actually indicate that all smart contracts are doomed? Maybe all it means is that bespoke ethereum contracts are risky, and people will have to use boilerplate contracts that have proven robust in the past. I sort of assumed this DAO thing was intended in this spirit, as an experimental stab on the path to robust contracts.

> I sort of assumed this DAO thing was intended in this spirit, as an experimental stab on the path to robust contracts. With millions of dollars in prizes if you could exploit it?

My hope is that the people putting millions of dollars into it are well off people who are OK with putting their spare money into something obviously risky and experimental.

Edit: If this is not how it is, I'd be interested to know who is putting money into the DAO, sociologically speaking. I hope nobody's investing their life savings in it.

Re: Critical Update on DAO Vulnerability

#325
post #212

Reading their blog about "smart contract security" [1] is just mind-blowing. Like, I thought that was the core of the product, but somehow they've designed a language which makes it extremely difficult to not get your smart contract hacked? And now the solution to this situation is going to be better documentation and IDEs? Oy. [1] https://blog.ethereum.org/2016/06/10/smart-contract-security...

Me from a month ago: "... having had a quick scan over the language documentation, it looks to me like a bog-standard imperative mutable language. One that is very young, and with few if any features designed for being used in a high-security environment. It appears to be based on raw event-based programming, a style of programming very easy to mess up and hard to declare and preserve invariants in. It looks like a very dangerous programming language to be trying to write financial contracts in. At least it's not dynamically typed, does seem to avoid excessive coercion, and should be memory safe; it could certainly be worse. But it could be better, too." https://news.ycombinator.com/item?id=11726734

I don't know off the top of my head what I would design into my contract language, but Solidity has numerous things in it that I would not.

I guess in their further defense, the way I'd want to design the contract language is what is right now some really cutting edge programming language theory. I'd be looking very hard at the Total Functional Programming languages [1]. "Total" here is not just an enhancing adjective, it defines a specific characteristic of the languages with regard to how they terminate. But it still would have legitimately been research to figure out how to correctly convert from a programming language to its cost-to-execute correctly enough to be in a financial application. I believe TFP research right now is mostly focused on how to write TFP code that practically accomplishes things without having to write some pretty mathematically-complicated circumlocutions, not modeling costs.

I also would have looked at doing something with FRP, not because it's the hottest new thing necessarily, but because the ability to express every participant's obligation in a single block of code like a thread rather than an event-based setup would have made these contracts much easier to write and audit.

The combination of these two things is probably an entirely untouched domain, or at least effectively so.

Ethereum is a fascinating idea. It's not hard to imagine something architecturally like it being huge in 50 years. It's not hard to even imagine it as the basis of cstross' unspecified "Economy 2.0" in Accelerando. But it might just be 5 or 10 years too early to work now.

[1]: https://en.wikipedia.org/wiki/Total_functional_programming

Re: Critical Update on DAO Vulnerability

#326

This is what concerns me about contract programming. With human contract law, if there's a minor typo or loophole, participants can generally see the spirit and intent, and at worst go to a judge who will usually enforce the intent. But with software contracts, only the characters matter and there's no intent anywhere: either you get paid or you don't. ETH is advising, "Contract authors should ... be very careful abo…

>This is what concerns me about contract programming. It is really the whole cryptographic ambition for trust less systems that is possibly problematic. I'm trying to be open minded. I'll concede that maybe they are will be proven right with time, but maybe not.

The problem is in a trustless system, there's still trust - trust in the code. And if there's one thing I have ZERO trust in, it's software.

Re: Critical Update on DAO Vulnerability

#327
post #311

Earlier quoted context omitted.

I agree completely. 'Smart' contracts are terribly flawed in this regard. Operating outside of contract law is a weakness, not a strength. No-one can write bug-free code, so why are these people building a huge, expensive system that relies on no bugs being found?

No-one can write bug-free code No, we can. We just don't, because it's very expensive, and we lack proper tooling to make it cheaper and/or faster. The flaw as I see it is that ETH jumped the gun, and tried to move to software law enforcement without investing the right amount of time/money in the code. Worthwhile goal (though the desirability and practicality remains debatable), bad execution.

With enough effort, you can prove that your code conforms to the specification, but how do you prove that the specification conforms to your expectations?

Re: Critical Update on DAO Vulnerability

#328

Article content: Posted by Vitalik Buterin on June 17th, 2016. An attack has been found and exploited in the DAO, and the attacker is currently in the process of draining the ether contained in the DAO into a child DAO. The attack is a recursive calling vulnerability, where an attacker called the “split” function, and then calls the split function recursively inside of the split, thereby collecting ether many times o…

Hang on. So because this one contract is poorly specified, they've decided to change the universe to prevent its existence? Wow. That's some fiat power right there.

Re: Critical Update on DAO Vulnerability

#329
post #311

Earlier quoted context omitted.

I agree completely. 'Smart' contracts are terribly flawed in this regard. Operating outside of contract law is a weakness, not a strength. No-one can write bug-free code, so why are these people building a huge, expensive system that relies on no bugs being found?

No-one can write bug-free code No, we can. We just don't, because it's very expensive, and we lack proper tooling to make it cheaper and/or faster. The flaw as I see it is that ETH jumped the gun, and tried to move to software law enforcement without investing the right amount of time/money in the code. Worthwhile goal (though the desirability and practicality remains debatable), bad execution.

> No, we can. We just don't, because it's very expensive, and we lack proper tooling to make it cheaper and/or faster.

Eh, it depends on how amenable your standards for correctness are to formalization. Also when it comes to security, where clearly bugs tend to hurt a lot more, we're almost always at the mercy of "unproven" (in the formal sense) algorithms. Don't get me started on quantum computing's effects.

Reasoning about concurrent programs (let alone distributed ones) is something where I don't think we've got many reasonable schemes, even at the academic level. Though it's great to hear the Ethereum foundation is willing to drop some cash on that problem! I wish luck to anyone who takes them up on that, it's something I'd love to work on if I didn't have existing projects.

Re: Critical Update on DAO Vulnerability

#330

Some numbers to get a grasp of the scale: > There is 2.436.828 Ethereum in the account of the attacker (see: https://etherchain.org/account/0x304a554a310c7e546dfe434669c... ) > That's about 3% of all Ethereum mined (source: http://coinmarketcap.com/currencies/ethereum/ ) > The Ethereum in the account of the attacker has a value of $41 million > The volume is about 30% of all Ethereum trade today

It's up to 3.64M ether now (valued at $60.3M).

Here are the working links:

https://live.ether.camp/account/304a554a310C7e546dfe434669C6...

https://etherscan.io/address/0x304a554a310c7e546dfe434669c62...

Post reply on HN