Criptovalute e mining: da fenomeno di nicchia a sistema per il facile arricchimento personale, l’argomento rappresenta oggi uno dei traguardi più ambiti e meno noti di Internet.
Cos’è una criptovaluta?
Da Wikipedia:
Il vocabolo criptovaluta o criptomoneta è l’italianizzazione dell’inglese cryptocurrency e si riferisce ad una rappresentazione digitale di valore basata sulla crittografia. L’etimologia del vocabolo deriverebbe dalla fusione di “cryptography” e “currency”, e rappresenta una risorsa digitale paritaria e decentralizzata.
Le criptovalute utilizzano tecnologie di tipo paritario su reti di computer situati potenzialmente in tutto il globo. Su questi computer vengono eseguiti appositi programmi. Le transazioni e il rilascio avvengono collettivamente in rete, pertanto non c’è una gestione di tipo “centralizzato”.
Il controllo di ciascuna criptovaluta funziona in genere attraverso una tecnologia chiamata blockchain, che funge da database e controllo di transazioni finanziarie pubbliche.
Parte del successo goduto dalle criptovalute negli ultimi tempi è dovuto alla gestione decentrata delle operazioni, che rende il sistema più resistente ad attacchi informatici ed errori.
Cosa occorre per fare mining
Per prima cosa occorre tanta, tanta pazienza.
In secondo luogo abbiamo bisogno di uno o più computer molto, molto potenti, possibilmente dotati di schede acceleratrici ad hoc.
Ora, noi sappiamo benissimo che i nostri sistemi per la gestione dell’IoT sono tutt’altro che potenti… dunque, di cosa stiamo parlando? Bene, innanzi tutto ricordiamo le due caratteristiche di single board computers e microcontrollori: l’efficienza energetica ed il prezzo decisamente contenuto. Un simile combinato disposto ci consente di accedere al mondo delle criptovalute con alveari di centinaia, o migliaia di elementi, che sebbene poco potenti, sono facilmente raggruppabili in cluster. In altri termini, con il prezzo che pagheremmo per un computer supercarrozzato per il mining (ed il suo elevatissimo consumo energetico!), potremmo acquisure un elevato numero di micronodi a bassissimo consumo, e gestire quasi la stessa quantità di informazione per Watt per costo totale.
Il software necessario
Per utilizzare gli algoritmi di mining su SBC e MCU, è stata recentemente creata una criptovaluta ad-hoc, il “duino-coin“. Il suo valore è ovviamente molto inferiore alle più blasonate criptovalute, ma essendo nuovo dell’ambiente, è sicuramente più suscettibile a crescita e rivalutazione. Tutte le informazioni necessarie (e forse anche di più) si trova sul relativo sito web.
La homepage recita testualmente quanto segue:
L’unica moneta che può essere estratta con computer, Raspberry Pis, Arduino, schede ESP32, ESP8266 e molti altri.
- Supportato da un gran numero di piattaforme
- Una comunità amichevole e in crescita
- Facile da usare e sostituire
- Disponibile ovunque
- Adatto ai principianti
- Conveniente
- Facile da estrarre
- Open source
Quindi sì, è anche possibile “barare” e mettere a “minare” il proprio PC, ma che gusto ci sarebbe?
Il sistema richiede per prima cosa la creazione di un wallet online, una sorta di portamonete virtuale utilizzato come archivio che conterrà le monete che nel fratetmpo avremo trovato. Quindi installeremo il software basato su Python 3, ci collegheremo sulla nostra linea Internet e richiederemo la nostra prima workunit di lavoro.
Come funziona
Ciascuna unità di lavoro contiene due blocchi. Sul nuovo blocco vengono eseguite operazioni matematiche di una certa complessità (calcolo hash con SHA1) sin quando non viene raggiunto un risultato che consenta di “confrontare e riallineare” i due blocchi.
Il tempo-CPU necessario al confronto ed al riallineamento, offerto dal miner, viene ricompensato con una frazione di duino-coin. Il duino-coin ha un criterio di valutazione riconosciuto, con un confronto sul dollaro. Al momento un duino vale quasi un centesimo di dollaro.
Occorre inoltre ricordare che questa ricerca tende a prediligere il numero di partecipanti rispetto alla potenza delle macchine: per tale motivo viene utilizzato un algoritmo per la remunerazione del tempo-CPU offerto che utilizza una funzione inversamente proporzionale alla potenza dell’hardware utilizzato. In questo modo si garantisce al sottobosco pi piccoli e piccolissimi utenti una maggiore valutazione del tempo offerto. Un simile comportamento rende vano o comunque meno valido il lavoro di chi ha hardware specificamente progettato per questo lavoro, ed evita quei fenomeni di accaparramento di hardware più potente, tristemente noti tra coloro che utilizzano ad esempio le GPU.
Valore aggiunto
Come abbiamo accennato in precedenza, eseguire mining di criptovalute su SBC e MCU presenta l’indubbio vantaggio di un costo di accesso bassissimo, e l’evidente possibilità di crescere un modo dinamico e parallelo semplicemente aggiungendo nodi. Il software in Python è facilmente inseribile all’interno di una qualsiasi routine di controllo, utilizzando tutti i tempi “morti” del controllore tra una lettura e l’altra dei sensori.
Se l’argomento suscita interesse, prevediamo un ulteriore articolo di approfondimento, nel quale mostrare i passaggi salienti di installazione e controllo del sistema (qui semplicemente illustrato con immagini), e valuteremo quantitativamente come lavorano e quanto possono “rendere” Arduino e Raspberry PI.
Alla prossima puntata!
Link utili:
Bellissimo articolo!
A me interessa questo progetto, ma è meglio fare una stazione con più chip Arduino (Atmega328p), oppure con esp8266 o esp32 o Raspberry?
Da quello che ho capito se viene utilizzato un algoritmo per la remunerazione del tempo-CPU che utilizza una funzione inversamente proporzionale alla potenza dell’hardware utilizzato, allora conviene usare più chip Atmega328p giusto?
Potete fare un altro articolo come fare il tutto?
Grazie!
Ci fa piacere che ti sia piaciuto, grazie per i complimenti!
Quello che affermi è corretto: più è “potente” il processore, maggiori sono le capacità di “mining”, quindi un sistema con un ARM M0 o M4 integrato (o un ESP32) è sicuramente più efficiente di uno con un solo Atmega328.
Scriveremo ancora su come creare un piccolo “cluster” di schede, per oottimizzare la ricerca ed aumentare le probabilità senza un esborso eccesivo per l’energia elettrica.
Grazie delle risposta, vorrei capire meglio:
Visto che viene utilizzato un algoritmo di remunerazione con una funzione “inversamente proporzionale” alla potenza dell’hardware, sembra che a questo punto conviene fare un cluster di Atmega328, perché a confronto con esp8266 o esp32 è il meno potente.
Da come ho capito quello che fa la “magia” è l’algoritmo a questo punto, che predilige un hardware meno potente, giusto?
Cioè, tra un cluster di Atmega328 e un cluster di esp32, dovrebbe essere meglio quello con Atmega328, o no?
Grazie.
Il discorso è più complesso di così… Stiamo parlando di funzioni legate al tempo: Più passa il tempo, maggiore è la richiesta di hardware PER OTTENERE LO STESSO RISULTATO.