7 ms·
I literally spent the past week reading a couple dozen papers on cryptocurrency attacks, in service of a term paper which should hopefully turn into a master's
by jkhdigital 7y ago
I literally spent the past week reading a couple dozen papers on cryptocurrency attacks, in service of a term paper which should hopefully turn into a master's thesis (and possibly more during my PhD campaign). I'm pretty damn pessimistic as a result. Smart contracts basically throw all of your consensus guarantees out the window because they can cause arbitrary exchanges of value in the application layer, which can be used to incentivize miners into all sorts of shenanigans.
All of this research is producing a fascinating array of solutions in search of problems. Fun stuff to think about, but I suspect that the added complexity will only create a system that is just as prone to fraud and abuse as the existing centralized order.
- ddtaylor 7y ago> Smart contracts basically throw all of your consensus guarantees out the window because they can cause arbitrary exchanges of value in the application layer, which can be used to incentivize miners into all sorts of shenanigans. Do you have an example?
- jkhdigital 7y agoSo glad you asked: 1. https://eprint.iacr.org/2019/748.pdf https://eprint.iacr.org/2019/748.pdf 2. https://arxiv.org/pdf/1810.11605.pdf https://arxiv.org/pdf/1810.11605.pdf 3. https://eprint.iacr.org/2019/775.pdf https://eprint.iacr.org/2019/775.pdf 4. https://users.encs.concordia.ca/~clark/papers/2019_wtsc_front.pdf https://users.encs.concordia.ca/~clark/papers/2019_wtsc_fron... 5. http://homepages.cs.ncl.ac.uk/patrick.mccorry/minerbribery.pdf http://homepages.cs.ncl.ac.uk/patrick.mccorry/minerbribery.p... This one isn't an attack per se, it is mostly an exploration of arbitrage bots in decentralized exchanges running on Ethereum smart contracts. However, they point out that miners can trivially capture the value of the arbitrage transactions by front-running, and that this "free money" is like a bonus block subsidy that falls outside of the PoW consensus models: 6. https://arxiv.org/pdf/1904.05234.pdf https://arxiv.org/pdf/1904.05234.pdf This one actually operates through transaction fees only, so it doesn't depend on smart contract functionality. However, it is waaaaay more expensive (for the attacker) than the others: 7. https://www.cs.umd.edu/~jkatz/papers/whale-txs.pdf https://www.cs.umd.edu/~jkatz/papers/whale-txs.pdf
- neiman 7y agoI haven't read all those papers, but basically you could always bribe miners, even without smart contracts, just by giving them money outside the blockchain they mine. One of the ideas of PoW is that if you have enough money to bribe the miners, it's better for you to be a miner yourself. Is this the principle your examples weakens? I may have misinterpreted them.
- jotakami 7y agoBribing outside of the system (i.e. in real life) could be a tremendous coordination and logistical challenge, especially given the amounts needed to make these attacks profitable. Smart contracts can make all of that trivially easy. It’s like... the people most interested in trustless collaboration are people who are untrustworthy. A trustless settlement layer seems fine, but any real human application is going to have an element of trust and doesn’t belong alongside settlement.
- hanniabu 7y agoYou're using a poor implementation of an app as a reason why smart contracts are bad. I hope you realize this is the same thing as saying databases are bad because of the Equifax hack.
- jotakami 7y agoI don’t think you understand. The arbitrage bots aren’t exploiting poorly written contracts, they are capturing free value that users of a dApp have opened up. This free value is available to miners as well, and could be used to subsidize an otherwise-unprofitable double spend attack. But more to the point: allowing smart contracts in a blockchain introduces all of the complexity of trying to make any other piece of software secure. Except... now it’s on a blockchain where the code is open source and mistakes can allow adversaries to steal money, not just data. How is this an improvement?
- semiotagonal 7y ago
- seibelj 7y agoMiners in Proof of Work currencies that find a block can choose what transactions in what order get mined. Through which they can change the order of operations, but they can’t invent transactions or manipulate them directly. I have found the issue of miners and transaction manipulating to be overblown.
- Nursie 7y agoThey could block, and may find themselves required to block transactions from unknown sources if this space becomes more regulated.
- fxtentacle 7y agoPlus there's the problem that smart contracts cannot be easily modified if they are found to be buggy and that one can always reverse engineer them, because they're distributed to everyone. These two together have already caused lots of damage https://hackernoon.com/yes-this-kid-really-just-deleted-150-million-dollar-by-messing-around-with-ethereums-smart-2d6bb6750bb9 https://hackernoon.com/yes-this-kid-really-just-deleted-150-... and they make most real-world uses impossible. It is pretty much impossible to sell anything digital with smart contracts, because due to the source code being accessible to everyone you can always figure out the password, key, or secret URL to whatever is being sold. Without paying for it.
- pfisch 7y ago> It is pretty much impossible to sell anything digital with smart contracts, because due to the source code being accessible to everyone you can always figure out the password, key, or secret URL to whatever is being sold. Without paying for it. Pirating most software/movies/music is pretty easy, but people still sell it. I'm not sure this is as big a problem as you think it is.
- magma17 7y agoThat's what oracles do.
- joosters 7y agoIf you have to trust an oracle, you have essentially thrown away all of the plusses of decentralisation/trustlessness. At that point, the blockchain becomes pointless busywork, useful only for duping mug investors.
- nootropicat 7y agoThe impossibility of a full elimination of trust, for any particular problem, doesn't mean a partial reduction isn't valuable. If you disagree, would you be fine with changing the political and justice system of your country into a fully opaque black box? As in, you still can vote for the policies you want, but it's impossible to know how the government functions, what are the reasons for its decisions, or even who personally forms the government, to the point it could be run by aliens or an ai. Sometimes people are arrested for crimes, but it's impossible to know what's the evidence or even what the crime was, even after sentencing. If you don't consider this equivalent to the currently utilized system in your country, you have to agree that there's value in trust minimization.
- deleted 7y ago[deleted]
- Bombthecat 7y agoEos is a good a example. It's governance is falling apart. How to solve it? Well, I guess it needs more governance and rules :)
- hanniabu 7y agoEOS is not really something to use as an example
- celticninja 7y agoAn example can be good or bad.
- hanniabu 7y agoAn example should be representative.
- Jasper_ 7y ago"It's a spotless track record, if you ignore all the bad examples"
- TheColorYellow 7y agoWhat's happening to EOS? They've got a gagillion dollars in funding. What's the problem they're facing.
- MuncleUscles 7y agoSmart contracts are a bad paradigm for developing applications on the ledger, they're far too permissive, the stakes are too high to want to trust your assets to arbitrary turing-complete code. You can do much better with composable state machines, because everything you do gets the same level of security as the native token transfers https://www.radixdlt.com/post/radix-engine-a-simple-secure-smart-contract-alternative/ https://www.radixdlt.com/post/radix-engine-a-simple-secure-s... Disclaimer: I work at Radix
- yodsanklai 7y ago> the stakes are too high to want to trust your assets to arbitrary turing-complete code. Does it matter whether the language is turing-complete or not? you're trusting a contract, not the PL used to write the contract, and the contract can be very simple (and formally verified, if the PL has a formal semantics).
- ddrdrck_ 7y agoI think the point is that it is easier to formally verify a non-Turing-complete PL
- st1ck 7y agoSmart contract language doesn't have to be Turing complete. In 2018 there was a few related R&D projects, so I hope some of them are more mature by now.
- max_ 7y agoLess famous person here :) I also did a blog post in back in 2018 on whats keeping blockchains from full mainstream adoption. For those interested, its here https://asindu.drileba.capital/2018/05/why-bockchain-is-not-yet-working/ https://asindu.drileba.capital/2018/05/why-bockchain-is-not-...
- qrbLPHiKpiux 7y agoWhether you disagree or not, sometimes the best solution is analog, or paper. Everything scales too easily and massively when you digitize things. Especially money and voting.
- VMG 7y agoPaper money already was a level of abstraction above the physical assets like gold and silver. The problem with paper money is that it can be devalued very easily. You are also not going to have a say about paper money getting banned in the coming years. You'll have a choice between different digital currencies, most of them centralized and some that are not.
- jrochkind1 7y agoGold and silver are already a level of abstraction over the things you are buying with them or selling for them. Gold and silver's value as commodities have little to do with their values as useful for anything practical, although gold happens to have become useful for electronics.
- omarchowdhury 7y agoThe point isn't that there is a level of abstraction, but the kind of abstraction. The abstraction of paper money as opposed to metals comes with the potential for abuse through unrestrained printing.