Ethash:как это работает при майнинге Ethereum

Ethash:как это работает при майнинге Ethereum

Сегодня майнинг Эфириума на видеокартах является нормой, и пока майнеры не сделали сильного рывка к запуску алгоритма майнинга Ethash на специализированных аппаратных решениях (например, FPGA и ASIC). Асики в сети есть, но они не дают такого большого преимущества, как на биткойнах.

Многие статьи и форумы объясняют это тем, что разработка ASIC для Ethash — это проблема с памятью).

Здесь мы поговорим о том, откуда взялась жесткая привязка памяти Ethereum и как может выглядеть следующее поколение специальных майнинговых устройств для майнинга ETH.

Здесь мы поговорим о том, откуда взялась жесткая привязка памяти Ethereum и как может выглядеть следующее поколение специальных майнинговых устройств для майнинга ETH.

Более техническое, ориентированное на программистов объяснение алгоритма майнинга Эфириума, называемого Ethash, см. на странице Ethash в репозитории Ethereum GitHub….

Краткое объяснение Proof-of-Work

При майнинге с Proof-of-Work майнеры ищут решение (называемое одноразовым числом — «одноразовым номером»), которое при хешировании дает выходное значение, меньшее предопределенного целевого порога.

Из-за криптографической природы хеш-функции каждой валюты невозможно перепроектировать или вычислить одноразовое число («одноразовый номер»), которое удовлетворяет целевому пороговому пределу.

Вместо этого майнеры должны «угадывать и проверять» хэши как можно быстрее и надеяться, что они станут первыми майнерами во всей сети криптовалюты, которые найдут действительный одноразовый номер. Таким образом, они найдут новый блок.

Как работает алгоритм Ethash

DAG-файл

Алгоритм Ethash основан на псевдослучайном набор данных инициализирован текущей длиной цепочки блоков.

Это называется файлом DAG и восстанавливается каждые 30 000 блоков (или каждые ~ 5 дней). По состоянию на сентябрь 2019 года размер DAG составляет примерно 3,22 ГБ, и размер DAG будет увеличиваться по мере роста блокчейна.

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

Прогресс алгоритма хеширования Ethash можно резюмировать следующим образом:

<без индекса>

Принцип работы алгоритма хеширования Ethereum

  1. Предварительно обработанный заголовок — предварительно обработанный заголовок (полученный из последнего блока) и Current Nonce (текущий одноразовый номер ), в сочетании с использованием алгоритма, подобного SHA-3, для создания наших начальных 128 байт микса, называются здесь Mix-0.
  2. Комбинация используется для вычисления того, какую 128-байтовую страницу из группы DAG необходимо извлечь, представленную блоком «Получить страницу DAG».
  3. Смешать объединяется с результирующей страницей DAG. Это делается с помощью функции смешивания, характерной для Ethereum, для создания следующего микса, который здесь называется Микс 1.
  4. Шаги 2 и 3 повторяются 64 раза, в результате получается 64 микса.
  5. Микс 64 подвергается постобработке для создания более короткого 32-байтового дайджеста микса.
  6. Дайджест микса сравнивается с предопределенным 32-байтовым целевым порогом. (целевой порог). Если Mix Digest меньше или равен Target Threshold, то текущий нетекущий номер (Current Nonce) считается успешным и будет транслироваться в сеть Ethereum. В противном случае текущий одноразовый номер считается недействительным, и алгоритм перезапускается с другим одноразовым номером (либо путем увеличения текущего одноразового номера, либо путем случайного выбора нового).

Почему Ethash привязан к памяти?

Каждая операция микширования требует чтения 128 байтов из DAG (см. рис. 1, шаг 2).

Для хеширования одного одноразового числа требуется 64 смешивания, в результате чего (128 байт x 64) =8 КБ чтения памяти. Чтение с произвольным доступом (каждая 128-байтная страница выбирается псевдослучайно на основе функции микширования), поэтому помещение небольшого фрагмента DAG в кэш L1 или L2 мало поможет, так как следующая выборка DAG, скорее всего, приведет к отсутствие кеша.

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

Лучший способ ускорить хэш-алгоритм Ethash — ускорить выборку 128-байтной страницы DAG из памяти.

Таким образом, мы считаем алгоритм Ethash жестко привязанным к памяти или связанным с памятью , так как пропускная способность системной памяти ограничивает нашу производительность.

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

В качестве примера того, как ограничения пропускной способности памяти влияют на реальное оборудование, давайте подробнее рассмотрим производительность майнинга широко используемой видеокарты:RX 590.

<без индекса>

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

Мы можем рассчитать этот максимальный теоретический хешрейт следующим образом:

(пропускная способность памяти) / (память DAG, извлекаемая для хеширования) =максимальная теоретическая скорость хеширования

