5 ms·
the image in the article is really appropriated, the Turing complete VM of ethereum is a black hole of bugs, on the Genesis, some really bad engineering decisio
by elmar 9y ago
the image in the article is really appropriated, the Turing complete VM of ethereum is a black hole of bugs, on the Genesis, some really bad engineering decisions were made and probably now is too late to change it.
- nissarup 9y agoWell... As it is Turing complete you could just as well say that it is a black hole of awesome stuff. Which, of course, is true of any Turing complete language.
- tree_of_item 9y agoThe image is an eclipse, not a black hole.
- gus_massa 9y agoIIUC it's not a bug in the VM that is Turing complete and run the "smart contracts". The bug is in the surrounding code that tries to connect to the real network of the other Ethereum users and decides if the connection is trustworthy. So a similar attack could be run against other coins. [The article says that Bitcoin is safer, but the article doesn't explain why. Can someone give more details?]
- EthanHeilman 9y ago>The article says that Bitcoin is safer, but the article doesn't explain why. Can someone give more details? We wrote a paper [0] in 2015 performing eclipse attacks against Bitcoin. You can watch me talk about it here [1]. At the time it required an attacker with 400 IP addresses. Many of our countermeasures were adopted by Bitcoin-core raising the difficulty of the attack even further. In fact at this very moment I am still working on adding some of our countermeasures to Bitcoin-core [2]. In our attack on Ethereum, only 2 IP addreses were required. We discuss this in our paper: >"We present new eclipse attacks showing that, prior to the disclosure of this work in January 2018, Ethereum’s peer-to-peer network was significantly less secure than that of Bitcoin. Our eclipse attackers need only control two machines, each with only a single IP address. [..] By contrast, the best known off-path eclipse attacks on Bitcoin [23] require the attacker to control hundreds of host machines, each with a distinct IP address. For most Internet users, it is far from trivial to obtain hundreds (or thousands) of IP addresses. This is why the Bitcoin eclipse attacker envisioned by [23] was a full-fledged botnet or Internet Service Provider, while the BGP-hijacker Bitcoin eclipse attacker envisioned by [17] needed access to a BGP-speaking core Internet router. By contrast, our attacks can be run by any kid with a machine and a script." -Low-Resource Eclipse Attacks on Ethereum's Peer-to-Peer Network [3] [0]: https://eprint.iacr.org/2015/263.pdf https://eprint.iacr.org/2015/263.pdf [1]: https://www.usenix.org/node/190891 https://www.usenix.org/node/190891 [2]: https://github.com/bitcoin/bitcoin/pull/9037 https://github.com/bitcoin/bitcoin/pull/9037 [3]: http://www.cs.bu.edu/~goldbe/projects/eclipseEth http://www.cs.bu.edu/~goldbe/projects/eclipseEth
- heliumcraft 9y agoOut of curiosity, what "really bad engineering decisions" are those?
- foepys 9y agohttps://news.ycombinator.com/item?id=14810008 https://news.ycombinator.com/item?id=14810008 This applies to "Solidity", the most commonly used language to write smart contracts for Ethereum. The VM itself is not so bad but also simpler.
- heliumcraft 9y agoSolidity != EVM & Ethereum.
- elmar 9y agoMy view, of course, every decision as a trade-off, everything i say is controversial - The main ledger and smart contracts should be separated, everyone smart contract is public, why?? the smart contracts should be run on several specific sidechains. Why if I buy a crypto kittie everyone as to know and store the transaction for all eternity. Wait sharding is coming, yes but will reduce the security guarantees.
- heliumcraft 9y agoThere are different solutions for that in the works, from sharding to plasma, etc.. and those have their own challenges & tradeoffs (namely in terms of security, etc..) However engineering decisions 'on genesis' was over 3-4 years ago and at that time doing a blockchain with smart contracts was already challenge on itself. It's not really fair to take the knowledge and lessons from the present day and claim those in the past without that knowledge made horrible decisions. It's a bit like blaming google for not starting angular 1 with the functionality of angular 4, or saying that John Resig should have created Babel and ES7 features instead of creating jQuery.
- elmar 9y ago