Live data from Hacker News

Deleting $300M by messing around with Ethereum contracts

hackernoon.com

11–20 of 45 posts

Re: Deleting $300M by messing around with Ethereum contracts

#11
post #7

Laic here: Could we not keep Solidity Turing complete as it is and just build a restricted framework on top that will be audited and not Turing complete and just encourage regular programmers to use the framework and its predefined audited functions instead for day to day contracts? Occasionally new tools could be developed in Solidity that will be carefully audited and aded as safe to the regulated framework.

How about not having turing complete language where it doesn't make sense?

Re: Deleting $300M by messing around with Ethereum contracts

#12

This is really funny, and hopefully this time people will realise the danger of using programmer-written contracts to manage millions of dollars . If someone can accidentally delete that volume of your money, it's not that someone's fault, it's your fault.

Bank accounts, wire transfers that move trillions are also written by programmers, so should we stay to cash economy only? The problem is immaturity of crypto currency/contract market as it's still in its infancy. I'm optimistic about crypto economy future as most of current problems could be fixed (or at least alleviated) by standards, regulations and discipline.

Re: Deleting $300M by messing around with Ethereum contracts

#13
post #12

This is really funny, and hopefully this time people will realise the danger of using programmer-written contracts to manage millions of dollars . If someone can accidentally delete that volume of your money, it's not that someone's fault, it's your fault.

Bank accounts, wire transfers that move trillions are also written by programmers, so should we stay to cash economy only? The problem is immaturity of crypto currency/contract market as it's still in its infancy. I'm optimistic about crypto economy future as most of current problems could be fixed (or at least alleviated) by standards, regulations and discipline.

Bank accounts, wire transfers that move trillions are also written by programmers

Sure, but they're written in ways that humans can generally roll back a mistake and if two humans disagree about what should be done (due to a 'bug' or inconsistency in the contract) there are processes where a third human can listen to their arguments and decide what sounds like the most reasonable course of action. At no point is the code written by programmers the final arbiter of what the 'correct' course of action is.

Re: Deleting $300M by messing around with Ethereum contracts

#14
The thing is, the kind of developers it takes to implement smart contracts correctly is probably exceptionally rare, if they even actually exist.

I don't think it's impossible, but it's clearly in conflict with the "release early, release often" culture. If anything, developing smart contracts is more like building software for NASA crafts : you have to get it right before the launch. And even regarding the NASA, I guess they still have room for some remote patching. In smart contracts, perfect is not the enemy of good, they are actually synonymous.

Re: Deleting $300M by messing around with Ethereum contracts

#15
post #13
post #12

Earlier quoted context omitted.

Bank accounts, wire transfers that move trillions are also written by programmers, so should we stay to cash economy only? The problem is immaturity of crypto currency/contract market as it's still in its infancy. I'm optimistic about crypto economy future as most of current problems could be fixed (or at least alleviated) by standards, regulations and discipline.

Bank accounts, wire transfers that move trillions are also written by programmers Sure, but they're written in ways that humans can generally roll back a mistake and if two humans disagree about what should be done (due to a 'bug' or inconsistency in the contract) there are processes where a third human can listen to their arguments and decide what sounds like the most reasonable course of action. At no point is the…

Yet this system is not bulletproof either:

0. http://www.telegraph.co.uk/news/uknews/crime/11414191/Hacker...

1. https://en.wikipedia.org/wiki/Bangladesh_Bank_robbery

Re: Deleting $300M by messing around with Ethereum contracts

#16
post #15
post #13

Earlier quoted context omitted.

Bank accounts, wire transfers that move trillions are also written by programmers Sure, but they're written in ways that humans can generally roll back a mistake and if two humans disagree about what should be done (due to a 'bug' or inconsistency in the contract) there are processes where a third human can listen to their arguments and decide what sounds like the most reasonable course of action. At no point is the…

Yet this system is not bulletproof either: 0. http://www.telegraph.co.uk/news/uknews/crime/11414191/Hacker... 1. https://en.wikipedia.org/wiki/Bangladesh_Bank_robbery

Of course no system is completely bulletproof against a determined attacker. There are however a few differences. First of all what these people did is obviously illegal and people go to jail for doing that sort of thing. As it stands there is no legal consensus on whether exploiting a bug in a smart contract is illegal or not.

Secondly and more importantly, the fail-safes built into the system largely work. In the Bangladesh case for example the vast majority of the money they where attempting to steal was never transferred due to humans intervening and overriding the transfer order. And even a non-trivial amount of the money that was transferred was later recovered by reversing the transaction.

Re: Deleting $300M by messing around with Ethereum contracts

#17
post #6

The author mentions that turing complete contracts will have bugs in them eventually. While currently that happens, we do have formal verification methods in computer science. And thats exactly what people are trying to apply on Ethereum: Formally verified smart contracts. https://blog.ethereum.org/2016/06/19/thinking-smart-contract...

It is just moving the goalposts. The formally verified contract is only as good as the assertions proven. Look at WPA2, it was formally verified against 'most' attacks.

Re: Deleting $300M by messing around with Ethereum contracts

#18
post #6

The author mentions that turing complete contracts will have bugs in them eventually. While currently that happens, we do have formal verification methods in computer science. And thats exactly what people are trying to apply on Ethereum: Formally verified smart contracts. https://blog.ethereum.org/2016/06/19/thinking-smart-contract...

Formal methods have been under development for decades, yet their penetration into software development is miniscule. Hardly any professional developers know how to use them. Turning Ethereum and its contracts into a formally verified system would be the largest adoption of formal methods by several orders of magnitude.

Ironically, the article you link to does not support your post: it also stresses the difficulties of applying formal methods, and claims instead that various interventions of the sort that have not been particularly successful in securing software generally will be sufficient to satisfy the particularly stringent requirements of a crypto-currency (of course, to say that Ethereum needs formal methods in order to be usable would be to admit that it is not close to being so, so that view will always be contested by the Ethereum foundation. At Cardano [1], however, they do seem to think formal methods will be part of their solution, though I am not sure to what extent.)

This is all mostly moot, however, as the Ethereum we have now is demonstrably insecure by any measure.

[1] https://www.cardanohub.org/en/home/

Re: Deleting $300M by messing around with Ethereum contracts

#19
post #6

The author mentions that turing complete contracts will have bugs in them eventually. While currently that happens, we do have formal verification methods in computer science. And thats exactly what people are trying to apply on Ethereum: Formally verified smart contracts. https://blog.ethereum.org/2016/06/19/thinking-smart-contract...

It is just moving the goalposts. The formally verified contract is only as good as the assertions proven. Look at WPA2, it was formally verified against 'most' attacks.

Just to be clear, this is an argument that even formal methods might not be sufficient to secure Ethereum (and certainly not if applied piecemeal), not an argument that it can be secured by other means.

Re: Deleting $300M by messing around with Ethereum contracts

#20
post #16
post #15

Earlier quoted context omitted.

Yet this system is not bulletproof either: 0. http://www.telegraph.co.uk/news/uknews/crime/11414191/Hacker... 1. https://en.wikipedia.org/wiki/Bangladesh_Bank_robbery

Of course no system is completely bulletproof against a determined attacker. There are however a few differences. First of all what these people did is obviously illegal and people go to jail for doing that sort of thing. As it stands there is no legal consensus on whether exploiting a bug in a smart contract is illegal or not. Secondly and more importantly, the fail-safes built into the system largely work. In the B…

Exactly. And this is just because there are no regulations to make it illegal and standard protocols to follow that, as I've mentioned in my first post, is the key requirement if crypto economy is to be something more than just a wet dream of crypto-anarchists.
Post reply on HN