Gli algoritmi di mining sono le funzioni che rendono possibile l'attività di mining di criptovaluta. Esistono vari algoritmi, ognuno con le proprie caratteristiche adattate alle criptovalute che ne fanno uso.
LGli algoritmi di mining sono gli algoritmi incaricati di rendere possibile il estrazione di criptovalute. Di solito questi algoritmi lo sono funzioni hash crittografiche molto complesso e può regolare il difficoltà di estrazione. Un processo che serve a rendere più o meno difficile assemblare gli enigmi che devono essere risolti dai minatori. Questo ha lo scopo di far eseguire ai minatori un lavoro computazionale complesso che, una volta risolto, consente loro di accedere a una ricompensa per tale lavoro.
In questo articolo mostreremo alcuni degli algoritmi di mining più utilizzati nel mondo delle criptovalute, mostrando alcune delle loro caratteristiche e potenzialità.
Algoritmo di mining: quali sono i più utilizzati?
SHA-256, l'algoritmo Bitcoin
SHA-256 è un algoritmo crittografico che ha iniziato la sua storia come sistema di hashing per i dati. Fondamentalmente, ciò che fa SHA-256 è prendere una determinata quantità di informazioni e riassumerla in un unico blocco alfanumerico di 64 caratteri che viene generato deterministicamente. Ciò significa che se inserisci gli stessi dati un'infinità di volte avrai lo stesso output ogni volta.
Questo è fondamentale per proteggere l'integrità dei dati, poiché la minima modifica altera completamente l'output dell'hash SHA-256. È per questo motivo che viene ampiamente utilizzato su Internet per proteggere documenti e altre informazioni preziose che si desidera mantenere intatte. Va notato che SHA-256 non è un algoritmo di crittografia, ma è solo un algoritmo di integrità dei dati e l'unico modo per verificarlo è inserire le stesse informazioni ottenendo lo stesso risultato. Allo stesso modo, il processo opposto è praticamente impossibile da eseguire.
SHA-256 è stato progettato dalla National Security Agency (NSA) degli Stati Uniti e pubblicato dal National Institute of Standards and Technology (NIST) nel 2001 come standard di integrità dei dati. Il sistema può essere implementato per essere generato tramite CPU, GPU, FPGA e ASIC. Pertanto, il mining di Bitcoin, che utilizza SHA-256, può essere eseguito su tutti questi supporti senza problemi. Naturalmente, la potenza è diversa in ogni caso, la minima è quella che possiamo ottenere nelle CPU, passando per FPGA, GPU e infine ASIC, che sono quelli che attualmente dominano il mining di SHA-256.
I progetti di criptovaluta che utilizzano SHA-256 come algoritmo di mining includono Bitcoin, Bitcoin Cash, Bitcoin SV, Namecoin (utilizzando il mining unito), RSK (mining unito) e Stacks (mining unito). Esistono molti altri progetti che utilizzano SHA-256, ma la maggior parte di essi sono progetti senza alcuna innovazione e quindi di scarso valore all'interno della comunità.
Ethash, "l'algoritmo di Ethereum"
Ethash era l'algoritmo di mining Proof of Work di Ethereum. La prova del lavoro su Ethereum è stata completamente disabilitata con The Merge, e ora Ethereum è protetto utilizzando invece la prova della posta in gioco.
Questa era la funzione hash progettata per Ethereum e una delle sue caratteristiche principali era l'elevato fabbisogno di memoria grazie all'utilizzo di un DAG esteso per il mining. In linea di principio, Ethash è stato progettato per impedire il mining di ASIC. Tuttavia, il costo della memoria era così elevato che il mining di Ethash era ancora possibile con le GPU, dove le GPU beneficiano della grande quantità di memoria di cui dispongono, semplificando la creazione del DAG per il mining.
Ethash si basava su una funzione chiamata Keccak o SHA-3, oltre a utilizzare versioni degli hash Dagger-Hashimoto, quindi l'algoritmo era inizialmente noto come Dagger-Hashimoto e in seguito cambiò nome in Ethash.
Scrypt, la funzione crittografica più completa
Scrypt è una funzione di crittografia/hash progettata dal noto sviluppatore di FreeBSD Colin Percival. La funzione è stata progettata per far parte di un prodotto commerciale che aveva creato chiamato tarsnap, il cui scopo è creare backup di dati remoti per utenti e aziende. Tarsnap è un prodotto noto per la sua elevatissima sicurezza e velocità, cosa in cui Scrypt gioca un ruolo fondamentale.
Scrypt è una funzione hash estremamente ottimizzata progettata per elaborare grandi quantità di dati, offrire garanzie crittografiche di integrità e anche facilitare il recupero dei dati se necessario. La sua capacità di eseguire crittografia e decrittografia sicura aggiunge funzionalità extra che altre funzioni hash non hanno, motivo per cui Scrypt è considerata una delle funzioni più complete e sicure esistenti, oltre ad essere un'implementazione software gratuita, grazie alla sua licenza BSD 2. Scrypt è un algoritmo che può essere estratto utilizzando implementazioni per CPU, GPU, FPGA e ASIC, quest'ultimo è il più potente.
Tra le principali criptovalute che utilizzano Scrypt come funzione di mining ci sono Litecoin e Dogecoin.
X11, l'algoritmo Dash
L'algoritmo di mining X11 non è in realtà un algoritmo hash, ma l'unione di 11 di essi che vengono applicati in serie in modo da ottenere l'hash finale alla fine. L'idea alla base della sua creazione è garantire la completa sicurezza degli hash risultanti e aggiungere una certa complessità che impedirà la creazione di ASIC che centralizzano il mining.
Vale la pena dire che la prima idea è considerata da molti specialisti della crittografia, come una completa assurdità. Questo perché molti algoritmi utilizzati in X11 non hanno nemmeno una verifica formale del loro funzionamento. Ciò mina la sicurezza del sistema scommettendo su uno schema di "sicurezza per oscurità", poiché tale oscurità è la mancanza di test crittografici specifici che garantiscano che queste funzioni siano davvero sicure.
Sebbene la seconda idea di offrire resistenza ASIC fosse vera, non ci volle molto perché gli sviluppatori ASIC superassero questa sfida e iniziassero a offrire ASIC per X11. In risposta, gli sviluppatori hanno iniziato a creare variazioni sull'algoritmo X11 che impedivano l'estrazione di ASIC fino a quando un futuro aggiornamento del firmware non avrebbe ripristinato le macchine. Da questi sforzi improduttivi sono nati derivati come X13 (applicando 13 diverse funzioni hash), X15 e persino X17.
L'algoritmo X11 è stato progettato da Evan Duffield, il creatore di Dash, essendo la prima criptovaluta a utilizzare X11 e l'unica valuta di qualsiasi valore ad utilizzarla.
Equihash, un algoritmo basato su un complesso problema matematico
Equihash è stato creato grazie al lavoro di Alex Biryukov e Dmitry Khovratovich, che hanno cercato di creare un algoritmo hash che offrisse resistenza al mining ASIC. Per raggiungere questo obiettivo, Biryukov e Khovratovich hanno utilizzato un curioso problema matematico su cui hanno progettato la loro funzione hash: il "Birthday Problem" e i risultati del loro lavoro sono stati presentati nel 2016 all'Università del Lussemburgo. Questo progetto è stato gestito da un gruppo chiamato CryptoLUX, di cui facevano parte Simposio sulla sicurezza delle reti e dei sistemi distribuiti 2016 a San Diego.
Il “Problema del compleanno” ci dice che:
Su un gruppo di 23 persone, c'è una probabilità del 50,7% che almeno due di loro abbiano lo stesso compleanno. Per 57 o più persone la probabilità è maggiore del 99,666%. A rigor di termini questo non è un paradosso poiché non è una contraddizione logica.
Tuttavia, è una verità matematica che contraddice l'intuizione comune. Molte persone pensano che la probabilità sia molto più bassa e che ci vogliano molte più persone per raggiungere la probabilità del 50,666%. Se una stanza avesse 367 persone, per il principio di Pigeonhole sappiamo che ci sarebbero almeno due persone che compiono gli anni nella stessa data, poiché un anno normale ha 365 giorni e un anno bisestile ne ha 366.
Sulla base di ciò, la funzione Equihash porta i computer a eseguire operazioni ad alta intensità di memoria che rendono difficile il calcolo parallelo. Questo perché è estremamente costoso creare ASIC con grandi quantità di memoria ad alta velocità e larghezza di banda elevata.
Di conseguenza, Equihash è uno degli algoritmi resistenti agli ASIC più problematici. In effetti, ancora oggi questo algoritmo rappresenta una bella sfida per gli ASIC (che finalmente sono riusciti a superare la resistenza), poiché non sono in grado di raggiungere livelli elevati di soluzioni al problema, il che rende questi dispositivi abbastanza inefficienti dal punto di vista energetico, anche se molto più veloci di le loro controparti CPU, FPGA e GPU.
La valuta principale che utilizza questo algoritmo è Zcash, sebbene sia utilizzata anche da Bitcoin Gold e Komodo.
Cryptonight, il primo algoritmo per monete anonime
CryptoNight è un algoritmo unico per un motivo ben noto nella comunità: ha lo scopo di semplificare la creazione di monete anonime. In effetti, la persona (o il gruppo di persone) che ha costruito l'algoritmo è un mistero completo, allo stesso livello di Satoshi Nakamoto. Diversi utenti affermano che il creatore di CryptoNote (l'algoritmo di consenso di base per CryptoNight) sia lo stesso Satoshi Nakamoto che agisce sotto un nuovo pseudonimo: Nicholas van Saberhagen. Per aggiungere più misticismo, CryptoNote è stato presentato il 12/12/12, un enigma completo che nessuno è stato in grado di risolvere fino ad oggi.
In ogni caso, CryptoNight è stato sviluppato come funzione hash per CryptoNote e la prima moneta ad implementarla è stata Bytecoin. L'algoritmo è stato progettato da zero per fornire un livello molto elevato di privacy, anonimato e resistenza ad ASIC e GPU. Per fornire un elevato livello di sicurezza e anonimato, una delle sue caratteristiche principali è l'elevata resistenza all'estrazione di ASIC e GPU, rendendo estremamente difficile lo sviluppo per questi dispositivi.
Tuttavia, con l'abbandono di Bytecoin, Monero, la seconda moneta a implementare la funzione per il suo mining, ha preso le redini dello sviluppo grazie a un gruppo di sviluppo più ampio e specializzato, insieme a una comunità più attiva. Pertanto, Monero è diventato il principale sviluppatore di CryptoNight e lo ha costantemente aggiornato per impedire agli ASIC di scatenare il caos contro di esso. Nonostante lo sforzo, CryptoNight ha perso la battaglia e comprendendo questo punto, gli sviluppatori di Monero hanno annunciato che stavano lavorando al suo successore, dichiarando che CryptoNight sarebbe stato presto abbandonato.
Attualmente, CryptoNight è un algoritmo poco utilizzato e abbandonato. Infatti, la maggior parte dei progetti che lo utilizzano vengono abbandonati.
RandomX, l'evoluzione di CryptoNight
La community di Monero, vedendo di aver perso la battaglia in CryptoNight, ha compreso la necessità di sviluppare da zero un nuovo algoritmo per aprire un nuovo fronte per le privacy coin.
Il risultato di tutto questo sforzo è RandomX. Questo è un algoritmo per le privacy coin così complesso che è teoricamente impossibile da implementare in un ASIC. In effetti è estremamente complesso da implementare in modo efficiente per GPU e FPGA.
RandomX deve il suo funzionamento a un'implementazione che funziona sulla base di una macchina virtuale di introspezione computazionale. Fondamentalmente, RandomX crea una macchina virtuale con determinate caratteristiche crittografiche che vengono generate casualmente. Su questa macchina virtuale viene lanciata la sua funzione crittografica per il mining di Monero. Tutto ciò rende RandomX esigente. Richiede capacità di memoria RAM, istruzioni CPU e cache, nonché il calcolo crittografico necessario per il suo funzionamento, che si basa su AES-256, e utilizza anche le funzioni Blake2b e Argon2d.
L'implementazione ha avuto un tale successo che quasi 3 anni dopo la creazione dell'algoritmo, non esiste ancora un'implementazione efficiente per GPU e FPGA. E infatti, l'implementazione dell'ASCI è ancora teoricamente impossibile. Tutto ciò finisce per rendere impraticabile l'uso di questi strumenti, portando tutti a minare con la CPU, l'obiettivo di RandomX.
CuckooCycle, Cuckaroo e Beam, mining per GPU e monete private
CuckooCycle è un algoritmo di mining PoW utilizzato dal progetto Aeternity. L'algoritmo è pensato per essere utilizzato su GPU, dove è efficiente e resistente al mining ASIC. CuckooCycle richiede memoria intensiva e richiede almeno 4 GB di RAM GPU per avviare il processo di mining. Al momento non esiste un ASIC che operi su questo algoritmo e l'unica valuta di pertinenza che lo utilizza lo è Aeternity.
Da parte sua, Cuckaroo è un algoritmo di mining utilizzato da privacy coin come Sorriso y MimbleWimble. L'algoritmo è pensato per essere utilizzato su GPU e resistere al mining ASIC. Tuttavia, l'algoritmo ha subito diversi aggiornamenti, poiché molte delle sue vecchie iterazioni non sono più considerate resistenti agli ASIC. Ciò ha portato alla creazione di varianti come Cuckarood29, Cuckatoo31 o Cuckatoo32, che cercano di risolvere questo problema.
Infine, Beam è l'algoritmo di mining utilizzato dalla criptovaluta per la privacy Larghezza. Questo algoritmo è un derivato di Equihash ed è progettato per essere utilizzato su GPU. In termini di Beam mining, le schede Nvidia mostrano i risultati migliori, anche se la differenza con le GPU AMD è minima e l'efficienza energetica di queste ultime è molto più elevata.