Um dos algoritmos de mineração mais elaborados no mundo criptográfico é o Ethash, o algoritmo de mineração Ethereum, sobre o qual você aprenderá neste excelente artigo. 

EO algoritmo de mineração Ethash é o algoritmo que faz a operação do mineração en Ethereum. Um algoritmo de alta qualidade que usa algumas técnicas de computador muito elaboradas para garantir a maior segurança possível.

Ethash também é conhecido como Ethash-Dagger-Hashimoto, embora certamente o algoritmo atual tenha mudado tanto que bem poderia receber outro nome. Mas o que tudo isso significa? O que é Dagger-Hashimoto e como se relaciona com Ethash? Como funciona o Ethash? Qual é o seu futuro?

Bem, todas essas perguntas serão respondidas abaixo neste novo artigo da Bit2Me Academy.

O que é Dagger-Hashimoto? A origem de Ethash

Para entender como o Ethash funciona, você deve primeiro saber o que é Dagger-Hashimoto. É por isso que primeiro explicaremos este ponto para avançar e compreender este algoritmo impressionante.

Quando falamos em Dagger-Hashimoto, estamos nos referindo a um algoritmo de mineração que serviu de base para a criação de Ethash. Este algoritmo procurou criar um algoritmo seguro baseado em dois pilares:

  1. Seja resistente à mineração ASIC.
  2. Altamente eficiente e facilmente verificável por thin clients.

Esses dois pilares são fundamentais no funcionamento do Dagger-Hashimoto. As mentes por trás do design deste algoritmo são Vitalik Buterin y Thaddeus Dryja, que idealizou o mesmo entre 2013 e 2014. Como você pode ver, seu nome vem porque o algoritmo é na verdade a união de dois algoritmos diferentes.

Em primeiro lugar, temos Punhal, um algoritmo desenvolvido por Vitalik Buterin que usa Gráficos acíclicos direcionados (DAG) para construir uma estrutura de dados massiva. Inicialmente, essa estrutura ocupava pouco mais de 1 GB de armazenamento, mas atualmente está em torno de 4-5 GB. Uma série de cálculos de memória são executados nesta estrutura que adiciona um alto nível de trabalho. Essa estrutura é o que permite o processo de mineração realizado pelo algoritmo de Hashimoto.

Hashimoto Por sua vez, é um algoritmo desenvolvido por Thaddeus Dryja, e seu objetivo é adicionar a resistência ASIC, e realizar a mineração do de hash. Isso é conseguido fazendo com que ele tenha um alto consumo de RAM e isso é uma limitação para os ASICs. Basicamente o que o Hashimoto faz é pegar o DAG gerado, adicionar as informações da rede sobre a dificuldade, as transações e gerar um hash que identifica o bloco que está sendo minerado.

Ao juntar os dois algoritmos, obtemos um único algoritmo que nos permite projetar um sistema de mineração complexo o suficiente para que os mineiros ASIC tenham problemas para implementá-lo com eficiência. A estrutura é tão avançada e segura, que se procurou implementar como alternativa ao Scrypt.

Porém, Dragger-Hashimoto apresentava algumas falhas que fizeram com que seu desenvolvimento e evolução acabassem dando origem ao Ethash.

Como funciona o algoritmo Ethash?

Com base no que foi aprendido em Dagger-Hashimoto, a equipe de desenvolvimento de Ethereum Ele então apresentou seu algoritmo Ethash. A operação básica desse algoritmo é completamente diferente do Dagger-Hashimoto original, mas os princípios fundamentais permanecem. Portanto, temos que Ethash funciona da seguinte maneira:

  1. Uma semente calculada é criada usando os cabeçalhos de bloco até o ponto onde a mineração começa.
  2. Essa semente é então usada para calcular e gerar um cache pseudo-aleatório de 16 MB.
  3. Esse cache é então usado para gerar um conjunto de dados maior que 4 GB (o DAG). Este conjunto de dados é semipermanente e atualizado a cada 30 mil blocos. Desta forma, o DAG varia para cada “temporada de mineração”.
  4. Assim que o DAG é gerado, a mineração começa. Esse processo pega valores aleatórios do DAG e os combina usando os dados fornecidos pela rede e as transações a serem verificadas.
  5. Por fim, a verificação é realizada com um processo que regenera partes específicas do conjunto de dados utilizando a memória cache, agilizando o processo.

Esta operação é a que é executada atualmente e corresponde à versão número 23 do algoritmo. As funções Keccak-256 e Keccak-512 são usadas em todo o processo, um algoritmo do qual o padrão SHA-3 foi derivado.

