Tabella dei Contenuti
ToggleIn qualsiasi conversazione su Ethereum potresti aver sentito parlare di Ethash. Questo è l’algoritmo che rende possibile Ethereum. Tale algoritmo utilizza tecniche di elaborazione molto avanzate che aumentano il livello di sicurezza della rete.
Un altro modo per chiamare questo algoritmo è con il nome Ethash-Dagger-Hashimoto. Questo era il nome che ha adottato quando è stato creato, tuttavia da allora è cambiato e si è evoluto molto. In questo articolo vedremo cosa offre e come funziona.
Sebbene il suo nome completo sia Ethash-Dagger-Hashimoto, bisogna notare che Dagger-Hashimoto si riferisce all’algoritmo di mining che è servito come base per la creazione dell’attuale Ethash. Tale algoritmo mirava a creare un meccanismo sicuro basato sulla resistenza al mining ASIC e sull’efficienza che apporta essendo altamente verificabile dai thin client.
I creatori di questo algoritmo sono Vitalik Buterin e Thaddeus Dryja. Entrambi svilupparano questo sistema tra il 2013 e il 2014. Questo algoritmo si basa su due diversi algoritmi, per questo il nome composto. Il primo, Dragger, è un algoritmo sviluppato dallo stesso creatore di Ethereum, Buterin. Questo algoritmo utilizza grafici aciclici diretti (DAG) per creare una struttura dati massiccia.
All’inizio del suo sviluppo, la struttura dell’algoritmo occupava uno spazio di storage di circa 1 Gb, tuttavia negli anni il suo storage è stato esteso fino a 4 Gb o 5 Gb. La struttura di questo algoritmo consente il funzionamento del processo di mining di Hashimoto, l’algoritmo di cui parleremo in seguito.
Hashimoto è il secondo algoritmo di base di Ethash sviluppato da Thaddeus Dryja con l’intento di essere in grado di aggiungere resilienza ASIC al sistema in cui è iutilizzato, e anche per effettuare l’hash mining. Tutto questo è possibile perché l’algoritmo stesso aumenta il consumo di RAM e quindi limita gli ASIC.
Dall’unione dei due algoritmi ne è nato uno unico, che offre la possibilità di progettare un nuovo sistema di mining così complesso che i miners di ASIC non possono implementarlo in modo efficace. In effetti, la sua struttura è così avanzata che molti sviluppatori stanno cercando di implementarla come opzione a Scrypt.
Tuttavia, Dragger-Hashimoto non è sempre stato quello che è oggi. Come tutto il resto, presentava diversi difetti che lo hanno trasformato nell’attuale algoritmo. Di seguito vedremo come funziona.
The operation of Ethash is completely different from the basic operation of the algorithm on which it is based, Dragger-Hashimoto. However, there are some fundamental features that remain in place.
As the start of the algorithm, it creates a seed calculated through the block headers until the start of mining. Subsequently, the previous seed is used to compute and create a pseudo random cache with an exact size of 16 MB. Once created, this is used to create a data set that occupies more than 4 GB. This data is what we call “DAG“.
The DAG is updated every 30 thousand blocks varying for each mining season. The mining process starts with the creation of the DAG. During mining, random values are taken from the DAG and these are combined with data provided by the network and the rest of the transactions to be verified. For the final phase, verification is performed through a process that generates certain parts of the previous data set using the cache memory to accelerate the process.
To reach the current performance, Ethash has gone through 23 versions of its algorithm. However, there are aspects that have not changed, such as the use of the Keccak-256 and Keccak-512 functions. These are the algorithm from which what we know today as the SHA-3 standard was derived.
It is possible that when we see such a high number of updates, we may think that the developers are not satisfied or that the project is incomplete. However, each update corresponds to a solution of problems that the algorithm may present. The updates were carried out to improve, secure and fix the algorithm, but above all, to increase the difficulty of implementation in ASIC. In this way, an increasingly GPU friendly algorithm was created.
Like any computer system, Ethash has advantages and disadvantages that differentiate it from other algorithms. Below we will see the most important ones:
Advantages:
Disadvantages: