Ethash
Ethash — это алгоритм хеширования, используемый в криптовалютах для доказательства выполнения работы (Proof-of-Work, PoW). Он был разработан командой Ethereum в 2014 году как альтернатива алгоритму SHA-256, применяемому в Bitcoin, с целью снижения эффективности специализированного оборудования (ASIC) и демократизации майнинга за счёт использования видеокарт (GPU).
История
Ethash был впервые реализован в протоколе Ethereum в 2015 году, при запуске основной сети (Frontier). Его создание было ответом на централизацию майнинга Bitcoin, где доминирование ASIC-майнеров сделало добычу криптовалюты недоступной для обычных пользователей. Разработчики Ethereum, в частности Гэвин Вуд и Виталик Бутерин, стремились создать алгоритм, который был бы «устойчивым к ASIC» (ASIC-resistant), то есть требовал бы большого объёма памяти, что делало бы производство специализированных чипов экономически невыгодным.
Алгоритм базировался на более ранней разработке — Dagger-Hashimoto, предложенной Виталиком Бутериным. Ethash объединил идеи Dagger (использование направленного ациклического графа для генерации данных) и Hashimoto (зависимость от объёма памяти). В 2016 году, после хардфорка Homestead, алгоритм был доработан, но его базовая структура осталась неизменной.
В сентябре 2022 года Ethereum перешёл на алгоритм консенсуса Proof-of-Stake (PoS) в рамках обновления The Merge, после чего майнинг на Ethash для основной сети Ethereum был прекращён. Однако алгоритм продолжил использоваться в форках Ethereum (Ethereum Classic, EthereumPoW) и других криптовалютах (например, Expanse, Ellaism, Ubiq).
Принцип работы
Ethash относится к классу алгоритмов, чувствительных к объёму памяти (memory-hard). Это означает, что для вычисления хеша требуется не только высокая производительность процессора, но и доступ к большому объёму быстрой памяти (VRAM видеокарты).
Генерация DAG
Ключевым элементом Ethash является DAG (Directed Acyclic Graph — направленный ациклический граф) — набор данных, который генерируется один раз для каждой эпохи (эпоха в Ethereum — 30 000 блоков, примерно 5,5 дней). DAG представляет собой псевдослучайную последовательность данных размером от 1 ГБ (на старте) до более 4 ГБ (к моменту перехода на PoS). Размер DAG увеличивается с каждой эпохой, что делает майнинг на видеокартах с малым объёмом памяти (менее 4 ГБ) невозможным после определённого момента.
Процесс генерации DAG включает:
- Seed-хеш — вычисляется на основе номера эпохи.
- Кэш — массив данных размером 16 МБ, создаваемый из seed-хеша.
- DAG — генерируется из кэша путём многократного применения хеш-функции SHA-3 (Keccak-256) и операций XOR.
Вычисление хеша
Для каждого нового блока майнер выполняет:
- Чтение из DAG — алгоритм случайным образом выбирает два элемента из DAG, используя заголовок блока и nonce (число, которое майнер подбирает).
- Смешивание — выбранные данные комбинируются с помощью операций XOR и хеш-функции.
- Проверка — полученный 256-битный хеш сравнивается с целевым значением (сложностью сети). Если хеш меньше целевого значения, блок считается найденным.
Из-за необходимости постоянного обращения к DAG (до 64 раз за один хеш) алгоритм требует высокой пропускной способности памяти (bandwidth), что делает его неэффективным для ASIC, где память дорога и сложна в интеграции.
Характеристики
- Тип хеш-функции: SHA-3 (Keccak-256) с модификациями.
- Размер DAG: растёт линейно с каждой эпохой (примерно на 8 МБ за эпоху).
- Требования к памяти: минимальный объём VRAM — 2 ГБ (для ранних эпох), к концу существования Ethereum — 4+ ГБ.
- Сложность: динамически регулируется каждые 30 000 блоков.
- Скорость хеширования: измеряется в мегахешах в секунду (MH/s) для GPU и гигахешах (GH/s) для ASIC (если они существуют).
Применение
Майнинг на GPU
Ethash был оптимизирован для работы на видеокартах (GPU) с архитектурой, поддерживающей OpenCL или CUDA. Наибольшую эффективность показывали карты AMD (серии RX 400/500 и Vega) и NVIDIA (серии GTX 10xx, RTX 20xx/30xx). Для майнинга использовались специализированные программы (майнеры), такие как Claymore, PhoenixMiner, NBMiner, T-Rex.
ASIC-майнеры
Несмотря на изначальную устойчивость к ASIC, уже в 2018 году компания Bitmain выпустила первый ASIC-майнер для Ethash — Antminer E3. Однако его эффективность была незначительно выше GPU, и он быстро устарел из-за роста размера DAG. Позднее появились более мощные модели (например, Innosilicon A10 Pro), но они не смогли полностью вытеснить GPU-майнинг.
Альтернативные криптовалюты
После перехода Ethereum на PoS алгоритм Ethash продолжил использоваться в:
- Ethereum Classic (ETC) — форк Ethereum, сохранивший PoW.
- EthereumPoW (ETHW) — форк, созданный в 2022 году.
- Expanse, Ellaism, Ubiq — небольшие проекты на базе Ethereum.
Критика
Основные претензии к Ethash связаны с:
- Ростом размера DAG — это делало майнинг невозможным на старых видеокартах с малым объёмом памяти, что противоречило идее децентрализации.
- Энергопотреблением — как и все PoW-алгоритмы, Ethash требовал значительных затрат электроэнергии (до 100 ТВт·ч в год на пике майнинга Ethereum).
- Появлением ASIC — хотя алгоритм был задуман как ASIC-resistant, производители нашли способы обойти ограничения, что привело к централизации хешрейта.
Интересные факты
- Название «Ethash» происходит от «Ethereum hash».
- DAG для Ethash генерируется заново каждые 30 000 блоков, что занимает от 5 до 30 минут на GPU.
- В 2021 году, на пике популярности майнинга Ethereum, хешрейт сети достигал 1 ПХ/с (петахеш в секунду).
- После перехода на PoS майнеры Ethereum переключились на другие криптовалюты, такие как Ravencoin (алгоритм KawPow) и Ergo (Autolykos).
Источники
- Ethereum Whitepaper (Vitalik Buterin, 2014)
- Ethereum Yellow Paper (Gavin Wood, 2014)
- Спецификация Ethash на GitHub (Ethereum Foundation)
- Статья «Ethash: The Ethereum Proof-of-Work Algorithm» (Ethereum Wiki)
- Данные о хешрейте и DAG (Etherscan, CoinMetrics)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →