Алгоритмы майнинга - это функции, которые делают возможной задачу добычи криптовалюты. Существуют различные алгоритмы, каждый из которых имеет свои особенности, адаптированные к используемым криптовалютам.
Алгоритмы майнинга - это алгоритмы, отвечающие за возможность добычи криптовалюты. Как правило, эти алгоритмы представляют собой криптографические хэш-функции очень высокой сложности, которые могут регулировать сложность добычи. Процесс, который делает более или менее сложным составление головоломок, которые должны решать майнеры. Это делается для того, чтобы заставить майнеров выполнять сложную вычислительную работу, которая после решения позволяет им получить вознаграждение за эту работу.
В этой статье мы покажем несколько наиболее используемых в мире криптовалют алгоритмов майнинга, продемонстрировав некоторые их особенности и потенциал.
Алгоритмы майнинга: какие наиболее используемые?
SHA-256 алгоритм Биткойна
SHA-256 - это криптографический алгоритм, который начал свою историю как система хэширования данных. По сути, алгоритм SHA-256 берет заданный объем информации и сводит его в один буквенно-цифровой блок длиной 64 символа, который генерируется детерминированно. Это означает, что если ввести одни и те же данные бесконечное число раз, то каждый раз будет получен один и тот же результат.
Это очень важно для защиты целостности данных, так как малейшее изменение полностью меняет результат хэша SHA-256. Именно по этой причине он широко используется в Интернете для защиты документов и другой ценной информации, которую необходимо сохранить в целостности. Следует отметить, что SHA-256 не является алгоритмом шифрования, а представляет собой лишь алгоритм целостности данных, и единственный способ проверить его - ввести ту же информацию, получив тот же результат. Аналогично, обратный процесс практически невозможно осуществить.
SHA-256 был разработан Агентством национальной безопасности США (АНБ) и опубликован Национальным институтом стандартов и технологий (NIST) в 2001 году как стандарт целостности данных. Система может быть реализована с помощью CPU, GPU, FPGA и ASIC. Следовательно, майнинг Bitcoin, использующий SHA-256, может без проблем осуществляться на всех этих носителях. Разумеется, мощность в каждом случае разная, наименьшую мы можем получить на CPU, затем на FPGA, GPU и, наконец, ASIC, которые в настоящее время доминируют в майнинге SHA-256.
К криптовалютным проектам, использующим SHA-256 в качестве алгоритма майнинга, относятся Bitcoin, Bitcoin Cash, Bitcoin SV, Namecoin (используется объединенный майнинг), RSK (объединенный майнинг), Stacks (объединенный майнинг). Существует множество других проектов, использующих SHA-256, но большинство из них не имеют инноваций и поэтому не представляют особой ценности для сообщества.
Ethash алгоритм Ethereum Classic
Ethash был алгоритмом майнинга Ethereum с доказательством работы. Доказательство работы в Ethereum было полностью отключено в результате The Merge, и теперь для обеспечения безопасности Ethereum используется доказательство доли.
Эта хэш-функция была разработана для Ethereum, и одной из ее главных особенностей было высокое требование к памяти благодаря использованию расширенной DAG для майнинга. В принципе, Ethash была разработана для предотвращения ASIC-майнинга. Однако стоимость памяти была настолько высока, что майнинг Ethash все еще был возможен с помощью графических процессоров, где GPU выигрывают за счет большого объема имеющейся у них памяти, что позволяет легко создавать DAG для майнинга.
Ethash опирается на функцию Keccak или SHA-3, а также использует версии хэшей Dagger-Hashimoto, поэтому первоначально алгоритм был известен как Dagger-Hashimoto, а затем изменил свое название на Ethash.
Scrypt наиболее полная криптографическая функция
Scrypt - это функция хэширования/шифрования, разработанная известным разработчиком FreeBSD Колином Персивалем. Функция предназначалась для использования в составе созданного им коммерческого продукта tarsnap, предназначенного для создания удаленных резервных копий данных для пользователей и компаний. Tarsnap - это продукт, известный своей высокой безопасностью и скоростью, в котором Scrypt играет основополагающую роль.
Scrypt - это чрезвычайно оптимизированная хэш-функция, предназначенная для обработки больших объемов данных, обеспечения криптографических гарантий целостности, а также восстановления данных в случае необходимости. Возможность безопасного шифрования и дешифрования добавляет дополнительную функциональность, которой нет у других хэш-функций, поэтому Scrypt считается одной из самых полных и безопасных функций, а также является свободной программной реализацией благодаря лицензии BSD 2. Scrypt - это алгоритм, который может быть добыт с помощью реализаций для CPU, GPU, FPGA и ASIC, причем последняя является наиболее мощной.
Среди основных криптовалют, использующих Scrypt в качестве майнинговой функции, - Litecoin и Dogecoin.
X11 алгоритм Dash
Алгоритм майнинга X11 - это не совсем хэш-алгоритм, а объединение 11 таких алгоритмов, которые применяются последовательно, чтобы в итоге получить конечный хэш. Идея его создания заключается в том, чтобы обеспечить полную безопасность получаемых хэшей и добавить определенную сложность, которая не позволит создавать ASIC, централизующие майнинг.
Стоит сказать, что первая идея многими специалистами в области криптографии рассматривается как полный абсурд. Это связано с тем, что многие алгоритмы, используемые в X11, не имеют даже формальной проверки своей работы. Это подрывает безопасность системы, делая ставку на схему "безопасности по неясности", поскольку эта неясность заключается в отсутствии специальных криптографических тестов, гарантирующих, что эти функции действительно безопасны.
Хотя вторая идея о сопротивлении ASIC оказалась верной, разработчикам ASIC не потребовалось много времени, чтобы преодолеть эту проблему и начать предлагать ASIC для X11. В ответ на это разработчики начали создавать вариации алгоритма X11, которые не позволяли майнить на ASIC до тех пор, пока будущее обновление прошивки не восстановит работоспособность машин. В результате этих непродуктивных усилий появились такие производные, как X13 (с применением 13 различных хэш-функций), X15 и даже X17.
Алгоритм X11 был разработан Эваном Даффилдом, создателем криптовалюты Dash, которая стала первой криптовалютой, использующей X11, и единственной валютой, имеющей какую-либо ценность.
Equihash алгоритм основанный на сложной математической задаче
Equihash был создан благодаря работе Алексея Бирюкова и Дмитрия Ховратовича, которые стремились создать хэш-алгоритм, устойчивый к ASIC-майнингу. Для этого Бирюков и Ховратович использовали любопытную математическую задачу, на основе которой они разработали свою хэш-функцию: "Задача дня рождения". Результаты их работы были представлены в 2016 году в Люксембургском университете. Этот проект осуществлялся группой под названием CryptoLUX, в составе которой они участвовали в Симпозиуме по безопасности сетей и распределенных систем 2016 года в Сан-Диего.
В "Проблеме рождения" говорится следующее:
Из набора 23 человек вероятность того, что хотя бы у двух из них день рождения приходится на один и тот же день, составляет 50,7%. Для 57 и более человек эта вероятность превышает 99,666%. Строго говоря, это не парадокс, поскольку не является логическим противоречием.
Однако это математическая истина, которая противоречит общепринятой интуиции. Многие считают, что вероятность гораздо ниже и что для достижения вероятности 50,666% нужно гораздо больше людей. Если в комнате 367 человек, то по принципу "голубятни" мы знаем, что как минимум у двух человек день рождения приходится на одну и ту же дату, поскольку в обычном году 365 дней, а в високосном - 366.
Исходя из этого, функция Equihash заставляет компьютеры выполнять операции, требующие большого объема памяти, что затрудняет параллельные вычисления. Это связано с тем, что создание ASIC с большим объемом высокоскоростной и высокопропускной памяти обходится очень дорого.
В результате Equihash является одним из наиболее проблемных алгоритмов, устойчивых к ASIC. Фактически, даже сегодня этот алгоритм представляет собой достаточно сложную задачу для ASIC (которым, наконец, удалось преодолеть сопротивление), поскольку они не способны достичь высокого уровня решения задачи, что делает эти устройства весьма энергонеэффективными, хотя и гораздо более быстрыми, чем их аналоги на CPU, FPGA и GPU.
Основной валютой, использующей этот алгоритм, является Zcash, хотя он также применяется в Bitcoin Gold и Komodo.
Cryptonight первый алгоритм для анонимных монет
CryptoNight - это уникальный алгоритм по хорошо известной в сообществе причине: он призван облегчить создание анонимных монет. На самом деле человек (или группа людей), создавший этот алгоритм, является полной загадкой, наравне с Сатоши Накамото. Разные пользователи утверждают, что создателем CryptoNote (базового алгоритма консенсуса для CryptoNight) является сам Сатоши Накамото, выступающий под новым псевдонимом Николас ван Саберхаген. Для придания большей мистичности, CryptoNote был представлен 12.12.12, что является полной загадкой, которую никто не смог разгадать до сих пор.
Как бы то ни было, CryptoNight был разработан как хэш-функция для CryptoNote, и первой монетой, в которой он был реализован, стал Bytecoin. Алгоритм разработан с нуля, чтобы обеспечить очень высокий уровень конфиденциальности, анонимности и устойчивости к ASIC и GPU. Для обеспечения высокого уровня безопасности и анонимности одной из его главных особенностей является высокая устойчивость к ASIC- и GPU-майнингу, что делает его крайне сложным для разработки под эти устройства.
Однако после отказа от Bytecoin, Monero, вторая монета, в которой была реализована функция для ее майнинга, взяла бразды правления разработкой в свои руки благодаря более многочисленной и специализированной группе разработчиков, а также более активному сообществу. Таким образом, Monero стала основным разработчиком CryptoNight и постоянно обновляла ее, чтобы ASIC не могли нанести ей вред. Несмотря на все усилия, CryptoNight проиграла битву, и, поняв это, разработчики Monero объявили о том, что работают над ее преемником, объявив о скором отказе от CryptoNight.
В настоящее время CryptoNight является малоиспользуемым и заброшенным алгоритмом. Фактически, большинство проектов, использующих его, заброшены.
RandomX эволюция CryptoNight
Сообщество Monero, видя, что проиграло битву в CryptoNight, осознало необходимость разработки нового алгоритма с нуля. Таким образом, можно было бы открыть новый фронт для монет приватности.
Результатом всех этих усилий стал RandomX. Это настолько сложный алгоритм для приватных монет, что его теоретически невозможно реализовать на ASIC. Более того, он чрезвычайно сложен для эффективной реализации на GPU и FPGA.
Своей работой RandomX обязан реализации, которая работает на основе виртуальной машины вычислительной интроспекции. По сути, RandomX создает виртуальную машину с определенными криптографическими характеристиками, которые генерируются случайным образом. На этой виртуальной машине запускается криптографическая функция для майнинга Monero. Все это делает RandomX требовательным к ресурсам. Он требует объема оперативной памяти, инструкций процессора и их кэша, а также необходимых для его работы криптографических вычислений, которые основаны на AES-256, а также используют функции Blake2b и Argon2d.
Реализация оказалась настолько удачной, что спустя почти 3 года после создания алгоритма до сих пор не существует эффективной реализации для графических процессоров и ПЛИС. И действительно, реализация ASCI до сих пор теоретически невозможна. Все это в итоге делает использование этих инструментов нецелесообразным, заставляя всех добывать на центральном процессоре, что и является целью RandomX.
CuckooCycle, Cuckaroo и Beam, майнинг на GPU и частных монетах
CuckooCycle - это алгоритм PoW-майнинга, используемый в проекте Aeternity. Алгоритм предназначен для использования на графических процессорах, где он эффективен и устойчив к ASIC-майнингу. CuckooCycle требователен к памяти, для запуска процесса майнинга требуется не менее 4 ГБ оперативной памяти GPU. На данный момент не существует ASIC, работающего на этом алгоритме, и единственной актуальной валютой, использующей его, является Aeternity.
В свою очередь, Cuckaroo - это алгоритм майнинга, используемый в таких монетах приватности, как Grin и MimbleWimble. Алгоритм предназначен для использования на графических процессорах и противостоит ASIC-майнингу. Однако алгоритм претерпел несколько обновлений, поскольку многие из его старых итераций уже не считаются устойчивыми к ASIC-майнингу. Это привело к появлению таких вариантов, как Cuckarood29, Cuckatoo31 или Cuckatoo32, которые пытаются решить эту проблему.
Наконец, Beam - это алгоритм майнинга, используемый в криптовалюте Beam. Этот алгоритм является производным от Equihash и предназначен для использования на графических процессорах. В плане майнинга Beam наилучшие результаты показывают карты Nvidia, хотя разница с GPU AMD минимальна, а энергоэффективность последних значительно выше.
Заключение
Алгоритмы майнинга играют важную роль в мире криптовалют и блокчейн-технологий. В данной статье мы рассмотрели некоторые из самых популярных алгоритмов, которые стали краеугольными камнями для добычи цифровых активов. Каждый из этих алгоритмов обладает своими уникальными характеристиками, и выбор наиболее подходящего зависит от конкретных целей и ресурсов майнера.