Алгоритм Ethash

Обзор алгоритма Ethash

В этой статье я расскажу про алгоритм 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-оборудовании негативно влияет на блокчейн, так как значительно уменьшает уровень децентрализации. А децентрализация необходима для надежности криптовалюты. С помощью равномерной рассредоточенности узлов блокчейна и многократному дублированию файлов платформы, получается создать систему, которая будет невосприимчива к блокировке, удалению, изменению и хакерским атакам.

В итоге, появление ASIC-устройств вынудило пользователей, у которых нет достаточного капитала для их покупки, перестать майнить Bitcoin. По прогнозам некоторых аналитиков, в скором времени Bitcoin будут майнить только крупные ASIC-фермы, что приведет к централизации.

Как уже было сказано выше, алгоритм Ethash создавался с целью предотвратить появление ASIC-устройств для майнинга на этом алгоритме. Но в начале 2018 года компания Bitmain анонсировала выпуск первых ASIC-устройств для Ethash. Однако Ethereum решительно выступил против перспективы доминирования этих устройств в их сети, что привело к разговору о «брикетировании» этого оборудования. Брикетирование это технологическое обновление сети, которое делает аппаратное обеспечение бесполезным или даже сломанным, если оно подключено к сети. Из-за этого майнеры на таком оборудование были вынуждены скрыть свое присутствие и снизить мощность хеширования своих устройств. Также план Ethereum по переходу на технологию PoW/PoS (гибрид Proof of Work и Proof of Stake) c просто PoW делает разработку ASIC устройств для Ethash очень рискованным для производителей.

Принцип работы алгоритма Ethash

В основе Ethash лежит особый граф, состоящий из последовательных узлов. Граф можно представить в виде своеобразного дерева, обладающего большим числом ответвлений. Эта особенность заметно усложняет создание ASIC-устройств для работы с этим алгоритмом. Поэтому для майнинга монет, основанных на Ethash, можно применять лишь видеокарты. 

В начале процесса майнинга на память видеокарт загружается специальный DAG файл. Размер этого файла постоянно увеличивается и чем больше существует криптовалюта, тем размер большое. Поэтому необходимо помнить, что чем объемнее DAG файл, тем более мощная видеокарта нужна для добычи этой криптовалюты.

Размер DAG-файла увеличивается каждый раз, когда создаются новые 30000 блоков. На данный момент размер DAG файла для Ethereum около 3,5 Гб. Это означает, что скоро видеокарты на 4 Гб не смогут заниматься майнингом этой монеты. Еще более печальная ситуация была у Ethereum classic, когда размер DAG приблизился к 3,96 Гб. В тот момент было принято решения уменьшить размер файла до ~2,5 Гб. Это было необходимо сделать, так как большая часть майнеров использовала видеокарты на 4 Гб и, соответственно, они бы не смогли майнить, что привело бы к централизации майнинга у крупных игроков и уменьшению надежности криптовалюты.

Теперь перейду к описанию алгоритма хэширования Ethash:

87951bffa830f0b1d9a9938bf27c7aa0.png

Процесс состоит из 6 основных этапов:

  1. На вход алгоритму подается препроцессированый заголовок, полученный из последнего блока и «nonce». «Nonce» число, выбранное случайным или псевдослучайным образом. Это подается на SHA-3 подобную функцию, которая создает 128 байтный микс.

  2. Далее этот микс используется для того, чтобы определить какую 128-байтную страницу из DAG нужно извлечь.

  3. Полученная страница сочетается с миксом с помощью специальной функции смешивания

  4. 2 и 3 шаг повторяется 64 раза

  5. Полученный в итоге микс обрабатывается для получения более короткого 32-байтного дайджест микса. 

  6. В конце дайджест микс сравнивается с целевым порогом. Если дайджест микс меньше или равен порогу, то «nonce» считается успешным и транслируется в сеть Ethereum. Если же дайджест микс больше порога, то выбирается новый «nonce» путем рандомного выбора или прибавлением единицы к старому «nonce». И потом алгоритм перезапускается с новым значением «nonce».

Майнинг с помощью алгоритма Ethash

Майнинг на алгоритме Ethash можно производить как на CPU, так и на GPU. Однако, майнинг на CPU практически не приносит прибыли, так как GPU гораздо эффективнее. Также я упоминал про майнинг на ASIC-устройствах и FPGA, которые в настоящее время способны к интеллектуальному анализу Ethash, однако они неэффективны по сравнению с графическими процессорами и не приветствуются как сообществом, так и разработчиками. Поэтому наиболее выгодным является майнинг на GPU.

