<p>It is much easier to formally verify the behavior space of Bitcoin script vs. Solidity. </p>

<p>For example, the DAO project suffered from reentrancy vulnerabilities, given that one could not predict the behavior of anonymous smart contracts when they were called/sent funds to (fallback function, now deprecated). </p>

<p>There are formal verification efforts for Solidity, but this increases the design difficulty tremendously, and one must ask whether it is worth the turing-completeness.</p>

CC BY-SA 4.0
2018-12-04T12:13:32.113Z
2018-12-04T12:13:32.113Z
James C.
<p>I have read many places that the decision for Ethereum to use a Turing-complete programming language sparked a lot of concerns over security. From my understanding, not using a Turing-complete programming language leads to a more secure network. Why is this the case?</p>

CC BY-SA 4.0
2018-12-04T14:29:30.273Z
Related: [The Bitcoin scripting system is purposefully not Turing-complete - why?](https://bitcoin.stackexchange.com/questions/25427/the-bitcoin-scripting-system-is-purposefully-not-turing-complete-why)
Mason Ticehurst
<security><ethereum><turing-completeness>
How does using a Turing-complete programming language compromise the security of the network?
AdaptiveAnalysis
# How does using a Turing-complete programming language compromise the security of the network?

(Asked by: username_0 on 2018-12-04)

I have read many places that the decision for Ethereum to use a Turing-complete programming language sparked a lot of concerns over security. From my understanding, not using a Turing-complete programming language leads to a more secure network. Why is this the case?

**Tags:** security, ethereum, turing-completeness

> **Comments:**
> **username_1**: Related: [The Bitcoin scripting system is purposefully not Turing-complete - why?](https://bitcoin.stackexchange.com/questions/25427/the-bitcoin-scripting-system-is-purposefully-not-turing-complete-why)  

---

## 1 answers

### Answer by username_2 on 2018-12-04. Score: 8

It is much easier to formally verify the behavior space of Bitcoin script vs. Solidity.

For example, the DAO project suffered from reentrancy vulnerabilities, given that one could not predict the behavior of anonymous smart contracts when they were called/sent funds to (fallback function, now deprecated).

There are formal verification efforts for Solidity, but this increases the design difficulty tremendously, and one must ask whether it is worth the turing-completeness.


---

