Il computer delle missioni lunari Apollo (non) mina bitcoin

Il computer delle missioni lunari Apollo (non) mina bitcoin

Un originale Apollo Guidance Computer è stato riprogrammato per minare bitcoin: ci vorrebbe molto più dell'età dell'universo per poter individuare un blocco

di pubblicata il , alle 18:21 nel canale Web
 

L'approdo dell'uomo sulla Luna, il 20 luglio del 1969 - ricorre il cinquantenario la prossima settimana - ha rappresentato l'apice di numerosissime rivoluzioni tecnologiche che la NASA è riuscita a compiere nell'arco del progetto Apollo avviato all'inizio degli anni '60.

Se osserviamo tutto ciò con le "nostre" lenti di nerd smanettoni, una rivoluzione in particolare ci colpisce: la realizzazione dell'Apollo Guidance Computer. Si trattava di uno dei primi computer basati su circuiti integrati e, in un'epoca in cui i computer avevano dimensioni non inferiori a quelle di un armadio, l'AGC pesava "appena" 32Kg, ed è stato integrato nel modulo di Comando Apollo e nel Modulo Lunare.

L'Apollo Guidance Computer è stato di recente protagonista di un curioso esperimento: un gruppo di "archeologi informatici" è riuscito infatti a mettere le mani su uno degli originali AGC, renderlo operativo e metterlo alla prova sul mining di bitcoin. Si è occupato dell'esperimento Ken Shirrif, non nuovo a queste imprese. In passato ha provato ad effettuare il mining di bitcoin su un sistema IBM 1401 della metà degli anni '60 (una macchina ancor meno performante dell'AGC) e su uno Xerox Alto del 1970.

Il mining, lo ricordiamo brevemente, è un processo fondamentale per il mantenimento della blockchain (il registro distribuito delle transazioni) di Bitcoin. Perché un miner possa aggiudicarsi il diritto di aggiungere un blocco alla blockchain, deve risolvere un problema matematico, e cioè individuare un blocco il cui Hash-256 inizia con un certo numero di zeri. Ciò avviene per "forza bruta": i miner creano un blocco con una nonce casuale e calcolano il suo valore di hash. Se il valore di hash non rispetta i requisiti, il miner cambia la nonce e riprova. Il numero richiesto di 0 è regolato automaticamente secondo le regole che governano la blockchain di Bitcoin, così che il network sia capace di produrre mediamente un blocco ogni 10 minuti. Attualmente un hash è considerato valido con circa 18 zeri iniziali, il che significa che sono necessari circa 1022 tentativi per poter trovare un blocco valido.

Oggi il mining di bitcoin viene compiuto sfruttando hardware specializzato capace di elaborare migliaia di miliardi di hash al secondo. Il software che Shirrif è riuscito a creare a tale scopo, è un poco più lento: per ogni calcolo di hash sono necessari 10 secondi circa. Cosa vuol dire, nel concreto? Lo spiega Shirrif: "Il computer è così lento che ci vorrebbe un miliardo di volte l'età dell'universo prima di riuscire a minare un blocco". A titolo di confronto IBM 1401 e Xerox Alto precedentemente citati sono stati capaci di elaborare, rispettivamente, un hash ogni 80 secondi e un hash e mezzo al secondo.

Le peculiarità dell'Apollo Guidance Computer hanno però causato qualche grattacapo a Shirrif. Anziutto l'AGC usa una word di 15-bit, laddove i moderni computer usano word da 32-bit o da 64-bit. L'algoritmo SHA-256 compie svariate operazioni a 32-bit, e quindi Shirrif ha dovuto suddividere ogni intero a 32-bit in tre parti: due da 14 bit e una da 4 bit, e compiere i calcoli su ciascuna di essi in maniera separata. L'AGC non possiede, inoltre, delle istruzioni shift e rotate, oggi scontate sui computer moderni e sfruttate in maniera massiccia per i calcoli SHA-256, obbligando quindi Shirrif a scrivere una serie di subroutine che supplissero a queste operazioni.

Un altro problema che Shirrif ha dovuto risolvere è stato quello della gestione della memoria, che riportiamo qui per gli appassionati:

"L'AGC, come molti computer del 1960, usava memorie a nucleo magnetico che conservano ciascun bit in un piccolo anello di ferrite magnetizzato. Dato che la memoria a nucleo era particolarmente ingombrante, AGC aveva appena 4K bytes (circa 2k word) di RAM. Lo schema di indirizzamento dell'AGC rende le cose più complicate dal momento che permette di accedere solo a 256 word a meno di usare un dispendioso meccanismo di bank-switching. Il problema è che l'algoritmo SHA-256 fa uso di otto valori hash (32-bit), una message table di 64 word e 8 word di valori intermedi. Questi tre array da soli usano 240 word di AGC, lasciando appena 16 word per tutto il resto (valori temporanei, indirzzi di ritorno delle subroutine, contatori di loop, puntatori, eccetera). Sono riuscito a far entrare tutto in un banco riusando queste 16 parole per compiti differenti, ma ho speso un mucchio di tempo a debuggare problemi quando una variabile andava a prendere un indirizzo ancora in uso"

