В этой статье я расскажу про алгоритм Ethash, который используется для майнинга различных криптовалют, но главная из них это, конечно, Ethereum. Ethash - это Proof of Work (PoW) алгоритм, который является последней версией алгоритма Dagger-Hashimoto, хотя его больше нельзя назвать таковым, так как многие из исходных функций обоих алгоритмов были кардинально изменены.
Термин Proof of Work означает, что майнеры ищут решение (“nonce” или одноразовый номер), которое при хешировании выдаст значение меньше целевого порога, который предварительно задан. Из-за криптографического характера хеш-функции практически невозможно обратное вычисление одноразового номера (“nonce”), удовлетворяющего целевому пороговому пределу. Только если вручную перебирать все возможные варианты.
Алгоритм Dagger-Hashimoto был придуман путем соединения алгоритма Dagger - Виталика Бутерина (одного из основателей Ethereum) и алгоритма Hashimoto Thaddeus Dryja. Он создавался, для того чтобы затруднить майнинг для ASIC-оборудования (Application Specific Integrated Circuits), а также для того, чтобы была легкая проверка и полное хранение в цепочке.
Затруднение майнинга для ASIC-оборудования необходимо, чтобы дать возможность добывать монеты пользователям, у которых нет достаточного объема капитала для покупки таких устройств.
Многие знают, что в данный момент майнинг монет Bitcoin невозможен даже на очень мощном компьютере. Это вызвано тем, что существует большое количество майнинговых ферм, состоящих из ASIC-оборудования, и имеющие гораздо большие вычислительные мощности чем любой персональный компьютер. Именно этой ситуации старались избежать разработчики алгоритма Dagger-Hashimoto и, соответственно, Ethash.
Что же такое ASIC-устройство? Это специальное оборудование, которое создается на основе интегральных схем, специально разработанных для майнинга монет. Мощность такого устройства сравнима с общей мощностью нескольких самых продвинутых видеокарт, однако при этом энергопотребление значительно ниже.
Создание больших ферм на ASIC-оборудовании негативно влияет на блокчейн, так как значительно уменьшает уровень децентрализации. А децентрализация необходима для надежности криптовалюты. С помощью равномерной рассредоточенности узлов блокчейна и многократному дублированию файлов платформы, получается создать систему, которая будет невосприимчива к блокировке, удалению, изменению и хакерским атакам.