Instruction informatique
Contrairement à un calculateur, dont le rôle se limite à réaliser des opérations de calcul (le plus souvent arithmétiques), un ordinateur assure des opérations de traitement de l'information, c'est-à-dire qu'il exécute successivement des opérations en suivant les directives d'un algorithme. Ce traitement est mené à l'aide d'instructions plus ou moins sophistiquées, et plus ou moins proches du microprocesseur. Par instruction informatique on entend donc décrire une commande unique, représentée par un symbole (numérique ou alpha-numérique, dit mnémoniques), et dont la finalité est prédéfinie : de la plus simple (déplacer l'index du microprocesseur dans la mémoire, additionner deux nombres) à la plus sophistiquée et abstraite (par exemple les instructions de gestion de classes du langage Java). Historiquement cette particularité de l'ordinateur qui conduit des traitements en exécutant successivement des instructions est directement reliée au principe de la machine de Turing créé par Alan Turing pour donner une définition précise au concept d'algorithme. Cette machine est un modèle abstrait d'un appareil mécanique de calcul auquel on aurait rajouté un ruban (de la mémoire) et une tête de lecture (le processeur) susceptible de mener des traitements d'après des symboles interprétés par la table des actions (les instructions). Le concept de machine de Turing original était censé représenter une mécanique imaginaire exécutant une procédure. C'est John von Neumann qui s'est chargé de transformer le travail théorique de Turing en une machine fonctionnelle en définissant une architecture dite de von Neuman.
Contrat intelligent
Les principales limites à ce qui peut être fait avec des contrats intelligents est qu'un programme d'ordinateur ne peut pas facilement et de manière fiable dire ce qu'il se passe dans le monde physique ou valider qui dit la vérité. Par exemple vérifier si un paiement de Bitcoin a été fait est une tâche simple et appropriée pour un programme d'ordinateur, mais dans la plupart des contrats et des situations du monde réel, l'ordinateur n'a pas la possibilité de vérifier que la contrepartie, le produit acheté en l'occurrence, a vraiment été livré ou qu'un pigiste a bien rempli les exigences énoncées par son employeur. L'exécution d'un contrat intelligent n'est efficace que si ses données d'entrée sont valables et il peut être difficile de trouver des entrées suffisantes pour valider ce contrat. Une solution à ce problème pourrait être le recours à des services d'oracles de blockchain ou fournisseurs de services en ligne dont le travail consiste à diffuser des données qui peuvent être utilisées comme données d'entrée pour les contrats intelligents. Une machine à oracle peut par exemple diffuser de nouvelles entrées sur un registre de décès, pour être utilisées par des contrats intelligents dans l'exécution des testaments ou diffuser les résultats d'un match de football, pour être utilisés dans le règlement des paris de jeu.