Get Mystery Box with random crypto!

Lezione 9: algoritmi del mining Oggi parleremo degli algoritm | Miningschool

Lezione 9: algoritmi del mining

Oggi parleremo degli algoritmi, in generale sono dei procedimenti che risolvono un determinato problema mediante l'applicazione di una sequenza di istruzioni.
Semplificando il tutto, i pc svolgono una seria di calcoli che danno come risultato una criptovaluta.
Andremo a vedere ora gli algoritmi più utilizzati per la produzione di criptovalute: Sha-256,scrypt,ethash,cryptonight,x11.

Il primo (Secure Hash Algorithm)appartiene ad un set di funzioni crittografiche ed è stato il primo ad essere utilizzato nel mondo delle criptovalute. Come ogni algoritmo di hash, lo SHA-256 produce un message digest partendo da un messaggio di lunghezza variabile. Ciò non consente di risalire al messaggio originale conoscendo solo quest’ultimo dato, in quanto la funzione non è reversibile.

Lo scrypt nasce per combattere gli ASIC (macchine che eseguono specifici calcoli in maniera efficiente) dunque il pericolo di “centralizzazione della potenza di calcolo”, fu sviluppato e implementato poi nei protocolli di Proof of Work di alcune criptovalute. Quest'ultimo sfrutta alcune funzioni che fanno un largo uso della memoria per ridurre drasticamente l’efficienza dei circuiti logici tipici degli ASIC. Tuttavia, per rendere veloce ed efficiente l’uso dello Scrypt anche sui comuni PC, furono semplificati alcuni parametri con pessime conseguenze.
L’algoritmo inizialmente, aveva come unico obbiettivo il mining solamente su CPU. Tuttavia poco dopo il debutto arrivarono i primi tool software per il mining su GPU. Un anno dopo, verso la fine del 2013, arrivarono i primi Asic Scrypt based, decretando il fallimento degli obiettivi prefissati da tale algoritmo.

Trattiamo un altro algoritmo, il CryptoNight, poco efficiente su sistemi quali GPU ed FPGA, ma soprattuto ASIC, non dotati di memoria cache e dunque svantaggiati o praticamente impossibilitati all’utilizzo dell’algoritmo.
LCryptoNight esegue come primo processo l’inizializzazione di uno Scratchpad, ovvero un’area di memoria per conservare i dati utilizzati. Nel caso del CrytpoNight, vengono utilizzati dati pseudo casuali appositamente per inibirne l’utilizzo da parte di ASIC e per minimizzare l’efficienza delle GPU. L’algoritmo inoltre, esegue numerosi operazioni di lettura e scrittura nello scratchpad per enfatizzare la velocità delle memoria e farne risaltare la latenza, che deve essere la minore possibile.

Ethash, nasce come funzione per eseguire il Proof of Work della blockchain di Ethereum. Questo algoritmo mischia due funzioni standard di crittografia, ovvero lo SHA-3 ed il Keccak. Ciò ha come risultato una funzione resistente agli ASIC ma al contempo veloce da verificare ed eseguire.

La resistenza agli ASIC è garantita dalla natura memory hard dell’algoritmo, tale data set viene chiamato DAG (grafo aciclico diretto) e viene rigenerato ogni 30-mila blocchi (circa 5 giorni). Attualmente il DAG ha un dimensione di circa 2.3 GB, motivo per cui non è possibile effettuare mining di Ethereum con schede video dotate di meno di 2.5-3GB di memoria video, in quanto il set di dati è necessario per il funzionamento della funzione di hash.
Nel caso di mining eseguito con computer ad alte prestazioni, generalmente il throughput si misura in Mh/s o al più Gh/s.

Concludiamo con uno degli ultimi algoritmi arrivati nel mondo delle criptovalute (2015), ovvero l’X11, anche se esistono ulteriori varianti X13, X15 ed X17. X11, molto efficiente sia su CPU che GPU che, come lascia intuire il nome, sfrutta una combinazione di ben undici differenti algoritmi di crittografia. Purtroppo, l’X11 non ha saputo dimostrarsi ASIC Proof, visto che dopo pochi mesi sono stati resi disponibili i primi ASIC dedicati a tale algoritmo.
X11 utilizza: blake, bmw, groestl, jh, keccak, skein, luffa, cubehash, shavite, simd, echo. L’uso combinato di tali funzioni di hash consente di raggiungere un elevato livello di sicurezza mantenendo un’efficienza del 30% superiore al classico SHA-256.