Agora você certamente se perguntará por que tantas revisões e mudanças? E a resposta para isso é que essas atualizações respondem à resolução de problemas, vulnerabilidades, otimizações e, claro, modificações para tornar o trabalho mais complexo para ASICs e mais amigável para o usuário. GPU, que é onde a comunidade Ethereum tende a fazer sua vida mais mineira.

Esquema de como o Ethash funciona

Recursos do algoritmo Ethash

Tudo isso garante que Ethash tenha características de trabalho únicas, entre as quais podemos citar:

  1. É altamente dependente de operações na memória RAM, consumindo grandes quantidades de largura de banda. Esta é uma medida de segurança contra ASICs e também essencial para o bom funcionamento do Ethash. As operações necessárias para construir o DAG e o cache de desempenho do Ethash são altamente dependentes desses recursos.
  2. O algoritmo é compatível com GPU. Certamente você sabe que as placas gráficas ou GPUs atuais têm uma capacidade imensa. Na verdade, gráficos em movimento como os dos jogos de hoje requerem uma grande quantidade de memória e processamento paralelo incomparável. Este é um ponto forte se você executar a mineração usando Ethash, porque você pode usar a memória da GPU para ter todo o DAG na memória, junto com o cache, e realizar todos os cálculos em um espaço de trabalho de alta velocidade. Como resultado, você tem a capacidade de minerar muito mais rápido.
  3. Oferece excelentes recursos de verificação de thin client. Com cerca de 16 MB de RAM, é possível criar um thin client que é capaz de verificar transações com muita facilidade e rapidez. Além disso, um thin client pode estar instalado e funcionando e concluir o processo de verificação em apenas 30 segundos.

Keccak e SHA-3, em que são diferentes?

Keccak e SHA-3 são duas funções hash muito semelhantes, na verdade, o princípio em que funcionam é o mesmo, mas aplicado de forma diferente, o que dá resultados diferentes. No entanto, ambos são praticamente equivalentes em segurança, velocidade e capacidade de computação necessária para seu cálculo.

Portanto, embora ambas as funções gerem hashes diferentes, a base de operação e sua segurança são praticamente equivalentes.

Prós e contras do algoritmo

Prós

  1. É um algoritmo simples de implementar, seguro e prático quando se trata de assumir uma grande resistência aos ASICs.
  2. É rápido, o uso de uma estrutura (DAG) em memória, uso do cache e uso da função Keccak, tornam este algoritmo um processo eficiente na produção de blocos. Graças a isso, a Ethereum pode contar com um tempo de produção ajustável às necessidades da rede, sempre buscando o equilíbrio entre segurança e escalabilidade.

Contras

  1. A resistência ASIC foi quebrada em 2018, quando Bitmain apresentou seu primeiro minerador a Ethash. Desde então, foram buscados mecanismos para evitar uma maior centralização da mineração em Ethereum. Porém, o desenvolvimento do Ethereum 2.0 prevê o abandono da Prova de Trabalho (PoW), e com ela o Ethash como um algoritmo de mineração, em favor de um Prova de participação (PoS).
  2. O alto consumo de memória de seu DAG torna muito difícil minerar em máquinas mais modestas.
  3. A maneira como a dificuldade das escalas do algoritmo trouxe Ethereum à beira da conhecida "Idade do Gelo". Um ponto onde o sistema de dificuldade de Ethash tornaria a mineração impossível para qualquer minerador que tentasse. Este é um sério risco para a segurança do blockchain Ethereum.

Quanto você sabe, cryptonuta?

O Ethash é um algoritmo pouco escalonável e é por isso que você deseja abandonar seu uso no Ethereum?

FALSO!

Ethash é um algoritmo com escalabilidade muito maior do que outros algoritmos de Prova de Trabalho, como Bitcoin, por exemplo. No entanto, o Ethereum abandonará seu uso em favor da Prova de Participação, porque o último esquema dará a ele uma escalabilidade muito maior ao longo do tempo, algo que o Ethash dificilmente pode alcançar.

Blockchains que usam o algoritmo

O blockchain principal que o algoritmo de mineração Ethash usa é o Ethereum. O algoritmo foi desenvolvido neste projeto e é aí que ele evoluiu até agora. O projeto Ethereum Classic, Começar um hard fork Ethereum também manteve seu funcionamento com este algoritmo.

Lembre-se de que centenas de milhares de pessoas vivem em Ethereum fichas, como Maker, DAI ou stablecoins como Theter. Portanto, todos esses tokens usam, implicitamente, o mesmo algoritmo do Ethereum. Outros altcoins que usam Ethash são MusiCoin ou Callisto, para citar alguns projetos.