Live data from Hacker News

Critical Update on DAO Vulnerability

blog.ethereum.org

211–220 of 629 posts

Re: Critical Update on DAO Vulnerability

#211

I have a (maybe naive) question: why is the person draining ETH from DAO called "attacker"? I seems to me that the idea behind smart contracts was to have unambiguous description of what are participants agreeing to. The "attacker" is doing precisely this - I had not heard of any bug in Ethereum implementation that is used, only "bug" in DAO's smart contract. So he is allowed to do this, by contract definition. Isn't…

This argument can be made for most/all software vulnerabilities.

Re: Critical Update on DAO Vulnerability

#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...

Re: Critical Update on DAO Vulnerability

#213

Earlier quoted context omitted.

Majority is consensus?

It has been proven impossible to reach full consensus at scale in a fully decentralized, asynchronous system (the FLP theorem). So, in computer science terms, consensus algorithms are about approximating distributed consensus in the face of benign and malicious threats or communication failures, which devolves to "quorum / majority" pretty quickly in a crisis. After the crisis, some kind of compensation, reconciliati…

So that means if you are against majority thought you are shit out of luck. Just think of any time when majority consensus hasn't been the optimal solution.

Re: Critical Update on DAO Vulnerability

#214
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 about recursive call bugs, and listen to advice from the Ethereum contract programming community," which indicates there's some subtle behaviors to be aware of and secure contracts are apparently not easy to write.

Lest you think, "we'll just be careful, review and QA it", consider the bug[1] in the "Programming Pearls" binary search. Bentley was clearly an expert who had proven the algorithm correct and the algorithm had 20 years of careful study by thousands of professionals. Yet it had a simple overflow.

How do _you_ know your contract is secure?

1. https://research.googleblog.com/2006/06/extra-extra-read-all...

Re: Critical Update on DAO Vulnerability

#215

Can someone eli5 what DAO and ethereum are?

Ethereum is a P2P accounting system, like Bitcoin, but allowing users to upload automatic contracts that decide autonomously what to do with the tokens they possess.

For example, you could upload a contract that lets some specific set of accounts withdraw money unless the balance goes under 500 ETH (which is the basic Ethereum currency).

"The DAO" is such a contract but with more complex logic that amounts to a kind of venture fund. If you send money into it, you get to vote in proportion on proposals for "The DAO" to fund projects.

That contract was hyped enormously as the future of financing etc and indeed received an enormous amount of ETH from people who hoped it would benefit the Ethereum ecosystem.

In the first weeks after its recent launch, the contract logic was shown to have economic flaws that would most likely lead to bad fund performance, and it seemed as if the incentives for voting on proposals didn't work: no proposal ever made it past the threshold.

And now it turns out that despite the assurance of security audits, the logic (written in Ethereum's contract language Solidity) had a serious bug that allowed an attacker to start draining all of the fund's assets.

Re: Critical Update on DAO Vulnerability

#216

I have a (maybe naive) question: why is the person draining ETH from DAO called "attacker"? I seems to me that the idea behind smart contracts was to have unambiguous description of what are participants agreeing to. The "attacker" is doing precisely this - I had not heard of any bug in Ethereum implementation that is used, only "bug" in DAO's smart contract. So he is allowed to do this, by contract definition. Isn't…

I understand what you're saying and don't necessarily disagree, particularly as I don't know enough about the subject to form a strong opinion. I would intuit that one might argue the contract was in error if there's a clear indication of intent.

Re: Critical Update on DAO Vulnerability

#217

Earlier quoted context omitted.

Actually, I'd say the fact that he has to publicly ask for exchanges to stop the trades, and can't simply press a button or send out an order, shows the decentralization. Decentralization doesn't prevent coordination.

I think you're missing the point. The fact that one man can bring the whole of Ethereum trading to a halt with an announcement really demonstrates just how much power he has. So it doesn't matter that he doesn't have a physical kill switch if the end result is the same.

He wouldn't have that power in just any old circumstance. He could have the power to launch nukes, but if that power would only work if all of the world agrees, I'd still not be afraid of him.

Re: Critical Update on DAO Vulnerability

#219
post #211

I have a (maybe naive) question: why is the person draining ETH from DAO called "attacker"? I seems to me that the idea behind smart contracts was to have unambiguous description of what are participants agreeing to. The "attacker" is doing precisely this - I had not heard of any bug in Ethereum implementation that is used, only "bug" in DAO's smart contract. So he is allowed to do this, by contract definition. Isn't…

This argument can be made for most/all software vulnerabilities.

Most software does not constitute a contract. If I run an internet connected computer I don't enter into an agreement with anyone on the internet to use my machine even if its OS has security holes enabling this. The DAO was supposed to be a contract specifying and enforcing in a formal and automatic way what the participants can do.

Re: Critical Update on DAO Vulnerability

#220
post #211

I have a (maybe naive) question: why is the person draining ETH from DAO called "attacker"? I seems to me that the idea behind smart contracts was to have unambiguous description of what are participants agreeing to. The "attacker" is doing precisely this - I had not heard of any bug in Ethereum implementation that is used, only "bug" in DAO's smart contract. So he is allowed to do this, by contract definition. Isn't…

This argument can be made for most/all software vulnerabilities.

I am not sure. I believe that in many cases similar activity would illegal or at least forbidden by Terms and Conditions.

I the DAO case I am not aware of any regulations or laws that the "attacker" has broken.

Post reply on HN