Ethash: описание алгоритма

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

Содержание

Алгоритм Ethash

Ethash — это алгоритм хэширования, используемый в основанных на Ethereum валютах блокчейна. Это преемник Dagger Hashimoto, разработанный, чтобы быть устойчивым к ASIC. Алгоритм требует большого объема памяти, что не позволяет специализированному аппаратному обеспечению ASIC быть эффективным решением для майнинга. Ethash — это алгоритм хеширования Proof of Work, созданный специально для Ethereum (ETH). 

Ethash основан на предоставлении большого, временного, случайно сгенерированного набора данных, который формирует DAG (часть Dagger). Он предназначен для хэширования времени быстрой верификации в медленной среде только с процессором, но обеспечивает значительное ускорение майнинга при наличии большого объема памяти с высокой пропускной способностью. Большие требования к памяти означают, что крупномасштабные майнеры получают сравнительно небольшое суперлинейное преимущество. Требование высокой пропускной способности означает, что ускорение от накопления на многих сверхбыстрых процессорах, совместно использующих одну и ту же память, дает мало преимуществ по сравнению с одним модулем. Это важно в том смысле, что майнинг пула не приносит пользы узлам, выполняющим проверку, что препятствует централизации.

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

Алгоритм майнинга стимулирует конкуренцию за самое быстрое время для решения блока, известного как скорость хэширования. Специализированные и очень мощные компьютеры, известные как интегральные схемы (ASIC), были разработаны специально для майнинга биткоинов, выталкивая обычные компьютеры с процессором/графическим процессором из игры. Благодаря ASIC, основная мощность хэширования централизована на больших установках. Они подняли сложность до очень высокого уровня, а значит большое количество электроэнергии и вычислительной мощности тратится впустую.

Чтобы противостоять этому, Ethereum разработал алгоритм Ethash, который вводит жесткость памяти в качестве основы конкуренции для майнеров. Это означает, что для важнее всего иметь на компьютере память, а не скорость. Это избавляет от необходимости приобретать конкурентоспособные майнинг-установки. Если для майнинга требуется память и процессор, то лучшее оборудование для использования — это обычный компьютер, и, следовательно, рядовой ПК с достаточным объемом памяти может конкурировать на равных с любым другим.

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

Этапы, по которым идет алгоритм, выглядят следующим образом:

  1. Существует начальное число, которое можно вычисляется для каждого блока путем сканирования заголовков блоков до этой точки.
  2. На начальном этапе можно вычисляется псевдослучайный кэш размером 16 МБ, который хранят маленькие узлы.
  3. Из кэша генерируется набор данных объемом 1 ГБ со свойством, что каждый элемент в наборе данных зависит только от небольшого количества элементов из кэша. Полные клиенты и майнеры хранят этот набор данных, который растет линейно со временем.
  4. Майнинг включает в себя сбор случайных фрагментов набора данных и их хэширование. Проверка может быть проведена с малым объемом памяти, используя кэш для регенерации определенных необходимых частей набора данных.

Большой набор данных обновляется один раз каждые 30000 блоков, поэтому подавляющее большинство майнеров читают данные, а не вносят в них изменения.

Ethash DAG

Ethash использует DAG (ориентированный ациклический граф) для доказательства алгоритма работы. Он генерируется для каждой эпохи, то есть каждые 30000 блоков (125 часов, около 5,2 дня). Создание DAG занимает много времени. Если клиенты генерируют его только по запросу, можно наблюдать длительное ожидание при каждом переходе эпох, прежде чем будет найден первый блок новой эпохи. Однако DAG зависит только от номера блока, поэтому его можно и нужно рассчитывать заранее, чтобы избежать длительного времени ожидания при каждом переходе. Если майнеры не будут заранее кэшировать пакеты, сеть может испытывать огромную задержку при каждом переходе эпох. Обратите внимание, что DAG не нужно генерировать для проверки PoW, что позволяет выполнять проверку как с низкой загрузкой ЦП, так и с небольшой памятью.

Завершение обзора

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

На этом все и до новых встреч!

Материалы по теме

bitcoin

Bitcoin (BTC)

$ 71,219.00
ethereum

Ethereum (ETH)

$ 3,592.24
cardano

Cardano (ADA)

$ 0.655541

Новости

Лидеры мнений

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь