Turing integridad de Bitcoin Script

Para mí, los scripts son una de las características más interesantes de Bitcoin. Brindan posibilidades que no tienen equivalente en las monedas clásicas. Sin embargo, la wiki afirma

No es Turing completo a propósito, sin bucles.

  1. ¿Cuál es el fundamento de esta decisión?
  2. ¿Existen propuestas de contratos útiles que solo serían posibles en una implementación completa del script de Turing?
  3. ¿Existen criptomonedas alternativas con scripts completos de Turing? Si es así, ¿cómo resuelven los problemas del 1?

Respuestas (1)

Si los scripts fueran Turing-completos, podrías construir un script bastante corto que tomara mucho tiempo en ejecutarse (al estilo de Busy Beaver ) o que contuviera un bucle infinito. Esto tendería a resultar en una denegación de servicio contra todos en la red, cuando intentaran verificar la transacción.

Y no habría una forma general de saber si un script se repetiría infinitamente o terminaría eventualmente: ese es el problema de la detención .

Se podría tratar de evitar esto incluyendo algún tipo de límite sobre cuánto tiempo pasará un cliente verificando una transacción, pero tendría que hacerse con mucho cuidado para que sea coherente entre todos los clientes: si algunos lo aceptan y otros no , la cadena de bloques se bifurcará.

Parece más sencillo evitar la situación todos juntos.

Si hubiera un límite, sería mejor tener un límite en la cantidad de instrucciones que se podrían ejecutar en lugar del tiempo empleado, para garantizar la coherencia.
@RentFree: Lo que esencialmente se reduce a lo que tenemos ahora. Si el guión que desea tiene un bucle que se garantiza que terminará dentro de un cierto número de instrucciones, puede desenrollar el bucle en un guión de línea recta con un número fijo de instrucciones. En realidad, tal como está, la cantidad de instrucciones que ejecuta, la cantidad de bytes en el script y la tarifa que paga, son aproximadamente proporcionales.