Post
Topic
Board Speculation
Re: Wall Observer BTC/USD - Bitcoin price movement tracking & discussion
by
polyclef
on 27/02/2014, 12:55:49 UTC
Turing completeness is a horrible idea for scripting in a cryptocurrency. Just look at the past couple of decades of vulnerabilities in java, javascript, flash, etc, etc.  Turing complete money will drain your wallet on it's own.

The only thing I can see stopping it is another cryptocurrency which accomplishes everything that Bitcoin does and more, only with a codebase so different that Bitcoin can not adopt these added desirable features.

May I ask how important you feel Turing completeness is in the scripting language?

I'm sorry, I do not have the technical knowledge to answer this question. Give me a few days and I may be able to give you an answer.

+1

These are good points too.  Turing completeness in a scripting language means that "anything computable, can be computed by running the appropriate script."  So there is an infinite surface of potential problems that would slowly show themselves, I think.  The Java exploits are a good analogy. 

just think about something like 
{ while true; }
in the scripting language. I send you such a transaction. Will your machine lock up in an endless loop?

No comment on weather this is a good idea or not, but theres a simple solution to this particular problem: fees.

Only execute the first x operations, where x=fee*const. Sure, you could make a machine freeze up for a half a second, but you'd be paying out the ass to do it.

Agreed, fee/clock cycle fixes this pretty well, but that's not the real danger.  The real danger is when the code can escape the boundaries defined for it as we see in exploit code.  It's been over 25 years since the Morris worm (http://en.wikipedia.org/wiki/Morris_worm) and we still see ever more elaborate mechanisms for executing arbitrary code.  It's easy to avoid if the language is limited.  As soon as you get to Turing completeness, there's always another way to construct things.