Сегодня майнинг Эфириума на видеокартах является нормой, и пока майнеры не сделали сильного рывка к запуску алгоритма майнинга Ethash на специализированных аппаратных решениях (например, FPGA и ASIC). Асики в сети есть, но они не дают такого большого преимущества, как на биткойнах.
Многие статьи и форумы объясняют это тем, что разработка ASIC для Ethash — это проблема с памятью).
Здесь мы поговорим о том, откуда взялась жесткая привязка памяти Ethereum и как может выглядеть следующее поколение специальных майнинговых устройств для майнинга ETH.
Здесь мы поговорим о том, откуда взялась жесткая привязка памяти Ethereum и как может выглядеть следующее поколение специальных майнинговых устройств для майнинга ETH.
Более техническое, ориентированное на программистов объяснение алгоритма майнинга Эфириума, называемого Ethash, см. на странице Ethash в репозитории Ethereum GitHub….
При майнинге с Proof-of-Work майнеры ищут решение (называемое одноразовым числом — «одноразовым номером»), которое при хешировании дает выходное значение, меньшее предопределенного целевого порога.
Из-за криптографической природы хеш-функции каждой валюты невозможно перепроектировать или вычислить одноразовое число («одноразовый номер»), которое удовлетворяет целевому пороговому пределу.
Вместо этого майнеры должны «угадывать и проверять» хэши как можно быстрее и надеяться, что они станут первыми майнерами во всей сети криптовалюты, которые найдут действительный одноразовый номер. Таким образом, они найдут новый блок.
Алгоритм Ethash основан на
Это называется файлом DAG и восстанавливается каждые 30 000 блоков (или каждые ~ 5 дней). По состоянию на сентябрь 2019 года размер DAG составляет примерно 3,22 ГБ, и размер DAG будет увеличиваться по мере роста блокчейна.
Особенности создания DAG не так актуальны для этой статьи, но подробнее о генерации DAG можно прочитать
Прогресс алгоритма хеширования Ethash можно резюмировать следующим образом:
<без индекса> рисунок>Принцип работы алгоритма хеширования Ethereum
Каждая операция микширования требует чтения 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-страниц является шагом ограничения скорости.
Единственный способ, которым оборудование для майнинга пользователей Ethereum может пригодиться, — это если оно будет более экономичным или энергоэффективным с пропускной способностью памяти (менее $/(ГБ/с) или меньше Вт/(ГБ/с)).
Глядя на RX 590, мы можем немного подсчитать (245 долларов США за карту/(256 ГБ/с)) и увидеть, что скорость хеширования составляет 0,95 долларов США/ГБ/с.
По сравнению с одним чипом GDDR5 (например,
Таким образом, если мы сможем создать собственный чип (либо ASIC, либо FPGA), чем интерфейс с 9 чипами GDDR5, мы будем иметь пропускную способность памяти 216 ГБ/с по цене 61,47$.
Однако это не будет полноценное устройство, так как нам потребуется контроллер памяти FPGA или ASIC, печатная плата и вспомогательная электроника.
Если отгруженная окончательная сборка (добавление дополнительных деталей, процессов, тестов и логистики) будет стоить меньше, чем RX 590 (всего 245 долларов), то пользовательская плата превзойдет видеокарту.
То есть до тех пор, пока на рынке не появится более быстрая, производительная и дешевая видеокарта.
Например,
Однако в этой ситуации вам, вероятно, следует изменить собственную бизнес-модель и вместо этого создавать видеокарты, так как это уже огромный рынок.
По мере роста использования смартфонов и мобильной 3D-графики мы увидим более удобный для мобильных устройств и более высокую пропускную способность памяти.
Это могут быть решения для мобильных систем на чипе со встроенным графическим процессором (например,
Эти классы устройств будут продолжать развиваться, и если стоимость, мощность и пропускная способность памяти окажутся в нужном месте, мы вполне можем увидеть специализированные майнеры Ethereum с 10-20 мобильными графическими процессорами или VPU, расположенными на одной плате.
Последовательные образцы страниц DAG в хеш-алгоритме Ethash достигают пределов пропускной способности памяти современного оборудования.
Их теоретический максимальный хешрейт в настоящее время ограничен.
Какими мы увидим будущих майнеров Ethereum? Вероятно, они не будут основаны на ASIC или FPGA. Скорее всего, они будут основаны на уже готовых чипах (мобильных GPU или VPU), а не на форм-факторе традиционной видеокарты, которую мы так привыкли видеть в современных компьютерах, потому что мобильные GPU или VPU больше настроены на пропускная способность памяти.
Эта статья о протоколе Ethash, основанном на Proof-of-Work, который используется для майнинга Ethereum. В системах, основанных на Proof-of-Work, таких как эта, майнеры выполняют значительный объем вычислений, чтобы найти новые блоки и получить денежное вознаграждение.
Как только сеть Ethereum перейдет на
Когда произойдет этот переход, пока не ясно, ожидается ли запуск первого этапа 3 января 2020 г.