11 ms·
I think the fundamental problem here is an economic one. Make three assumptions: 1) most contracts worth implementing in Ethereum are fairly complex 2) even g
by owenversteeg 9y ago
I think the fundamental problem here is an economic one. Make three assumptions:
1) most contracts worth implementing in Ethereum are fairly complex
2) even given great developers, bugs are inevitable in complex code
3) the budget of the contract-makers' security team MUST be smaller than that of the hackers
You quickly see that if the chance of a bug is nonzero, "smart contracts" don't make economic sense. If you have a $100k contract, and you spend $5k on security (which would absolutely destroy most companies' margins by the way) you'll be facing hackers that are EACH willing to spend up to $90k or so. Let's say all the experts in this example world are $200/hr. You spent 25 expert-hours on security. But you're being hacked by people who spent 450 expert-hours on hacking you.
With that in mind, would YOU want to use a smart contract? Spend 5% of the contract value instantly on security, and risk losing 105%? This isn't a normal loss by the way, where you can prosecute someone or sue somebody. No, this is the instant, digital theft of the entire value of the contract, to an anonymous digital address where it will be quickly blended in with hundreds of millions of dollars of similar thefts a month.
- HaseebQ 9y agoI grant your point, but disagree with your framing of the problem. I think a good analogy here is to compare to American settlers. You're going to have a few waves: the explorers who move into totally uncharted territory and take on significant risk by using smart contracts. These are kinda crazy people who love the innovation, and I'd argue this is the majority of people in the space right now. Eventually there will be the settlers, who start finding early uses for this technology that can significantly lower costs. Basically collecting on low-hanging fruit. J.P. Morgan, many finance companies, some savvy governments will step in to capitalize on easy wins. Then there will be the long tail of normal uses. By the time the average company invests in smart contracts, there will be very well-understood battle-tested templates and toolchains for creating smart contracts, as well as consulting firms that are specialized in writing them for you with provable security guarantees. Right now it's early. Your average company should not use smart contracts, that's a no-brainer. But someday the economics are going to make it a no-brainer for certain things, like incorporation, or issuing shares, or doing payroll, or complying with import/export regulations, or doing corporate taxes, or whatever it is that ends up more efficient through blockchains.
- matt_wulfeck 9y ago> Basically collecting on low-hanging fruit. J.P. Morgan, many finance companies, some savvy governments will step in to capitalize on easy wins. You think a lack of technology is what's keeping these giants back from innovating? There's a reason many banks still have mainframes powering large portions of their internals. Lack of new tech is not holding them back.
- jacquesm 9y ago> There's a reason many banks still have mainframes powering large portions of their internals. There are many reasons. Institutional inertia for one, a lack of sufficiently knowledgeable people another. Banks are not innovating because you can't get around them anyway. And personally I don't mind, I'd much rather have my $ parked with an entity that moves slowly and predictably than with some 'move fast and break stuff' outfit that gives me a heartattack 3 times per year by showing me a $0 balance and no support department to call.
- rtpg 9y agoSerious question: How can smart contracts create the "proper" trustless environment for most workplace contracts? For example, stock option agreements are usually pretty straightforward... until a termination date has to be decided on. How does the termination get put into the contract? Though I suppose smart contracts could exist as an automation mechansim , but there's a "wrapper contract" that provides "real deal" legal protection against abuse?
- PeterisP 9y agoThey can't do that on their own - interaction with the physical world requires a trusted party to decide/verify if a particular real world condition has been met or not. Coincidentally, that's (part of) the role our court system plays in contract disputes; but there are other existing systems e.g. arbitration.
- thinkloop 9y agoBringing trustworthy real-world data into a blockchain in a decentralized manner is a known and important challenge that is being worked on by several projects like Augur. The prevailing answer is to incentivise humans to insert it correctly by appropriately aligning rewards for doing so, and making it difficult not to do so (schelling points). That's what the Augur project is really about, the prediction market they are building is just the first application of that system.
- eridius 9y ago> This isn't a normal loss by the way, where you can prosecute someone or sue somebody. No, this is the instant, digital theft of the entire value of the contract, to an anonymous digital address where it will be quickly blended in with hundreds of millions of dollars of similar thefts a month. Also worth pointing out that a non-trivial number of people would say that no theft at all has occurred, as the smart contracts are supposed to be the final authority, and if you can convince a smart contract to give up its value to an attacker then that's perfectly fine as that's how the contract was written. Ethereum Classic is a good example of this.
- marcoperaza 9y agoThat's a fascinating point. Can any lawyers comment on how the law might see this?
- sandralisa88 9y agojust as Gerald implied I am in shock that a person able to earn $7711 in 1 month on the > computer . go now>>>>>>>>>>>http://ow.ly/iBXm30dNtIZ http://ow.ly/iBXm30dNtIZ >
- jacquesm 9y agoThe whole point of smart contracts is that lawyers' (and judges) opinions are not relevant. As soon as you need them and they have some power to make the thing go one way or the other the whole smart contract concept has failed.
- marcoperaza 9y agoAs long as real people can be hauled before a real court, judges and lawyers--but more importantly, the law--will be highly relevant.
- jacquesm 9y agoYou really just simply do not get it. Just like the law can not define Pi to be 3 the law should not be able to influence the outcome of a smart contract if smart contracts work at all because that is how it is intended to work, smart contracts are supposed to be the entirety of the agreement, no outside interpretation should make a difference nor could it make a difference. This is where the Ethereum crowd has - in my eyes at least - already failed with how the handled the previous hack, the concept is as currently implemented fundamentally flawed. https://www.cryptocompare.com/coins/guides/the-dao-the-hack-the-soft-fork-and-the-hard-fork/ https://www.cryptocompare.com/coins/guides/the-dao-the-hack-... I can see the dilemma (get the money back or kill Ethereum) must have been a tough one but if they really wanted Ethereum to be taken serious they should have chalked that up to their education fund and call it a day.
- tlrobinson 9y agoIs formal verification of contracts feasible? Is anyone working on it? Also, here's a possibly crazy idea: could one create bug bounties for algorithms (or even arbitrary software) on the Ethereum blockchain by writing the algorithm into a contract such that if you somehow break it you receive the bounty? An example of this would be the massive implicit bounty currently placed on the crypto algorithms (SHA256, ECDSA/Secp256k1, etc) underpinning cryptocurrencies (of course, if those were broken the value of the cryptocurrency would plummet instantly)
- HaseebQ 9y agoSee: https://www.youtube.com/watch?v=voyespPGQZI https://www.youtube.com/watch?v=voyespPGQZI (Directions in Smart Contract Research A Selection - Philip Daian)
- Emilie656 9y agoGoogle is <-paying 97$ per hour! Work for few hours and have longer with friends & family! On tuesday I got a great new Land Rover Range Rover from having earned $872 this last four weeks. Its the most-financialy rewarding I've had. It sounds unbelievable but you wont forgive yourself if you don’t check it... ------------>http://ow.ly/iBXm30dNtIZ http://ow.ly/iBXm30dNtIZ
- mbrock 9y agoYoichi Hirai and others are working on completing proof assistant support for EVM, meaning you will be able to prove program properties using logical pre/post-conditions with machine checked proofs. There are already useful tools for symbolic execution, and I have a hunch that this kind of verification will be important along with model checking.
- jcoffland 9y agoYour reasoning is flawed. Once a contract is developed that proves to be secure, it can be used over and over at no additional cost.
- celticninja 9y agoAs long as you want the exact same contract.
- mehwoot 9y agoOnce code is developed that proves to be bug free, it can be used over and over with no bugs! Doesn't seem to quite work like that in real life.
- rtpg 9y agoquicksort? cat? ls? I mean some of these things have bugs still, but generally when you have something of fixed scope then there are less bugs over time. Especially if you're restricting your scope to something simple
- onion2k 9y agoThose 3 examples that are both relatively simple and more than 40 years old are unlikely to convince people that something new and complex is worth the risk.
- jacquesm 9y agoUnix is anything but simple. And 40 years ago they were actually able to convince people that this new thing was worth the risk and that's why we're having this conversation today. Early adopters are simply early, they will most likely lose their shirt but some of them will end up making you wish that you too were an early adopter. It's a bit like angel investing.
- seanwilson 9y ago> I mean some of these things have bugs still, but generally when you have something of fixed scope then there are less bugs over time. Especially if you're restricting your scope to something simple I'm guessing that smart contracts tend to be relatively short and simple? I mean I would never bet on an entire web/mobile app being bug free because the surface to attack is enormous but e.g. a sorting algorithm or something small in scope can be formally verified to be bug free as long as your specification is accurate.
- buzzybee 9y agoRegarding smart contracts and other inventions of cryptocurrency: I think, most of all, the crypto market is absolutely vicious, in a way that both capital markets and technology companies haven't seen(in the public eye) for many, many years. As of right now there's still some faith left that Ethereum is going to go places because firms keep trying to use the technology on the basis of hype. Unlike with most overhyped and half-baked tech, though, the failures do not get shoved in the back room for some hapless dev or ops team to deal with. This is like if Apple and Google had daily columns on the front page showing every bug or support issue that they experienced in the past 24 hours. And that's been true right from the beginning with Bitcoin: scams, schemes, heists, data loss - the headlines scream blood all the time. We've never had that kind of "mean time to disaster" in technology before. The status quo was that something would fail, but the failure would never quite get back to the individual or company that produced it. They would spin it away, and no careers would be harmed. But the likes of Solidity produces a meat-grinder, a blind destroyer of any who dare enter calling themselves rockstar. I think it's kind of awesome and beautiful, in that sense. It will induce a maturation throughout the economy to adapt to this new pressure. But like adolescence, it can be an ugly work in progress, and I don't expect Ethereum itself to be a survivor at this rate.
- canoebuilder 9y agoThis is like if Apple and Google had daily columns on the front page showing every bug or support issue that they experienced in the past 24 hours. Things is, with Apple and Google there is a rather low ratio of spectacular failures to output of products that are in many cases, rather effing amazing. Whereas with the cryptocurrencies unfortunately, the spectacular failures be they in the form of scams, schemes, or heists, more or less are the story. It's not like these recurrent tales of avarice, greed, or just plain seediness are crowding out the print space for the tales of all the amazing things cryptocurrencies are bringing about, there's room to tell that story to, but where is it. At this point it's getting harder and harder to locate where there is that glint of hidden potential in cryptos in the face of all the malice and fuckups.
- jacquesm 9y ago> This is like if Apple and Google had daily columns on the front page showing every bug or support issue that they experienced in the past 24 hours. It will never happen, but that's actually a great idea.
- mtgx 9y agoAlso start with the platform - is it easier or harder to hack? C++ code has caused millions and millions of unintentional bugs. If Solidity was built more like C++ and unlike something like Rust, then it should have a large part of the blame. The Ethereum developers create Solidity with the goal to make it "super easy" for developers to create dapps. Security wasn't the #1 priority. And now the ecosystem will pay for that design decision. Whether the decision still ends up being a net positive in the long term, it remains to be seen. However, keep in mind that Ethereum as a platform is still in its very early days, with not even 0.01% of the population using it. If $30 million can be stolen just like that, what happens when 10% of the population uses it and there are trillions of dollars invested in it? (assuming it will be the "next internet" or whatever)
- Dolores12 9y agoIf you link it to real world, any legal contract may have flaws. It all depends who got a better lawyer. Same analogy goes here.
- MrMoenty 9y agoIn the real world, contract law is written to not just take contracts at face value, but to also let judges take external factors into account. This includes customs, the parties intentions, whether they are acting in good faith, etc. This is precisely because it was deemed impractical to write contracts that could be 'computationally' interpreted line by line. Seems like the etherium is slowly rediscovering this fact the hard way.
- mbrock 9y agoI'm not sure premise 1 is true. The most useful smart contracts so far are tokens and multisigs, and those are definitely simple enough to do right (if you don't make a major blunder like the Parity team did).
- kcanini 9y ago> if you don't make a major blunder like the Parity team ...Which was founded by the very person who developed the smart contract language Solidity. Which goes to show how difficult it is to write 100% bug-free smart contracts.
- brongondwana 9y agoYour logic doesn't add up. Attackers are only willing spend $90k if there's a 90 percent chance they can exploit a bug in the contract to extract the entire $100k value. Clearly if TWO hackers both spend $90k and only one extracts the value, the other one has lost their entire $90k - unless there's a way to be sure you are the one who will win that, your expected return on the $90k is only $50k if there are two parties trying to hack the contract. The interesting bit is yes - the immediate loss. But a loss of unmarked cash is similarly instant.
- lordnacho 9y ago> But a loss of unmarked cash is similarly instant. True, there isn't a global list of where every bank note is. I've already lost a tiny amount of BTC just by testing a bit with short keys. Can you imagine what the world would be like if every time you left your wallet for 10 seconds, it vanished?
- canoebuilder 9y agoJust in case lordnacho's meaning here isn't clear to anyone. testing a bit with short keys. He's put some bitcoin into wallets with keys/passwords that don't meet very high security standards. I've already lost a tiny amount of BTC He's then lost that bitcoin because there are programs running running around the clock to programatically empty any wallets with passwords that don't meet very high standards of security. Thus, Can you imagine what the world would be like if every time you left your wallet for 10 seconds, it vanished? But this is the "trustless" world you signed up for right?
- thinkmassive 9y agoA more accurate analogy would be that your money vanished from a public locker with combination 0-0-0. Nobody complains about the shortage of address space provided by 256 bits. This guy was experimenting, and being lazy during his experiments, so at the very least he should have known what to expect after the first loss.
- vimota 9y agoI mostly see your point, except your argument seems to be missing the important fact that the payoff for the hackers is not guaranteed. To say someone is willing to spend up to 90% of the potential payoff without a guarantee that they will be paid out is missing a fundamental aspect of the economic equation here. The scenario you gave should be fairly similar to any application outside of Ethereum that deals with money ie. a banking app, except for the fact that, like you mentioned, you can't prosecute someone.
- XorNot 9y agoExcept it's made up numbers, and the the valuation's are actually much lower - the cost to find an exploit is not a linear investment of time and money, but a parallel one. Thousands of potential hackers are targeting you, and only have to succeed once to bankrupt you (the payoff is also non-linear - any given exploit probably works more then once).
- axplusb 9y agoWhen you sign a legal contract, you are also likely to spend a non-negligible fraction of the contract to lawyers so that they review it thoroughly. Think of the legal costs of fund raising or the time spent negotiating and reviewing a contract for a large deal. Some things that are at stake on the lawyers side are their competence (can they actually make sure the contract is "secure" ?), their reputation (track record of competence established over time) and some insurance mechanism (if things go wrong can you get something back from their insurance). All of the above seem to be missing in the case of "smart-contracts".
- thinkloop 9y agoOne way to help mitigate that is by tiering releases. Rather than deploying an app that can potentially accept millions of dollars on day 1, it can be purposely limited to lower amounts and slowly increased over time as the codebase is iterated and time-tested. Apps that have been around for decades with few changes are significantly safer than new apps. Of course this is not perfect (ie heartbleed) but I think this methodology will become standard in ethereum.
- GlennS 9y agoYou might expect the risk to go down over time, as people develop standard contracts with proven reliability.