Ethash занимает мало памяти, однако требует не менее 2–3 ГБ ОЗУ на каждый используемый графический процессор. GPU от компании AMD обычно показывают лучшие результаты, чем GPU от компании Nvidia. Для того чтобы начать майнить, необходимо скачать специальную программу, например  Ethminer.

Майнинг в пуле также очень популярный способ добычи криптовалют. Он позволяет людям с низкими вычислительными мощностями участвовать в майнинге и получать с этого какую то прибыль. За это создатели пулов берут какой-то процент, обычно в районе 1–2% от дохода.

Далее сравним основные способы майнинга:

Способ

Суть

Минусы

Плюсы

Самостоятельный майнинг

Майнер приобретает оборудование самостоятельно

1. Затраты на видеокарты

2. Шум от оборудования

3. Самостоятельный сбор и настройка фермы

4. Затраты на электроэнергию

5. Риск поломки оборудования

Майнер получает все деньги

Майнинг через пул

Майнер приобретает оборудование самостоятельно и подключается к пулу

1. Затраты на видеокарты

2. Шум от оборудования

3. Самостоятельный сбор и настройка фермы

4. Затраты на электроэнергию

5. Риск поломки оборудования

Есть разные схему распределения прибыли, однако чаще всего это выгоднее чем самостоятельный майнинг

Облачный майнинг

Майнер арендует вычислительные мощности

1. Плата за аренду

Нет минусов связанных с покупкой, настройкой и обслуживанием оборудования.

Монеты на основе алгоритма Ethash

В настоящее время алгоритм Ethash используется во многих криптовалютах. Но самым популярными из них являются:

  1. Ethereum

  2. Ethereum Classic

  3. Expanse

  4. Ubiq

Далее мы более подробно рассмотрим каждую из них:

  1. Ethereum. Это вторая по популярности криптовалюта после Bitcoin. Ее капитализация составляет 67,5 млрд $, что сопоставимо с капитализацией Газпрома. Одним из основателей является выходец из Коломны Виталик Бутерин. Эта платформа позволяет создавать собственные токены, создавать и применять умные контракты и собственные децентрализованные онлайн сервисы и приложения.

  2. Ethereum Classic. Эта криптовалюта появилась в результате несогласия некоторых пользователей с хард-форком оригинального Ethereum. Он произошел из-за того, что один хакер нашел уязвимость и воспользовался ею, чтобы украсть около 50 млн $. Разработчики в свою очередь выпустили обновление, убирающее эту уязвимость, а также позволившее вернуть украденные деньги владельцам. Часть людей посчитало, что злоумышленник не нарушал никаких правил. А так как платформа является децентрализованной, то никто не имеет право вносить в нее изменения. И поэтому они высказались против обновления. И в итоге это привело к созданию Ethereum Classic.

  3. Expanse. Появление этой криптовалюты произошло в 2015 году из-за форка Ethereum. Эта криптовалюта является платежным средством на децентрализованной платформе Expanse Tech, которая создавалась для создания онлайн сервисов. Эта криптовалюта уникальна тем, что все решения о развитие сети принимаются только участниками путем голосования. Если большинство решит, что обновление плохое, то его отменят.

  4. Ubiq. Эта криптовалюта появилась в результате очередного форка Ethereum в 2017 году. Команда разработчиков совершенствует исходный код для того, чтобы криптовалюта обладала более высоким уровнем гибкости и надежности, по сравнению с Ethereum. Платформа была создана для того, чтобы создать среду защищенную от форков для частного использования, так и для бизнеса. Однако у многих аналитиков есть сомнения в полезности этой криптовалюты, так как она не несет в себе ничего нового.

Заключение

Сегодня много различных криптовалют основаны на алгоритме Ethash. Это объясняется рядом причин. Во-первых, код алгоритма находится в свободном доступе. Во-вторых, она позволяет предотвратить или сильно уменьшить возможности создания ASIC-устройств для него, что в свою очередь позволяет сделать платформу децентрализованной. Из-за этого она более надежна и позволяет зарабатывать на майнинге не только крупным игрокам, но и рядовым пользователям. Однако есть и ограничения, связанные с высокими требованиями к оперативной памяти для графического процессора.

Список источников:

  1. http://promining.su/kriptovalyuty-na-ethash/

  2. https://altcoinlog.com/algoritm-ethash-dagger-hashimoto/#i-3

  3. https://crypta.guru/kriptovalyuty/algoritm-ethash/

  4. https://cryptomagic.ru/kriptovaluty/ethereum/algoritm.html

  5. https://eth.wiki/en/concepts/ethash/ethash/

© Habrahabr.ru