11

I understand that Turing Complete means that Ethereum is robust and able to implement any idea that can be codified including best features from other networks.

Aside from blockchain bloat based on the amount of data that may need to eventually stored on Ethereum what are the possible drawbacks?

Is there a danger that Bitcoin could introduce a Turing complete sidechain while it still enjoys greater economies of scale than Ethereum?

1
  • You are asking two questions: drawbacks of turing completenes and losing competitive advantage of turing completenes to bitcoin. I suggest to split the questions. Jun 1, 2016 at 6:53

5 Answers 5

10

Turing completeness is arguably a matter of design choice. The Bitcoin blockchain was designed to target a very specific use-case (crypto-currency) where Turing completeness is unnecessary. In comparison, the Ethereum blockchain was designed from ground-up to serve as a general platform for a range of use-cases, and for this Turing completeness (or quasi-completeness, to be more accuracte) is valuable in order to allow for generality.

There is certainly a price to pay for this generality (though, depending on your perspective, these may be classed as characteristics rather than actual drawbacks):

  • complexity: the Ethereum blockchain is inevitably more complex (as detailed here)
  • overheads incurred by participating nodes: Ethereum nodes need to store (arbitrary length) code + associated state, and perform arbitrary computations. Ethereum regulates this through the concept of "gas" used as a reward for the nodes incurring this overhead.

As outlined here, the Bitcoin blockchain already supports a non Turing complete scripting language. Past behaviour suggests that it is unlikely that the Bitcoin blockchain, and the associated scripting language, would evolve to an Ethereum style capability any time soon. The blockchain capabilities required for such a change are so fundamental that this would be outside the realms of a simple side-chain. At that point you would effectively have a new blockchain that would diverge from the Bitcoin blockchain and therefore not inherit its economies of scale.

2

A "drawback" is that the metering scheme for Ethereum transactions needs to be more complicated, , instead of simply bytes as with Bitcoin. Computation needs to be metered, in addition to the number of bytes in the transaction. For example, a small transaction as measured in bytes, could still have an infinite loop, which would not be a problem in Bitcoin as it can't do loops, but infinite computation must be prevented in Ethereum.

Statefulness in Ethereum is an even larger advantage for developers than "Turing completeness" (which is easier to keep) as Vitalik Buterin explained:

... some Bitcoin people continue to emphasize "Turing-completeness" when I have said multiple times that it's statefulness that is the point. Once you have Ethereum's philosophical model (and imo, our approach of viewing scripts as "doing stuff" rather than being "predicates" is massively superior and vastly easier to understand for developers), then Turing-completeness actually becomes harder not to have than to have - it's actually tricky to figure out what restrictions to put on recursive contract calling to eliminate the potential for loops, and some measure of gas is required in any case for the same reason why a block size limit is required in bitcoin.


The main effort towards a Turing complete sidechain of Bitcoin, appears to be Rootstock. Assuming "Rootstock is mostly EthereumJ glued to Bitcoin via a federated peg system", being based on the Java implementation of Ethereum suggests that Rootstock will be complimentary and compatible with Ethereum.

1

There's an interesting discussion on non-Turing-complete vs. Turing-complete from a couple of years ago, here. (It's basically Bitcoin vs. Ethereum, from the early days of Ethereum.)

Maybe one for the strictly hypothetical downsides of Turing-completeness, but of particular note is this entry, which details, among other potential issues with a TC blockchain:

  • (E)VM escapes, resulting in...
  • ...Grey-goo scenarios.

The grey-goo is discussed further in this related thread.

1

On of the biggest problems that I can see with a Turing complete language for Ethereum is common to that of all Turing complete systems when it comes to the subject of Program Verification. For example, it will be impossible to write an algorithm for an arbitrary Ethereum program to ensure that it has one of many very interesting behaviors (which might be desirable in a cryptocurrency). One such famous example is the Halting Problem.

This, of course, only really matters once these Ethereum programs get sufficiently complex, since you can write such a verifier if you put enough restrictions on said language. As such, I suspect that there will be a market for highly restrictive languages and compilers that compile to a subset of Ethereum code. This will allow contracts/organizations to require the code of their contracts be expressed within the confines of these compilers to allow their program verification techniques to work. In other words, they can prove their contracts "Correct".

-2

Yes, obviously: it seems noone can write secure software (the NASA is the possible exception strengthening the rule) so Ethereum Contracts Are Going To Be Candy For Hackers. Check this comment as well. Tying real code to real money without human any supervision and various counterchecks is a recipe for catastrophe.

Also, it's just another cryptocurrency. They are not real. There are people hyping this through the roof, a curious motley of skyglazing hippies, Ayn Rand fanatics (are you running yet?), then the investors, some who became rich and famous because twenty years ago he wrote a browser and so now his words are treated as gold but in reality he is just another of those guys playing this Ponzi scheme -- but not by their own money, let me tell you that. When bitcoin, ethereum, whatever iteration of treating Monopoly money as real just because it's bits in a computer and not bits of paper hits reality for whatever reason who will hold the bag, what do you think?

4
  • Your rant, while entertaining, doesn't really answer the original question. May 28, 2016 at 9:49
  • So, by your logic, banks are also bad because they store how much money you have in databases?
    – ave
    May 28, 2016 at 13:55
  • If you think cryptocurrency is not real? Why do you think fiat money is any more real? We've been using monopoly money for trades for around 1000 years.
    – Lie Ryan
    May 28, 2016 at 14:21
  • Even if you contest the second paragraph, I answered the question: Turing completeness brings security hell. As for fiat money vs cryptocurrency fiat money is backed by a nation state's willingness to keep its value while cryptocurrency is backed by ... what? Hot air?
    – chx
    May 29, 2016 at 0:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.