Abstract
The concept of a Turing machine has been well defined. It would be sufficient to show that Bitcoin uses a dual-stack architecture that acts as a dual counter machine. Such systems have already been demonstrated as being Turing complete. We demonstrate that Bitcoin script is a minimal family of which \( \lambda \lambda \) and R are members. Further, using the compositional product rule and the iteration rule, we demonstrate that Bitcoin scripting is Turing complete with the limitations imposed on any real-world computer. The limitation is that there cannot be an infinite tape. Iterations can be simulated using an “unrolled” loop function with allocation to the “Alt” stack. As the product rule says, if A, B are machines, then A.B is also a machine. The iteration rule shows that if A is a machine, then (A) is also a machine. Further, the minimum power of A under which the observed square of the final configuration is blank. The consequence of such rules is that for every partial recursive function of in variables we can show that it can be evaluated by a machine of the proposed family.
Keywords
- Bitcoin
- Quantum computing
- Encryption
This is a preview of subscription content, access via your institution.
Buying options
Notes
- 1.
Marvin Minsky, Computation: Finite and Infinite Machines, Prentice–Hall, Inc., N.J., 1967. See Chapter 8, Section 8.2 “Unsolvability of the Halting Problem.”
- 2.
Here \( \Omega \) is equivalent to \( \Omega ^{{\prime }} -\Omega _{R} \).
- 3.
- 4.
References
Autebert, J., Berstel, J., Boasson, L.: Context-free languages and push-down automata. In: Rozenberg, G., Salomaa, A. (eds.) Handbook of Formal Languages, vol. 1, pp. 111–174. Springer, Heidelberg (1997)
Bailey, C.: Inter-boundary scheduling of stack operands: a preliminary study. In: Proceedings of Euroforth Conference, pp. 3–11 (2000)
Bohm, C., Jacopini, G.: Nuove tecniche di programmazione semplificanti la sintesi di machine universali di Turing. Rend. Acc. Naz. Lincei, serie VIII, vol. 32 fasc. 6, p. 913-022 (1962)
Davis, M.: Computability and Unsolvability. McGraw-Hill, New York (1958)
Ginsburg, S., Greibach, S., Harrison, M.: Stack automata and compiling. JACM 14(1), 172–201 (1967)
Ginsburg, S., Greibach, S., Harrison, M.: One-way stack automata. JACM 14(2), 389–418 (1967)
Hermes, H.: Aufzahlbarkeit, Entscheidbarket, Berechenbarkeit. Springer, Berlin (1961)
Hopcroft, J., Ullman, J.: Nonerasing stack automata. J. Comput. Syst. Sci. 1(2), 166–186 (1967)
Hopcroft, J., Motwani, R., Ullman, J.: Introduction to Automata Theory, Languages, and Computation, 3rd edn. Addison Wesley, Boston (2006)
Ianov, Yu.I.: On the equivalence and transformation of program schemes. Doklady Akad. Nauk S.S.S.R. 113, 39–42 (1957). [in Russian]
Koopman, P.: A preliminary exploration of optimized stack code generation. J. Forth Appl. Res. 6(3), 241–251 (1994)
Lee, C.Y.: Automata and finite automata. Bell Syst. Tech. J. 39, 1267–1295 (1960)
Robinson, J.: General recursive functions. Proc. Amer. Math. Soc. 1, 703–718 (1950)
Shannon, M., Bailey C.: Global stack allocation: register allocation for stack machines. In: Proceedings of Euroforth Conference. Complang – TU Wien, Cambridge (2006)
Shepherdson, J.C., Sturgis, H.E.: Computability of recursive functions. J. Ass. Comp. Mach. 10, 217–255 (1963)
Sipser, M.: Introduction to the Theory of Computation, preliminary edn., section 2.2: Pushdown Automata, pp. 101–114. PWS Publishing Co., Boston (1997)
Smullyan, R.M.: Theory of Formal Systems. Annals of Mathematics Studies, vol. 47. Princeton University Press, Princeton (1961)
Turing, A.M.: On computable numbers with an application to the Entscheidungs-problem. Proc. Lond. Math. Soc. {2}, 42 (1936-7), pp. 230-265: addendum and corrigendum, 43, pp. 544-556 (1937)
Wang, H.: A variant to Turing’s theory of computing machines. J. ACM 4, 63–92 (1957)
Cockshott, W.P., Michaelson, G.J.: Tangled Tapes: Infinity, Interaction and Turing Machines (2012). https://www.semanticscholar.org/paper/Tangled-Tapes-Infinity-Interaction-and-Turing-Mach-Cockshott-Michaelson/19a6bcb7edccff58b6a2d5ba6a451b9ad4956312. Accessed 13 Mar 2019
The following websites provide background information
Bitcoin scripting
Bitcoin Wiki Webpage. https://en.Bitcoin.it/wiki/Script. Accessed 13 Mar 2019
Davide De Rosa Webpage. https://davidederosa.com/basic-blockchain-programming/bitcoin-script-language-part-one/. Accessed 13 Mar 2019
Fortran programming
Fortran Wiki Webpage. http://fortranwiki.org/fortran/show/HomePage. Accessed 13 Mar 2019
GNU Webpage. https://gcc.gnu.org/fortran/. Accessed 13 Mar 2019
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Wright, C.S. (2020). A Proof of Turing Completeness in Bitcoin Script. In: Bi, Y., Bhatia, R., Kapoor, S. (eds) Intelligent Systems and Applications. IntelliSys 2019. Advances in Intelligent Systems and Computing, vol 1037. Springer, Cham. https://doi.org/10.1007/978-3-030-29516-5_23
Download citation
DOI: https://doi.org/10.1007/978-3-030-29516-5_23
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-29515-8
Online ISBN: 978-3-030-29516-5
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)