Cinquant'anni, dicevamo all'inizio: questo è l'incredibile balzo avanti nel progresso tecnologico compiuto dall'umanità, almeno in termini di potenze computazionali. Gordon Moore, con la sua legge, aveva tracciato il percorso. Apollo Guidance Computer non sarà capace di minare bitcoin, ma intanto ha portato l'uomo "to the moon", per usare un gergo caro agli appassionati delle criptovalute.

15 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
Saturn11 Luglio 2019, 18:23 #1
Originariamente inviato da: Redazione di Hardware Upgrade
Link alla notizia: https://www.hwupgrade.it/news/web/i...coin_83354.html

Un originale Apollo Guidance Computer è stato riprogrammato per minare bitcoin: ci vorrebbe molto più dell'età dell'universo per poter individuare un blocco

Click sul link per visualizzare la notizia.


Che fretta c'è ?!? Basta solo aspettare...

Carino comunque l'articolo !
s-y11 Luglio 2019, 19:10 #2
ho il canale yt tra i preferiti, e per i mei gusti è tra i migliori, andando realmente hardcore nei restauri (sempre funzionali e quasi per niente estetici)

per rimettere in sesto l'agc entro il cinquantesimo anniversario stanno facendo dei numeri mica male

ps: curious marc
silviop11 Luglio 2019, 19:34 #3

L'AGC...

e' si touring completo, ma rimane comunque un sistema special purpose, anche all'eopca si potevano accelerare in hardware certi calcoli.
elbolo11 Luglio 2019, 19:37 #4
Originariamente inviato da: s-y
ho il canale yt tra i preferiti, e per i mei gusti è tra i migliori, andando realmente hardcore nei restauri (sempre funzionali e quasi per niente estetici)

per rimettere in sesto l'agc entro il cinquantesimo anniversario stanno facendo dei numeri mica male

ps: curious marc


Bellissima la serie, vera droga per nerd

https://www.youtube.com/watch?v=2KSahAoOLdU&t=88s
Bradiper11 Luglio 2019, 20:03 #5
Fa specie vedere il progresso tecnologico in questi anni, già se penso al mio primo PC (286)..senza contare il vic 20,poi la 3dfx... Ad oggi..dire passi da giganti è riduttivo.
s-y11 Luglio 2019, 20:18 #6
Originariamente inviato da: elbolo
Bellissima la serie, vera droga per nerd

https://www.youtube.com/watch?v=2KSahAoOLdU&t=88s


in particolare mi ha recentemente divertito come hanno riparato uno dei moduli di ram (b11 mi pare) nonostante la difficoltà che aggiungeva il fatto che fosse tutto resinato...

btw realmente una goduria vedere in dettaglio come era progettato il sistema nonostante fosse di fatto un prototipo

Originariamente inviato da: Bradiper
Fa specie vedere il progresso tecnologico in questi anni, già se penso al mio primo PC (286)..senza contare il vic 20,poi la 3dfx... Ad oggi..dire passi da giganti è riduttivo.


si, anche se da quando il traino è diventato solo il denaro (non è sempre stato solo così si è totalmete persa la 'magia' di sentirsi sul 'bordo tagliente' del nuovo

btw non a caso il 'retro' sta riscuotendo sempre più successo...
Mark011 Luglio 2019, 21:46 #7
Attualmente un hash è considerato valido con circa 18 zeri iniziali, il che significa che sono necessari circa 1022 tentativi per poter trovare un blocco valido.


1022? Caspita, è sbagliato solo di svariati ordini di grandezza!
Non sarà stato 10^22, magari? Attenti con il cut&paste, gli stili tipografici mancati giocano brutti scherzi.
elbolo11 Luglio 2019, 21:47 #8
Originariamente inviato da: s-y
in particolare mi ha recentemente divertito come hanno riparato uno dei moduli di ram (b11 mi pare) nonostante la difficoltà che aggiungeva il fatto che fosse tutto resinato...


In realtà hanno riparato il "controller" della memoria, la ram non si sa ancora bene come la sistemeranno, è uno dei primi problemi che hanno incontrato, ma non è facilmente risolvibile
s-y12 Luglio 2019, 07:03 #9
Originariamente inviato da: elbolo
In realtà hanno riparato il "controller" della memoria, la ram non si sa ancora bene come la sistemeranno, è uno dei primi problemi che hanno incontrato, ma non è facilmente risolvibile


si giusto, il b12, che mi pare fondamentalmente non riparabile (piuttosto impressionante cmq come sia fatto...)
Obelix-it12 Luglio 2019, 08:59 #10
Originariamente inviato da: Mark0
1022? Caspita, è sbagliato solo di svariati ordini di grandezza!
Non sarà stato 10^22, magari? Attenti con il cut&paste, gli stili tipografici mancati giocano brutti scherzi.


Questo spiegerebbe anche l'ordine di tempo: con 1022 tentativi a 10 sec l'uno, ci mette 3 ore a trovare un blocco, non il tempo dell'universo...

Complimenti anche al programmatore, comunque, ricreare l'Hash in cosi' poco spazio...

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^