Алгоритм майнинга 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 для международных звонков и мессенджеров