Ordinateur du programme Apollo de la NASA reprogrammé pour exploiter bitcoin

Unité DSKY de l’ordinateur maître Apollo du Musée national de l’aérospatiale. Shirriff a utilisé une autre unité appartenant à un collectionneur privé.
agrandir / Unité DSKY de l’ordinateur maître Apollo du Musée national de l’aérospatiale. Shirriff a utilisé une autre unité appartenant à un collectionneur privé.

Parmi les nombreuses avancées technologiques du projet Apollo de la NASA visant à débarquer un homme sur la lune, il y avait l'ordinateur principal Apollo, qui volait à bord de la navette spatiale Apollo. À une époque où la plupart des ordinateurs étaient de la taille d'un réfrigérateur, voire de la pièce, l'AGC ne pesait que 70 livres environ. C'était l'un des premiers ordinateurs à utiliser des circuits intégrés.

Une équipe d’historiens informaticiens a mis entre les mains l’un des AGC originaux et l’a mise en place. Un membre de l’équipe, Ken Shirriff, a ensuite décidé si l’ordinateur pouvait être utilisé pour supprimer Bitcoin.

L'exploitation minière est une partie importante du processus de gestion du livre de transactions partagées ou de la blockchain de Bitcoin. Pour obtenir l'autorisation d'ajouter un bloc à la blockchain, vous devez résoudre un problème difficile: recherchez un bloc dont le hachage SHA-256 commence par un minimum de zéros. Le seul moyen connu d’atteindre cet objectif est Brute Force: les mineurs créent un bloc avec un nonce aléatoire et calculent sa valeur de hachage. Si la valeur de hachage ne contient pas suffisamment de zéros, le mineur modifie le nonce et réessaye.

Le nombre de zéros requis est automatiquement ajusté pour que le réseau génère un nouveau bloc toutes les 10 minutes en moyenne. À l'heure actuelle, le hachage d'un bloc nécessite l'acceptation d'au moins 18 zéros (en notation hexadécimale) par le réseau, soit environ 10.22 Essayez de trouver un bloc valide.

Aujourd'hui, la plupart des processus d'extraction de bitcoins sont effectués sur du matériel spécialisé capable de calculer des trillions de hachages par seconde. Le logiciel de Shirriff pour l'ordinateur de guidage Apollo était un peu plus lent: chaque calcul de hachage Bitcoin prend environ 10 secondes.

L’Apollo Guidance Computer n’est pas un très bon mineur de Bitcoin

"L’ordinateur est si lent qu’il est environ un milliard de fois la taille de l’univers pour exploiter avec succès un bloc de bitcoins", écrit Shirriff.

Cela reflète principalement 50 ans de progrès dans le matériel informatique. Grâce à la loi de Moore, les puces modernes ont beaucoup plus de transistors et peuvent fonctionner à des fréquences d'horloge beaucoup plus élevées. Les ASIC d'exploration de données personnalisés peuvent calculer un grand nombre de hachages à la fois.

Mais Shirriff a également dû faire face aux particularités de l'AGC, qui les rendaient impropres à l'exploitation de bitcoins. Par exemple, l'AGC a utilisé un mot de 15 bits par opposition aux ordinateurs modernes qui utilisent généralement des mots de 32 ou 64 bits. L'algorithme SHA-256 effectue de nombreuses opérations 32 bits. Shiriff a donc dû scinder chaque entier 32 bits en trois parties, une partie de 4 bits et deux parties de 14 bits, et les calculer séparément.

L’AGC ne disposait pas non plus des instructions de déplacement et de rotation communes aux ordinateurs modernes – qui sont couramment utilisées dans un calcul SHA-256 – et obligeait Shirriff à écrire des sous-programmes pour effectuer ces opérations.

La mémoire limitée de l'AGC était aussi un handicap:

L'AGC, comme la plupart des ordinateurs des années 1960, utilisait des mémoires à noyau magnétique dans lesquelles chaque bit était stocké dans un minuscule anneau de ferrite magnétisé. Comme la mémoire centrale était assez étendue, l'AGC ne disposait que de 2 Ko de RAM. Le schéma d'adressage de l'AGC complique les choses, car vous ne pouvez accéder à 256 mots que si vous n'avez pas utilisé de mécanisme de facturation peu pratique. Le problème est que l'algorithme SHA-256 utilise huit valeurs de hachage (32 bits), une table de messages de 64 mots et 8 mots de valeur intermédiaire. Seuls ces trois tableaux ont consommé 240 mots AGC, laissant environ 16 mots pour tout le reste (valeurs temporaires, adresses de retour de sous-programmes, compteurs de boucles, pointeurs, etc.). En réutilisant ces 16 mots pour plusieurs, j’ai réussi à tout ranger dans une banque, mais j’ai passé beaucoup de temps à résoudre les problèmes de débogage lorsqu’une variable surchargeait un emplacement mémoire encore utilisé.

Ce n'est pas la première fois que Shirriff implémente l'extraction de bitcoins sur du matériel ancien. Il y a plusieurs années, à partir du milieu des années 1960, il a implémenté l'extraction de bitcoins sur un vieil ordinateur IBM 1401. Cette machine était encore plus lente que l'AGC et prenait 80 secondes pour calculer un seul hash. Il a également programmé une Xerox Alto des années 1970 pour exploiter Bitcoin – il pouvait calculer 1,5 hachage par seconde.

Ordinateur du programme Apollo de la NASA reprogrammé pour exploiter bitcoin
4.9 (98%) 32 votes
 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *