Turing-Complete

Turing completo

Difficoltà: avanzato

Argomento: tecnologia


DEFINIZIONE

Turing Complete, in italiano Turing equivalente o Turing completo, si riferisce a una macchina o a un sistema informatico che, in teoria, con tempo e memoria sufficienti insieme alle istruzioni necessarie, può risolvere qualsiasi problema computazionale, non importa quanto complesso.

Nel caso delle criptovalute è stato inizialmente utilizzato per distinguere le capacità degli script bitcoin, che generalmente non sono considerati turing complete, rispetto agli smart contract Ethereum che sono considerati turing complete.

L'idea che Bitcoin non sia Turing complete non è universalmente accettata, ed esistono delle dimostrazioni empiriche che una qualsiasi macchina di Turing possa essere simulata su bitcoin. Per alcuni, il fatto che Bitcoin non sia Turing complete è considerata una qualità positiva, poiché ne garantirebbe stabilità e minore possibilità che negli script possano essere introdotti dei bug.

Il problema principale della Turing-completness è che un computer non è in grado di distinguere tra un programma che è computabile e uno che non lo è fino a che non procede con l’esecuzione; se uno script non computabile venisse inserito dentro una transazione Bitcoin, tutti i nodi che proverebbero a validarla rimarrebbero bloccati, paralizzando di fatto il network. Per questo motivo su Bitcoin si è sempre preferito evitare la Turing-completness in modo da prevenire loop e script di cui non è possibile completare l’esecuzione.

Il principale problema legato alla completezza di Turing è che un computer non può distinguere tra un programma computabile e uno non computabile fino a quando non esegue effettivamente il processo. Se uno script non computabile fosse inserito all'interno di una transazione Bitcoin, tutti i nodi che cercano di convalidarla rimarrebbero bloccati, causando di fatto il blocco dell'intera rete. Per questa ragione, su Bitcoin è sempre stato preferibile evitare la completezza di Turing al fine di prevenire cicli e script che non possono essere eseguiti completamente.


aggiornato il 2023-11-17