Алгоритмы хеширования
Майнинг в упрощенном смысле можно свести к поиску правильного хeш-значения. Хеширование — это процесс генерации выходных данных фиксированного размера из входных данных произвольного размера с использованием математических формул, известных как хеш-функции. Разные криптовалюты могут использовать один и тот же алгоритм хеширования. Например, популярный SHA-256 используется в Биткоине, Bitcoin Cash, Peercoin, Namecoin и других блокчейнах.
По мере распространения криптовалют энтузиасты задались логичным вопросом: можно ли на одном и том же оборудовании параллельно искать хеш-значения для двух криптовалют, в основе которых лежит один и тот же алгоритм хеширования? Оказалось, что это вполне возможно.
Объединенный майнинг
Объединенный майнинг (merged mining) — это одновременный майнинг двух или более криптовалют на одном оборудовании без ущерба для общей производительности процесса. По сути, майнер может использовать свою вычислительную мощность для одновременной работы с блоками в нескольких цепочках с помощью Auxiliary Proof-of-Work (AuxPoW, вспомогательное доказательство работы).
Что такое AuxPoW
Идея AuxPoW заключается в том, что работа, выполненная в одном блокчейне, может быть использована в другом. Блокчейн, который обеспечивает доказательство работы, относится к «родительскому блокчейну», а тот, который готов признавать доказательство работы с другой цепочки — вспомогательным распределенным реестром.
Для этого процесса, во-первых, оба блокчейна должны иметь один и тот же алгоритм хеширования. Во-вторых, вспомогательный блокчейн должен поддерживать решение AuxPoW. Для родительского блокчейна поддержка AuxPoW не является обязательной, поскольку работа выполняется в первую очередь для него и на его правилах. Поэтому она в любом случае будет считаться действительной. Вопрос в том, готов ли вспомогательный блокчейн принять работу, выполненную для другого реестра.
Как правило для того, чтобы добавить или убрать поддержку AuxPoW, блокчейну требуется провести хардфорк.
Как работает объединенный майнинг
Предположим, что майнер добывает биткоин (он будет родительским блокчейном) и другую криптовалюту на SHA-256, которая поддерживает AuxPoW, например, Namecoin (вспомогательный блокчейн).
В начале формируются блоки транзакций для обеих криптовалют. В блоке Биткоина майнер добавляет транзакцию, которая содержит в себе хеш, отсылающий к блоку Namecoin. Это нужно для того, чтобы блокчейн Namecoin смог принять доказательство работы, проделанной для родительского блокчейна. Полную спецификацию того, что, как и куда записывается при объединенном майнинге можно изучить отдельно.
Затем происходит этап майнинга или валидации транзакций посредством занесения их в блок, где майнер пытается найти правильное хеш-значение. В случае успеха может произойти одно из следующих событий:
-
Блок был добыт на уровне сложности сети Биткоина. Поскольку уровень сложности, на котором был добыт блок в Биткоине, выше, чем уровень сложности Namecoin, майнер добывает блок и там, и там, получая тем самым обе награды за майнинг.
-
Блок добывается на уровне сложности Namecoin (но ниже уровня сложности Биткоина). Namecoin способен принять доказательство работы даже если майнеру не удалось добыть блок в сети Биткоина, но полученный хеш соответствует уровню сложности Namecoin. В этом случае майнер получит только награду за майнинг Namecoin.
Особенность блоков AuxPoW
Как вспомогательный блокчейн принимает доказательство работы от родительского блокчейна?
Дело в том, что у блоков AuxPoW есть дополнительные поля данных (заголовок блока Биткоина и транзакции в нем), которые показывают, что майнер, создавший этот блок, действительно выполнял работу на родительском блокчейне, и эта работа соответствует уровню сложности вспомогательного блокчейна, поэтому блок следует принять.
Именно потому поддержка AuxPoW необходима — иначе вспомогательный блокчейн просто не поймет, что достаточная для создания блока работа вообще была проделана.
Роль Сатоши Накамото
Концепции объединенного майнинга мы обязаны создателю Биткоина — Сатоши Накамото предложил ее еще в 2010 году. Уже в 2011 она была реализована в Namecoin: в блоке 19 200 Namecoin была активирована поддержка объединенного майнинга, что позволило одновременно добывать биткоины и Namecoin.
Плюсы и минусы объединенного майнинга
Помимо повышения доходов майнеров, объединенный майнинг может обеспечить увеличение уровня безопасности для небольших блокчейнов с низким хешрейтом за счет использования хэш-мощности сети Биткоина или другой более крупной цепочки. Это потенциально может снизить вероятность атак 51%, если достаточное количество майнеров согласится использовать объединенный майнинг.
С другой стороны, существует мнение, что объединенный майнинг дает ложное чувство безопасности. Так, крупный пул, которому, разумеется, каким бы он ни был большим, не под силу подмять под себя сеть Биткоина, может легко достичь 51% в меньшей цепочке. И тогда объединенный майнинг может на самом деле снизить безопасность меньшей сети, а не повысить.
Что можно майнить одновременно
В алгоритме хеширования SHA-256 в паре с Биткоином можно майнить Lyncoin, Terracoin, Syscoin, Namecoin, Xaya, Emercoin, Myriadcoin, Rootstock.
В Scrypt можно одновременно майнить Litecoin, Dogecoin, Dingocoin, Worldcoin, Earthcoin, Newyorkcoin, Myriadcoin, Viacoin.
Вывод
Объединенный майнинг позволяет одновременно майнить две и более криптовалюты. Для этого необходимо, чтобы у них был общий алгоритм хеширования, а вспомогательные блокчейны поддерживали протокол AuxPoW.