Tabela de Conteúdos
ToggleEm qualquer conversa sobre o Ethereum, deves ter ouvido falar do Ethash. Este é o algoritmo que torna o Ethereum possível. Este algoritmo faz uso de técnicas de computador muito avançadas que aumentam o nível de segurança na rede.
Outra forma de chamar este algoritmo é pelo nome de Ethash-Dagger-Hashimoto. Este foi o nome que adotou quando foi criado, no entanto mudou e evoluiu muito desde então. Neste artigo veremos o que oferece e como funciona.
Embora o seu nome completo seja Ethash-Dagger-Hashimoto, devemos notar que Dagger-Hashimoto se refere ao algoritmo minério que serviu de base para a criação do atual Ethash. Este algoritmo visava criar um mecanismo seguro baseado na resistência à mineração ASIC e na eficiência que traz por ser altamente verificável por clientes ligeiros.
Os criadores deste algoritmo são Vitalik Buterin e Thaddeus Dryja. Ambos desenvolveram este sistema entre 2013 e 2014. Este algoritmo começa a partir de dois algoritmos diferentes, daí o seu nome composto. O primeiro, Dragger, é um algoritmo desenvolvido pelo próprio criador de Ethereum Buterin. Este algoritmo faz uso de gráficos acíclicos direcionados (DAGs) para criar uma estrutura de dados maciça.
No início do seu desenvolvimento, a estrutura do algoritmo ocupou um espaço aproximado de 1 Gb em armazenamento, no entanto, ao longo dos anos o seu armazenamento foi estendido para 4 Gb ou 5 Gb. A estrutura deste algoritmo permite o funcionamento do processo de mineração Hashimoto, o algoritmo de que falaremos a seguir.
Hashimoto é o segundo algoritmo de base Ethash desenvolvido por Thaddeus Dryja com o objetivo de ser capaz de adicionar a resistência ASIC ao sistema em que é implementado, e também, para realizar a mineração dos hash. Tudo isto é possível, uma vez que o mesmo algoritmo aumenta o consumo de RAM e, assim, limita o ASICS.
Da união de ambos os algoritmos vem outro algoritmo único que oferece a capacidade de desenhar um novo sistema mineração tão complexo que os mineiros da ASIC não podem implementá-lo eficazmente. Na verdade, a sua estrutura é tão avançada que muitos programadores tentam implementá-la como uma alternativa ao Scrypt. No entanto, Dragger-Hashimoto nem sempre foi o que é hoje. Como tudo o resto, apresentou várias falhas que o tornaram o algoritmo atual. Lá em baixo veremos como funciona.
A operação de Ethash é completamente diferente da operação base do algoritmo em que se baseia, Dragger-Hashimoto. No entanto, existem algumas características fundamentais que ainda se mantêm.
Como início do algoritmo, cria uma semente calculada através dos cabeçalhos de bloco até ao início da mineração. A semente acima é então usada para calcular e criar uma cache pseudoaleatória com um tamanho exato de 16 MB. Uma vez criado, é usado para criar um conjunto de dados que abrange mais de 4 GB. Estes dados são o que chamamos de “DAG“.
O DAG é atualizado a cada 30 mil blocos variando para cada temporada de mineração. O processo de mineração começa com a criação do DAG. Durante a mineração, os valores aleatórios são retirados do DAG e estes são combinados com dados fornecidos pela rede e com o resto das transações a serem verificadas. Para a fase final, a verificação é realizada através de um processo que gera partes específicas do conjunto de dados anteriores usando a cache para acelerar esse processo.
Para chegar à operação atual, Ethash viveu 23 versões do seu algoritmo. No entanto, há aspetos que não mudaram, como a utilização das funções Keccak-256 e Keccak-512. Este é o algoritmo do qual o que conhecemos hoje como o padrão SHA-3 foi derivado.
Quando vemos um número tão elevado de atualizações, podemos pensar que os desenvolvedores não estão satisfeitos ou que o projeto está incompleto. No entanto, cada atualização corresponde a uma resolução de problemas que o algoritmo pode apresentar. Foram realizadas atualizações para melhorar, proteger e corrigir o algoritmo, mas acima de tudo, para aumentar a dificuldade de implementação na ASIC. Desta forma, foi criado um algoritmo cada vez mais amigo da GPU.
Como qualquer sistema informático, o Ethash tem vantagens e desvantagens que o diferenciam de outros algoritmos. Abaixo veremos o mais notável:
Vantagens:
Desvantagens:
Tabela de Conteúdos
ToggleEm qualquer conversa sobre o Ethereum, deves ter ouvido falar do Ethash. Este é o algoritmo que torna o Ethereum possível. Este algoritmo faz uso de técnicas de computador muito avançadas que aumentam o nível de segurança na rede.
Outra forma de chamar este algoritmo é pelo nome de Ethash-Dagger-Hashimoto. Este foi o nome que adotou quando foi criado, no entanto mudou e evoluiu muito desde então. Neste artigo veremos o que oferece e como funciona.
Embora o seu nome completo seja Ethash-Dagger-Hashimoto, devemos notar que Dagger-Hashimoto se refere ao algoritmo minério que serviu de base para a criação do atual Ethash. Este algoritmo visava criar um mecanismo seguro baseado na resistência à mineração ASIC e na eficiência que traz por ser altamente verificável por clientes ligeiros.
Os criadores deste algoritmo são Vitalik Buterin e Thaddeus Dryja. Ambos desenvolveram este sistema entre 2013 e 2014. Este algoritmo começa a partir de dois algoritmos diferentes, daí o seu nome composto. O primeiro, Dragger, é um algoritmo desenvolvido pelo próprio criador de Ethereum Buterin. Este algoritmo faz uso de gráficos acíclicos direcionados (DAGs) para criar uma estrutura de dados maciça.
No início do seu desenvolvimento, a estrutura do algoritmo ocupou um espaço aproximado de 1 Gb em armazenamento, no entanto, ao longo dos anos o seu armazenamento foi estendido para 4 Gb ou 5 Gb. A estrutura deste algoritmo permite o funcionamento do processo de mineração Hashimoto, o algoritmo de que falaremos a seguir.
Hashimoto é o segundo algoritmo de base Ethash desenvolvido por Thaddeus Dryja com o objetivo de ser capaz de adicionar a resistência ASIC ao sistema em que é implementado, e também, para realizar a mineração dos hash. Tudo isto é possível, uma vez que o mesmo algoritmo aumenta o consumo de RAM e, assim, limita o ASICS.
Da união de ambos os algoritmos vem outro algoritmo único que oferece a capacidade de desenhar um novo sistema mineração tão complexo que os mineiros da ASIC não podem implementá-lo eficazmente. Na verdade, a sua estrutura é tão avançada que muitos programadores tentam implementá-la como uma alternativa ao Scrypt. No entanto, Dragger-Hashimoto nem sempre foi o que é hoje. Como tudo o resto, apresentou várias falhas que o tornaram o algoritmo atual. Lá em baixo veremos como funciona.
A operação de Ethash é completamente diferente da operação base do algoritmo em que se baseia, Dragger-Hashimoto. No entanto, existem algumas características fundamentais que ainda se mantêm.
Como início do algoritmo, cria uma semente calculada através dos cabeçalhos de bloco até ao início da mineração. A semente acima é então usada para calcular e criar uma cache pseudoaleatória com um tamanho exato de 16 MB. Uma vez criado, é usado para criar um conjunto de dados que abrange mais de 4 GB. Estes dados são o que chamamos de “DAG“.
O DAG é atualizado a cada 30 mil blocos variando para cada temporada de mineração. O processo de mineração começa com a criação do DAG. Durante a mineração, os valores aleatórios são retirados do DAG e estes são combinados com dados fornecidos pela rede e com o resto das transações a serem verificadas. Para a fase final, a verificação é realizada através de um processo que gera partes específicas do conjunto de dados anteriores usando a cache para acelerar esse processo.
Para chegar à operação atual, Ethash viveu 23 versões do seu algoritmo. No entanto, há aspetos que não mudaram, como a utilização das funções Keccak-256 e Keccak-512. Este é o algoritmo do qual o que conhecemos hoje como o padrão SHA-3 foi derivado.
Quando vemos um número tão elevado de atualizações, podemos pensar que os desenvolvedores não estão satisfeitos ou que o projeto está incompleto. No entanto, cada atualização corresponde a uma resolução de problemas que o algoritmo pode apresentar. Foram realizadas atualizações para melhorar, proteger e corrigir o algoritmo, mas acima de tudo, para aumentar a dificuldade de implementação na ASIC. Desta forma, foi criado um algoritmo cada vez mais amigo da GPU.
Como qualquer sistema informático, o Ethash tem vantagens e desvantagens que o diferenciam de outros algoritmos. Abaixo veremos o mais notável:
Vantagens:
Desvantagens: