I have an idea for a smart contract but I want to program it on the right blockchain.

And from my understanding the Ethereum blockchain provides Turing Completeness, while the Bitcoin blockchain doesn't.

So my question is what type of program must require a Turing Complete language?

For example many Solidity (the Ethereum programming language) tutorials use a voting smart contract as an example to introduce smart contract programming basics.

But does a voting smart contract really require a Turing Complete language?


This question would be better suited for another forum, but here we go.

Actually, Ethereum is only Turing complete in theory. Gas limits prevent it from being fully Turing complete.

Turing compeleteness means you can, in theory, solve whichever computational problem with the language. Bitcoin for example doesn't have loops (nor recursion) so it can't be Turing complete. A nice brief explanation: https://stackoverflow.com/a/7320/2318492 and wikipedia has the longer version.

A voting contract doesn't require Turing completeness. Basically no program requires Turing completeness. Turing completeness just states that all programs are possible, but not the other way around.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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