Academic analysis of Blockstack's claims that Ethereum won't work?

Muneeb Ali, a co-founder of Blockstack and PhD in Distributed Systems, along with others in the Blockstack community are vocally skeptical about remote execution of untrusted code on Ethereum. See the Twitter thread between Muneeb and Vitalik here, below the video: https://twitter.com/ponli137/status/870637598867415040

As far as I can tell, Muneeb's concerns would lead to a conclusion that Ethereum's vision of "worldcomputer" is simply impossible.

Can anyone academically address Muneeb's criticisms, broken out here?

1/ https://twitter.com/muneeb/status/870703688590925824

2/ https://twitter.com/muneeb/status/870703986688405504

Posted Jun 2, 2017, 6:30 PM UTC · edited

012
nickjohnsonEthereum - Nick Johnson•

If that's impossible, then so is Javascript in browsers (or any sort of virtualisation, like docker or VPSes). Not to mention that turing completeness is a red herring here, and has nothing to do with whether the VM can be broken out of or not.

7
muneebali•

Hi Nick, first of all, thanks for your comments on Twitter and spending time discussing this. I actually bought ether way back in the pre-sale and been following how you guys have built a great community of developers. I appreciate what the community is trying to do and I'm personally sold on the vision of decentralization.

We're just discussing technical concepts here for the benefit of everyone.

Now with that context in mind, it's great that you brought up JavaScript in browsers. It's a good analogy. JavaScript in browsers works when the code is from "trusted sources" i.e., websites you feel comfortable visiting and it doesn't work when the code is from "untrusted sources" i.e., malicious websites that want to do bad things to your machine and/or browser. There is no browser that I'm aware of that declares/thinks that no JavaScript code can crash the browser. This has literally happened many many times and then browsers roll out fixes.

On Ethereum, the situation is different because users don't have a choice between executing code only from "trusted sources". They must, by definition, execute all code (including potentially malicious one). And just like browsers can't give any guarantee that arbitrary JavaScript code will not crash the browser, similarly, Ethereum cannot give a guarantee that arbitrary "smart contracts" will not crash the EVM and, by definition, crash all nodes on the network (since all nodes execute the same code in the same EVM environment). Does that make sense?

*EDIT: bought ether

5
nickjohnsonEthereum - Nick Johnson•

Now with that context in mind, it's great that you brought up JavaScript in browsers. It's a good analogy. JavaScript in browsers works when the code is from "trusted sources" i.e., websites you feel comfortable visiting and it doesn't work when the code is from "untrusted sources" i.e., malicious websites that want to do bad things to your machine and/or browser. There is no browser that I'm aware of that declares/thinks that no JavaScript code can crash the browser. This has literally happened many many times and then browsers roll out fixes.

But that's not the JavaScript trust model. The trust model is that you should be able to execute JS from untrusted sources. Without that, the whole premise of the web breaks down.

On occasion in the past that hasn't been the case (though actually, not that often; usually it's plugins instead), and in those cases the bugs have been fixed.

And just like browsers can't give any guarantee that arbitrary JavaScript code will not crash the browser, similarly, Ethereum cannot give a guarantee that arbitrary "smart contracts" will not crash the EVM and, by definition, crash all nodes on the network (since all nodes execute the same code in the same EVM environment).

No code is bug free, but the EVM, just like the JS VM, is designed to operate correctly when executing untrusted code.

Moreover, none of this has anything to do with turing completeness -it's not necessary for a VM to be turing complete to be exploitable, and it's unclear to me how a VM that permits easier static analysis would be used to prevent 'bad' code from running.

3
FaceDeer•

Not sure an academic response is necessary for the claim that Ethereum is impossible in the general case, given that it exists. It's right there.

Specific objections to particular details of Ethereum, sure, that can be more meaningfully debated. Those tweets don't contain much though, just the usual "Turing complete => huge attack surface => someone's going to break it somehow."

I should note that technically Ethereum is not Turing-complete. It has strict limits on how long execution can run and how much data can be stored.

3
nmassart•

And even if it was real Turing complete without any limits, so is all the computing world and today even if sometimes some computer is hacked, it works. It seems that this man should never do anything even staying in his bed could make him die, that's where most people die. Saying something won't work because it probably has some flaws never made technology progress IMO. For my own purposes I simply encapsulate nodes in restricted docker containers. You can also use VM to add an abstraction level.

2
chaindata•

hahaha...first thing that came to mind reading this was "what's this fucker selling"....

and lo and behold scrolling down his twitter drivel:

Announced a few more details on the Blockstack token. Sign up on our mailing list at http://blockstack.org/join to stay updated #TokenSummit

Latest nickel diming marketing trick to get your name out there: bash Ethereum.

Good luck with your little coin Muneeb !

3
Nogo10•

Isn't that how Ethereum started, with a ICO? Let's keep an open mind and be civil.. we are not the new maximallists

1
aribolab•

To be fair, Ethereum Foundation material never compared Ethereum to bitcoin in the pre-sale or after. Never was critical with Bitcoin 'limitations', and least in connection with the pre-sale or directly to the new technology being developed.

1
jpritikin•

Yawn.

2
Nogo10•

mmm any one here answered the OPs question? technically not with snarky remarks

2
MasterUm•

This is hypocritical and boring.

Here's how this guy could make money if he is correct:

a) Find a bug in Ethereum - break out of EVM, cause computation complexity disproportionate to gas, etc etc.

b) Short ETH.

c) Launch the attack.

d) Profit.

1
PePeLeNeW•

I think he's between a and b.

Step a.a is build the platform everyone will move to.

1