Un sistema Turing completo es increíblemente poderoso, capaz de realizar cualquier cálculo que una máquina de Turing pueda realizar. ¿Sabías que esto significa que puede utilizarse para resolver prácticamente cualquier problema que un ordenador pueda resolver? La completitud de Turing es una medida de la capacidad expresiva de un sistema, lo que significa que su potencial es ilimitado.
El concepto de Turing Completo fue introducido por primera vez por el renombrado científico británico, Alan Turing, en su influyente artículo de 1936, «On Computable Numbers, with an Application to the Entscheidungsproblem«. En él, Turing demostró que cualquier ordenador que pueda describirse en su modelo teórico, la máquina de Turing, también puede describirse en cualquier otro sistema de Turing completo.
¿Sabías que esto implica que un ordenador puede, en teoría, crear y ejecutar otro ordenador dentro de sí mismo para llevar a cabo una amplia variedad de tareas? ¡Es sorprendente! Por supuesto, esto solo es posible si el ordenador cuenta con la estructura y programación necesaria para ello.
La idea revolucionaria de Turing nos ha llevado un paso más cerca de la computación e informática que conocemos hoy en día.
Empieza en Bit2Me y salta al mundo de las criptomonedas con ventaja. Regístrate fácilmente y consigue 15€ GRATIS en tu primera compra con este enlace. ¡No esperes más para unirte a la revolución cripto! Registrarme
Ejemplos de sistemas Turing Completo
Ahora bien, ¿dónde podemos ver estos sistemas Turing completo? Pues bien, algunos de los sistemas Turing completos más conocidos son:
- Lenguajes de programación: Python, Java, C/C++, Ruby. Todos estos lenguajes son Turing completo, ya que gracias a ellos somos capaces de resolver casi cualquier problemas que podamos imaginar.
- Calculadoras: Calculadoras científicas, calculadoras gráficas, etc.
- Máquinas abstractas: La máquina virtual Java (JVM), el framework .NET, etc.
- Organismos vivos: El cerebro humano es Turing completo, al igual que algunos otros animales.
La completitud de Turing es un concepto importante en informática, ya que nos permite comparar la capacidad expresiva de distintos sistemas. También es importante en el campo de la inteligencia artificial, ya que es necesaria para cualquier sistema que sea capaz de inteligencia de propósito general.
Pero, ¿qué papel juega en el mundo de las criptomonedas?
Turing Completo en las criptomonedas
En el contexto de las criptomonedas y las cadenas de bloques, la completitud de Turing es importante porque permite crear contratos inteligentes más complejos y potentes. Estos, pueden utilizarse para automatizar una amplia variedad de tareas, como transacciones financieras, propiedad de bienes y votaciones.
Quizás el ejemplo más claro de cadenas de bloques Turing completas es el de Ethereum. Gracias al desarrollo de su Ethereum Virtual Machine y el lenguaje de programación Solidity, Ethereum es capaz de ser una cadena de bloques Turing-completa. Esto es lo que permite la creación de contratos inteligentes que pueden utilizarse para resolver practicamente cualquier problema dentro de Ethereum.
Por ejemplo, los oráculos como ChainLink construyen buena parte de su lógica de trabajo usando las capacidades Turing-completo de Solidity y EVM. Sin estas capacidades, sería muchisimo más complejo construir plataformas como estas.
Con ello, queda claro que la capacidad Turing-completa hace más versátiles a las blockchains que los implementan, en comparación con aquellas blockchain no Turing-completas. Un caso de este ultimo grupo es Bitcoin, el cual fue diseñado para ser simple y sin esta capacidad. Es decir, podemos programar transacciones dentro de Bitcoin, pero sus capacidades son muchísmo más limitadas que las que vemos en Ethereum u otras cadenas Turing completo.
Retos asociados al uso de Turing completo en las criptomonedas
Ahora bien te preguntarás: ¿Por que no todas las blockchain son Turing completo? Pues bien, esto está muy unido al inmenso reto que supone crear blockchain y criptomonedas seguras usando este esquema.
El primero de estos retos es que las cadenas con capacidad Turing completo suelen ser más vulnerables a los ataques debido a la complejidad intrínseca de su implementación. La realidad de esto puede verse muy claramente en la cantidad de hackeos que se han realizado en las distintas dApps y los contratos inteligentes que permiten su funcionamiento en Ethereum.
Otro gran reto en este sentido es la dificultad de entender y depurar este tipo de tecnologías. Esto se debe a que dependen en su mayoría de máquinas virtuales (como la EVM de Ethereum) que son las encargadas de brindar esta capacidad, son implementaciones muy complejas y a las que pocas personas realmente pueden ayudar a mejorar y depurar. Esto significa que innovar sobre ellas es más complejo y propenso a los errores, en comparación por ejemplo, con el sistema usado en Bitcoin.
Finalmente, otro gran reto al que se enfrentan las cadenas que implementan Turing completo es la necesidad de más recursos de red, poder de cómputo y almacenamiento que sus contrapartes No Turing completo.
De nuevo, el mejor ejemplo lo vemos en Ethereum y su reflejo en Bitcoin. La cadena de Ethereum actualmente ocupa más de 1 TB de datos de almacenamiento y su red moviliza mucho más datos en bruto. En contraparte, Bitcoin con más años de vida (14, frente a 8 de Ethereum) apenas ocupa 600 GB y su red moviliza mucho menos datos en bruto que la red Ethereum.
Blockchains con capacidad Turing completo
Algunas de las cadenas de bloques Turing-completas más populares son:
- Ethereum
- Cardano
- EOS
- Tron
- Tezos
Empieza en Bit2Me y salta al mundo de las criptomonedas con ventaja. Regístrate fácilmente y consigue 15€ GRATIS en tu primera compra con este enlace. ¡No esperes más para unirte a la revolución cripto! Registrarme