L'algoritmo di mining CryptoNight è un algoritmo di mining pensato per essere particolarmente efficiente dalla CPU e resistente agli ASIC. Ciò con l'obiettivo di consentire una maggiore decentralizzazione del mining delle criptovalute che lo applicano, ma anche, consentire a tali criptovalute di offrire opzioni avanzate di privacy e anonimato.
Unessuno degli algoritmi di mining più popolari lo è CryptoNight. Questo algoritmo di mining fa parte del noto protocollo di consenso CryptoNote. CryptoNight utilizza lo schema di mining di Proof of Work (PoW) per il suo funzionamento e cerca di offrire un'elevata dipendenza da CPU, resistendo al ASIC, FPGA y GPU.
La sua caratteristica principale è che è un algoritmo di hash molto veloce. Consente inoltre una buona scalabilità ed esegue una serie di test crittografici che sono estremamente dipendenti dalla memoria cache dei processori della CPU. Ma non solo, il suo nucleo o nucleo crittografico funziona attorno all'algoritmo di crittografia AES, un algoritmo molto sicuro e persino considerato, in alcune versioni, come crittografia di livello militare.
Tutto ciò rende CryptoNight un algoritmo di mining molto incentrato sulla sicurezza e questo è stato il suo principale veicolo di successo nel mondo delle criptovalute. In effetti, il fatto che la criptovaluta Monero lo ha scelto come algoritmo hash per la prova del lavoro del consenso della sua blockchain, ha aumentato la visibilità di CryptoNight e gli ha aperto uno spazio nel mondo crypto.
Ora, qual è la storia dietro CryptoNight? Come funziona questo interessante algoritmo? Come sempre, di seguito puoi ottenere le risposte a queste e ad altre domande.
Origine dell'algoritmo CryptoNight
Lo sviluppo di CryptoNight può essere fatto risalire a Dicembre 12 2012, quando lo sviluppatore Nicholas van Saberhagen ha presentato al mondo il protocollo di consenso CryptoNote. Nicolas van Saberhagen, è un nome fittizio e l'identità dello sviluppatore è un enigma completo, al punto da rivaleggiare con quella di Satoshi Nakamoto. Infatti, molti specialisti ritengono che Nicolas van Saberhagen e Satoshi Nakamoto siano la stessa persona. Da qui il nome Satoshi van Saberhagen, in riferimento a questo possibile fatto.
Ma lontano dal campo della speculazione, CryptoNote è una realtà. Il lancio di questo protocollo in una data così sorprendente (per la precisione, il 12/12/12) ha attirato l'attenzione della comunità crypto. Questo perché CryptoNote presentava funzionalità avanzate che promettevano cose come transazioni riservate. Inoltre, transazioni non collegabili, firme ad anello, transazioni più piccole e maggiore sicurezza.
Più tardi, nel marzo 2013, il Specifiche complete di CryptoNight, l'algoritmo di mining che renderebbe CryptoNote una realtà. Dietro questo sviluppo ci sono gli sviluppatori Seigen, Max Jameson, Tuomo Nieminen, Neocortex e Antonio M. Juarez.
Il progetto CryptoNote e il suo algoritmo di mining sono stati inizialmente rilevati da Bytecoin (BCN) che li ha applicati alla loro blockchain. Ma è stato solo con la creazione di Monero (XMR) che questo progetto ha iniziato ad essere ampiamente conosciuto nel mondo delle criptovalute.
Come funziona CryptoNight
Il funzionamento di CryptoNight si basa su una serie di proprietà che lo rendono molto amichevole per il mining di GPU. Queste proprietà sono:
- Utilizza la crittografia AES nativa. Le CPU con capacità di accelerazione hardware per i calcoli AES possono trarre grandi vantaggi da questo fatto e avere un potenziale di mining superiore.
- Uso di funzioni hash sicure, come Keccak e Blake-256.
- Utilizza un set di moltiplicatori veloci a 64 bit. Per questo motivo, le architetture CPU pure a 64 bit sono altamente efficienti. È anche possibile utilizzarlo su CPU del tipo VLIW Da 128 a 512 bit, in cui l'algoritmo potrebbe sfruttare i pool di mining paralleli aumentando le prestazioni.
- Uso intensivo delle cache della CPU. L'algoritmo di CryptoNight regola l'utilizzo della cache per ottenere il massimo da esso. In effetti, più cache ha la CPU, migliori saranno le sue prestazioni.
Se guardiamo a questi quattro pilastri, vedremo che sono tutti molto basati sulla CPU. In effetti, alcune di queste funzioni sono molto più efficienti su una CPU che su qualsiasi altra struttura computazionale, inclusi gli ASIC. Questo è ciò che consente a CryptoNight di resistere a loro.
Ma ovviamente, questi sono solo i pilastri e non il modo in cui funziona l'algoritmo, lo spiegheremo di seguito.
Avvio del sistema hash
Il lavoro di CryptoNight inizia con l'inizializzazione del tuo spazio di lavoro. Per questo CryptoNight si avvale di una serie di primitive crittografiche che sono:
- Crittografia AES
- Funzione hash di Keccak, che viene utilizzata come veicolo principale per la generazione di hash all'interno dell'algoritmo.
- Funzione hash SHA-3. SHA-3 è una funzione hash derivata da Keccak e viene utilizzata insieme a BLAKE-256, Groestl-256, JH-256 e Skein-256 per rafforzare la generazione di hash dell'area di lavoro crittografica CryptoNight.
Creazione della chiave AES e crittografia dell'hash Keccak
La parte più importante del processo è la creazione della chiave AES. Ciò è possibile durante il primo ciclo di funzioni hash. Prima di tutto, CryptoNight prende un input di dati e lo porta alla funzione Keccak. A tale scopo, preparare una funzione Keccak-1600 di larghezza 1600 bit. In confronto, Bitcoin e la sua funzione hash SHA-256 utilizzano parole a 256 bit o 64 caratteri. Mentre Keccak-1600 produce hash molto più grandi, 1600 bit o 400 caratteri nella loro interezza, con una dimensione di 200 byte.
Prende quindi i primi 31 byte di questo hash Keccak-1600 e li trasforma nella chiave di crittografia per un algoritmo AES-256, il valore più alto nella famiglia AES. Per questo, questo piccolo pezzo di dati viene crittografato in dieci round. Il resto dell'hash viene crittografato utilizzando AES-256 e passa anche attraverso 10 cicli di crittografia.
Il resto delle informazioni viene quindi preso dall'hash Keccak e crittografato utilizzando AES-256. Questo processo genera un'enorme quantità di dati che vengono quindi inviati all'area di lavoro CryptoNight o agli appunti. Al termine di questo processo, l'area di lavoro CryptoNight è stata preparata e inizia il ciclo di generazione dell'hash.
Generazione dell'hash finale
Ora i dati raccolti da queste azioni alimentano il nucleo delle funzioni hash. Come abbiamo detto, il principale è Keccak, a cui si aggiungono BLAKE-256, Groestl-256, JH-256 e Skein-256.
Quello che fa CryptoNight è prendere l'intero set di dati creato dalle funzioni AES-256 e Keccak nel passaggio precedente e lo passa attraverso il resto delle funzioni hash. Alla fine si ottiene un hash finale, che è il risultato della prova di lavoro di CryptoNight. Questo hash ha una lunghezza di 256 bit o un totale di 64 caratteri.
Pro e contro dell'algoritmo
Vantaggi
- Altamente personalizzabile. Dati come l'obiettivo di mining e la difficoltà possono essere regolati tra i blocchi senza che rappresentino un pericolo per la sicurezza della rete.
- Si concentra sulla CPU. Ciò rende il mining con ASIC complesso e costoso da eseguire.
- È estremamente sicuro a livello crittografico. L'utilizzo di AES-256 e l'unione di tecniche di cifratura e funzioni hash in modo specifico assicurano che sarà sempre ottenuto un elevato livello di sicurezza.
- È efficiente dal punto di vista energetico e dal punto di vista computazionale.
- Per il livello di sicurezza fornito, la dimensione dei risultati del test crittografico di CryptoNight è piccola. Ciò consente di massimizzare il numero di transazioni all'interno dei blocchi.
- Dato il modo in cui CryptoNight gestisce le informazioni sui blocchi di mining, esiste la possibilità di creare transazioni non tracciabili in modo nativo.per. Monero infatti è riuscita a costruire queste transazioni grazie a CryptoNight.
Svantaggi
- La capacità di resistenza ASIC non è più realizzabile. Questo perché gli ASIC sono stati in grado di adattarsi al mio per questo algoritmo con grande efficienza.
- CryptoNight è un algoritmo estremamente complesso e difficile da controllare. Per questo motivo, gli sviluppatori dispongono di un'ampia curva di complessità per verificare la presenza di possibili errori in questo algoritmo.
- L'uso di istruzioni specifiche della CPU come AES, può portare ad attacchi laterali all'algoritmo. Esiste la possibilità di sfruttare vulnerabilità all'interno del processore (come il caso di TSX o difetti come Spectre/Meltdown) che possono rompere la sicurezza dell'algoritmo e quindi minare la sicurezza della blockchain che utilizza questo algoritmo di mining.
Quanto sai, Cryptonuta?
L'abbandono dello sviluppo di CryptoNight significa che non è più un algoritmo sicuro?Certo!
L'abbandono di CryptoNight a favore di RandomX da parte di Monero (la principale comunità di sviluppo), renderà gradualmente CryptoNight un algoritmo non sicuro. Se viene scoperta qualche vulnerabilità o difetto, potrebbe non essere corretto e invece, alcuni progetti che fanno uso di CryptoNight faranno sicuramente il salto da altri protocolli più sicuri con manutenzione attiva.
CryptoNight Evolution
CryptoNight è uno dei pochi algoritmi crittografici che ha subito grandi quantità di modifiche nel corso della sua storia. Dal rilascio della versione 1, dimostrato nella sua whitepaper, fino alla creazione di CryptoNight-R, l'ultima versione di CryptoNight sviluppata da Monero.
Nonostante ciò, le modifiche e le nuove versioni di CryptoNight mirano a impedire che il mining di ASIC rovini lo sforzo dell'algoritmo di offrire resistenza. Ma ogni nuovo cambiamento nella struttura a tal fine aggiunge più complessità e più punti di fallimento. Questo è stato il motivo principale per cui il suo sviluppo è stato interrotto (almeno da Monero, il suo membro più importante nella comunità).
Quindi per il momento possiamo dire che CryptoNight è un algoritmo che ha raggiunto l'apice della sua evoluzione per impedire agli ASIC di sfruttare apertamente questo algoritmo.
Blockchain che utilizzano l'algoritmo
Bytecoin (BTN) è la prima blockchain a utilizzare CryptoNight. La blockchain successiva a utilizzarla è stata Monero, ed è proprio qui che questo algoritmo è stato sviluppato maggiormente. Tuttavia, Monero ha abbandonato questo algoritmo a favore di Casuale X, un'evoluzione completa di CryptoNight che è altamente resistente agli ASIC e lo sarà per almeno molto tempo.
Un'altra blockchain utilizzata da CryptoNight è Electroneum (ETN), progettata in modo che i dispositivi mobili possano fungere da nodi completi e nodi di mining.