Алгоритм майнинга Dagger-Hashimoto (Ethash)

Алгоритм майнинга Dagger-Hashimoto (Ethash)
0

Разработан Ethereum для консенсуса в сети методом доказательства работы (Proof-of-Work). Отличается от метода хэширования Bitcoin (где используется двойной SHA-256), стремясь быть неэффективным для майнинга на ASIC. Использует направленные ациклические графы (DAG).

История появления

Виталик Бутерин, основатель Эфириума, предложил алгоритм Dagger – с такой структурой не требуется много памяти для валидации состояний, но она необходима в большом объеме для вычислений. Вкратце: каждая небольшая часть дерева данных получает собственный нонс (nonce), что ускоряет проверку; а вычисление всех ответвлений дерева затруднительно для CPU (центральных процессоров), но эффективно, если использовать GPU (видеокарты).

Так разрешается проблема централизации майнинга, ведь на конференции «Scaling Bitcoin» в Гонконге (декабрь 2015) скоординировались и встретились администраторы пулов, контролирующие 90% хэшрейта Биткоин сети. Это подтверждает теорию Бутерина и доказывает, что эффективнее привлекать к валидации игроков с легкодоступными для массового приобретения видеокартами AMD и Nvidia. Хотя в результате Ethereum постиг такой же сценарий, только вместо 4 пулов (BTC), по состоянию на 2021 год, 51% мощности (ETH) находится в руках всего 2 пулов. Что оправдывает необходимость перехода на Ethereum 2.0 в 2022, где вместо майнинга будет стейкинг.

Hashimoto изобрёл Таддеус Дрийи, намереваясь повысить устойчивость к ASIC, и избавиться от проблемы аутсорсинга (когда узлы могут проводить вычисления, не загружая всю цепь данных). Алгоритм получил название от 3 операций, которые он осуществляет: hash, shift и modulo. Хашимото обеспечивает доказательство ввода вывода (Proof-of-I/O-capacity). Образуется большой, общий набор данных, из информации, что находится в блокчейне, и для взаимодействия с ним требуется несколько гигабайт оперативной памяти (RAM), что будет считывать данные и участвовать в хэшировании, извлекая элементы псевдослучайным образом. Поскольку нода не знает, какая информация ей потребуется, она хранит и обновляет всю копию блокчейна в клиенте для майнинга.

Объединение этих двух алгоритмов и привело к созданию Dagger-Hashimoto, устойчивого к ASIC-майнерам и дружелюбного к честным, даже небольшим домашним фермам.

С момента выхода Ethereum 1.0, можно считать что Dagger-Hashimoto более не поддерживается. Его название просто напоминает о возникшем из него алгоритме – Ethash, где ведутся дальнейшие обновления.

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

Цикл начинается с сида (начального числа), проверяемого по основаниям заголовков всех предыдущих блоков до настоящего момента. 

Из сида генерируется псевдослучайный кэш небольшого размера (16 мегабайт). Такие фрагменты могут хранится в лёгких кошельках пользователей.

Из всех кэшей генерируется набор данных (датасет, размером в несколько гигабайт) – DAG файл. Каждый элемент в нём зависит только от небольшого количества элементов из кэша.

Полные узлы хранят датасет. Он постепенно растёт в размере. При майнинге из него случайным образом берутся и хэшируются фрагменты.

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

Хэширование

Для превращения любого набора данных в строку одинакового размера используются алгоритмы Keccak-256 и Keccak-512. Поскольку Keccak одновременно является одним из кандидатов на роль криптографического стандарта следующего поколения SHA-3, может возникнуть ошибочное представление о том, что Ethereum тоже использует хэш-функцию SHA-3. Но Keccak версия для Ethereum не является стандартным SHA-3.

Скорость алгоритма

Узлы должны связаться между собой и определиться в валидности следующего блока – финализировать его. Это создаёт небольшую задержку. Среднее время блока в сети Ethereum – 12-14 секунд.

DAG файл

Directed Acyclic Graph (направленный ациклический граф) – это способ записи, отличный от блокчейна тем, что данные могут добавляться разными узлами параллельно и одновременно, без необходимости полной фиксации общего состояния сети всеми узлами на определённом моменте.

Ethereum собирает кэш у клиентов (по 16 МБ), и из его частей собирает цельный файл (размер начинался с 1 ГБ и уже превышал 4 ГБ). Каждые 30 тыс. блоков DAG файл перезаписывается новыми данными. Это повышает требования к памяти вычислительного оборудования, и делает невыгодным использование ASIC-устройств, заточенных исключительно на перебор хэшей (как у Bitcoin).

Полные клиенты используют двойной буфер для DAG, храня настоящую и предыдущую версию. Для валидации используется всегда прошлая версия, чтобы DAG мог быстро меняться с течением времени, в одинаковом промежутке времени. Это защищает сеть от угрозы 51%, устраняя окно в несколько минут для потенциальной атаки во время координации пересчёта данных.