(256 гигабайт/сек) / (8 килобайт/хэш) =32 мегабайта/сек.

Эмпирический хешрейт RX 490 при реальной работе ~ 31 мега/с.

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

Победа над видеокартами:следующее поколение майнинговых устройств для добычи ETH

Единственный способ, которым оборудование для майнинга пользователей Ethereum может пригодиться, — это если оно будет более экономичным или энергоэффективным с пропускной способностью памяти (менее $/(ГБ/с) или меньше Вт/(ГБ/с)).

Вариант 1:FPGA/ASIC с высокой пропускной способностью памяти

Глядя на RX 590, мы можем немного подсчитать (245 долларов США за карту/(256 ГБ/с)) и увидеть, что скорость хеширования составляет 0,95 долларов США/ГБ/с.

По сравнению с одним чипом GDDR5 (например, Micron EDW4032BABG ), который стоит $6,83 и имеет пропускную способность 24 ГБ/с, мы можем сделать лучше — $0,28/ГБ/с.

Таким образом, если мы сможем создать собственный чип (либо ASIC, либо FPGA), чем интерфейс с 9 чипами GDDR5, мы будем иметь пропускную способность памяти 216 ГБ/с по цене 61,47$.

Однако это не будет полноценное устройство, так как нам потребуется контроллер памяти FPGA или ASIC, печатная плата и вспомогательная электроника.

Если отгруженная окончательная сборка (добавление дополнительных деталей, процессов, тестов и логистики) будет стоить меньше, чем RX 590 (всего 245 долларов), то пользовательская плата превзойдет видеокарту.

То есть до тех пор, пока на рынке не появится более быстрая, производительная и дешевая видеокарта.

Например, видеокарты HBM уже доступны. Но если вы найдете недорогие готовые микросхемы FPGA или ASIC с 5-10 контроллерами памяти DDR или HBM или у вашей компании есть опыт создания специализированных ASIC-устройств с высокой пропускной способностью памяти, вы можете обойтись без аппаратного обеспечения.

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

Вариант 2. Использование мобильных чипсетов следующего поколения

По мере роста использования смартфонов и мобильной 3D-графики мы увидим более удобный для мобильных устройств и более высокую пропускную способность памяти.

Это могут быть решения для мобильных систем на чипе со встроенным графическим процессором (например, NVidia Tegra X1 ) или автономный мобильный графический процессор (например, PowerVR Series 8XE ), или специализированные процессоры с высокой пропускной способностью или ориентированные на нейронные сети со встроенной памятью (например, Movidius Myriad 2 ).

Эти классы устройств будут продолжать развиваться, и если стоимость, мощность и пропускная способность памяти окажутся в нужном месте, мы вполне можем увидеть специализированные майнеры Ethereum с 10-20 мобильными графическими процессорами или VPU, расположенными на одной плате.

Выводы

Последовательные образцы страниц DAG в хеш-алгоритме Ethash достигают пределов пропускной способности памяти современного оборудования.

Их теоретический максимальный хешрейт в настоящее время ограничен.

Какими мы увидим будущих майнеров Ethereum? Вероятно, они не будут основаны на ASIC или FPGA. Скорее всего, они будут основаны на уже готовых чипах (мобильных GPU или VPU), а не на форм-факторе традиционной видеокарты, которую мы так привыкли видеть в современных компьютерах, потому что мобильные GPU или VPU больше настроены на пропускная способность памяти.

Эта статья о протоколе Ethash, основанном на Proof-of-Work, который используется для майнинга Ethereum. В системах, основанных на Proof-of-Work, таких как эта, майнеры выполняют значительный объем вычислений, чтобы найти новые блоки и получить денежное вознаграждение.

Как только сеть Ethereum перейдет на Proof-of-Stake системы (предположительно после 2020 г. с фазой Ethereum 2.0 или Serenity ), денежное вознаграждение будет выплачиваться держателям валюты Ethereum, а не майнерам, что, вероятно, сделает добычу Ethereum устаревшей.

Когда произойдет этот переход, пока не ясно, ожидается ли запуск первого этапа 3 января 2020 г.

Рекомендуемые статьи по теме:

  • NoDevFee (NoFee) — Как отключить комиссию в майнере
  • ATIFlash / ATI WinFlash (редактор BIOS) – Скачать
  • OhGodAnETHlargementPill (EthlargementPill) — повышенный хешрейт в GPU для майнинга NVIDIA
  • OverdriveNTool (программное обеспечение для разгона графического процессора) — загрузите и настройте
  • Как майнить Monero (XMR) на алгоритме RandomX

Добыча полезных ископаемых
  1. Блокчейн
  2. Биткойн
  3. Ethereum
  4. Обмен цифровой валюты
  5. Добыча полезных ископаемых