Финализация

Все майнеры ищут блок одновременно, и возможны ситуации, когда оба находят его примерно в тот же момент. Создаётся вилка из двух разных версий блокчейна, но уже спустя несколько блоков станет понятно, какая цепочка преимущественно была избрана сетью – будет выбрана та, что длиннее. Потому «окончательным» состояние транзакции можно считать спустя 6 блоков или около 1 минуту, когда выбор пути дальнейшего движения валидной ветки станет очевидным.

Майнинг

Для участия в поддержании сети, и получении в награду ETH, потребуется клиент для криптовалюты Ethereum, прошедший полную синхронизацию (загрузить весь блокчейн) и адрес, куда будет поступать доход.

CPU майнинг Эфириума невыгоден по своей природе, и не одобряется сообществом (но не запрещён). С помощью процессора можно добыть немного монет для запуска собственного смарт-контракта или тестов. Компания Bitmain разработала ASIC для майнинга ETH, но разработчики решительно против технологии и готовы к использованию кода, который может уничтожить железо или существенно снизить хэшрейт. Некоторые майнеры намеренно сами снижают скорость вычислений своих устройств, чтобы добывать ETH незаметно: на фоне других монет они значительно теряют размер (сиюминутной) добычи.

image

GPU майнинг самый эффективный. Для хранения графов (DAG файлов) нужно как минимум 4-8 ГБ ОЗУ в дополнение к каждой видеокарте.

Чтобы получать доход с добычи Эфириума стабильно, участники объединяются в пулы. Повышают шанс нахождения блока, находят их чаще, а затем делят добычу между собой соразмерно проценту от общих усилий. Пул может снимать комиссию (от 0 до 3%) в свою пользу.

Софт бывает на Windows, Mac OS и Linux. Выбирайте из списка ТОП 10 программ для майнинга криптовалюты ETH:

  1. ETHMiner (CLI)
  2. CGMiner (CLI)
  3. BitMinter (проект завершён)
  4. Claymore (CLI, с дуал-майнингом)
  5. WinETH (GUI, удобен для новичков)
  6. Minergate (GUI)
  7. BFGMiner (CLI)
  8. Geth (CLI, оригинальный от разработчиков Ethereum)
  9. EasyMiner (GUI)
  10.  Miner-Server (облачный майнинг, аренда мощности без покупки физических устройств)

В каждом блоке хранится 2 ETH. Плюс если произошло одновременное нахождение блока, майнер, что добавил в цепочку осиротевший (а в Эфириуме он называется «uncle», дядечка) блок, получит компенсацию в виде 1,75 ETH. Весь газ, используемый в транзакциях для оплаты комиссии, также достанется майнеру, что включит их в найденный блок.

Монеты на алгоритме Dagger-Hashimoto

Самая первая и знаменитая – ETH (Ethereum). Алгоритм создавался для нужд этой сети изначально. Позже, в результате эксплойта смарт-контракта TheDAO сообщество откатило время на высоту блока до инцидента. Так появился форк ETC (Ethereum Classic). Это первый проект, что использовал Ethash, кроме основного.

Тысячи токенов, что выпущены и перемещаются в сети Ethereum (стандарта ERC-20, ERC-721 и других): BNB, USDT, UNI, LINK, USDC, VEN, THETA, OKB, WBTC, BUSD, MKR – самые популярные из них, тоже существуют благодаря алгоритму Ethash, ведь они базируются внутри сети Ethereum.

Callisto Network (CLO)

Самофинансируемая система. Стартовала без пре-майнинга и ICO. Позволяет создавать смарт-контракты в коммерческом секторе. Предлагает услугу аудита исполнительного кода. Расширяет своё присутствие в секторе DeFi. Выпускает стейблкоины.

Metaverse (ETP)

Платформа для создания децентрализованных цифровых активов. Основные функции: смарт-контракты, NFT, аватары.

Expanse (EXP)

Форк Ethereum. Аналогично позволяет выпускать собственные токены, создала свой DEX. Планирует переход на новый алгоритм майнинга и Proof-of-Stake. 

Ellaism (ELLA)

Децентрализованная платформа для выполнения смарт-контрактов.

Прекратили существование

  • Elementrem (ELE)
  • Musicoin (MUSIC)
  • DaxxCoin (DAXX)
  • WhaleCoin (WHL)
  • Bowhead (AHT)
  • Ethereum Fog

Использовать Ethash кроме как в Ethereum нет смысла. Лучше пользоваться всеми этими функциями в основной сети – она регулярно обновляется и проходит аудит разработчиков со всего мира.

от РЕДАКЦИЯ
Регистрируясь, вы акцептуете Оферту
Товарный знак Кошелёк.ру принадлежит
ООО "Кошелёк.ру" (ИНН 7811454512)
[email protected]
8(800)55555-89 для звонков по РФ
+7(900)55555-89 для международных звонков и мессенджеров