RandomX - это название нового алгоритма майнинга для Monero, монеты приватности, целью которой является защита сети от ASIC-майнинга, позволяющая майнить только на одном процессоре, и в то же время обеспечивающая огромную безопасность ее протокола и блокчейна.
Алгоритм майнинга RandomX - это алгоритм Proof of Work (PoW), который был разработан для замены известной криптовалюты CryptoNight Monero (XMR).
Как и его предшественник, RandomX был разработан для обеспечения безопасности и в качестве нового алгоритма Monero по умолчанию. Он обеспечивает высокий уровень криптографии и ориентирован на системы, ориентированные на конфиденциальность и анонимность. Но, прежде всего, он считается устойчивым к майнингу с помощью ASIC. Последнее - способность, которую CryptoNight утратил некоторое время назад и которую он поддерживал несколькими обновлениями. Однако команда Monero приняла решение создать новый алгоритм с нуля. Алгоритм, который возьмет все лучшее от CryptoNight и создаст новую майнинговую базу для Monero.
Результат? Невиданный ранее алгоритм майнинга с очень многообещающей устойчивостью к ASIC. И это в дополнение к улучшению возможностей майнинга на CPU, что снова привело монету к лучшей децентрализации майнинга.
Но RandomX - это гораздо больше, это проверенный, аудированный алгоритм, обладающий огромным потенциалом роста. Именно по этим причинам мы посвятим отдельное место анализу RandomX и всего того нового, что он привнес в криптовалютный мир, а также тому, как Monero извлек из него пользу.
RandomX
Как мы уже отмечали, RandomX появился благодаря потребности проекта Monero (XMR) в новом алгоритме майнинга, способном противостоять наступлению ASIC.
Напомним, что в 2018 году компании Baikal y Bitmain анонсировали первые ASIC для CryptoNight, сломив сопротивление, которое оказывал указанный алгоритм в течение нескольких лет. Довольно большое достижение для обеих компаний, особенно если учесть, что CryptoNight был достаточно сложным алгоритмом. По сути, он изначально был создан для того, чтобы избежать ASIC-майнинга.
Однако достижение компаний было не очень хорошо воспринято сообществом Monero и другими блокчейн-сообществами, использующими алгоритм CryptoNight. И прежде всего потому, что Monero - это криптовалюта, в которой ASIC-майнеры не очень хорошо воспринимаются.
Монополия на производство ASIC и доступ к ним организаций с большими деньгами не оставляют обычным людям возможности извлекать выгоду из процесса майнинга, оставляя все централизованно в одних руках. Что, в свою очередь, представляет собой единую точку отказа для всей монеты.
В Monero майнинг, как правило, осуществлялся с помощью CPU и GPU, поэтому ASIC представляли собой серьезный риск централизации и безопасности из-за возможности атаки 51%.
Чтобы смягчить ситуацию, Monero начала разрабатывать новые варианты CryptoNight, которые негативно влияли на производительность ASIC. Некоторые обновления имели хороший размах, но ASIC все равно не выдерживали. В этот момент стало очевидно, что происходит, CryptoNight был недостаточен и требовался новый алгоритм.
Так появился Monero Classic, созданный майнерами, которые хотели получить алгоритм, пригодный для ASIC-майнинга. Однако эта попытка была воспринята с трудом.
Несмотря на это, они продолжали совершенствовать ASIC для Monero, и 31 октября 2018 года началась разработка RandomX. Этот новый алгоритм, по мнению разработчиков Monero, должен был кардинально изменить алгоритмы майнинга. Работа окупилась 5 мая 2019 года, когда была выпущена первая версия RandomX.
Алгоритм RandomX был разработан для Monero разработчиками tevator, hyc, vielmetti, antanst y Schernykh и был успешно активирован в сети Monero 30 ноября 2019 года.
Как работает RandomX?
Принцип работы RandomX заложен в его названии: случайность - его главная предпосылка. Но что это означает? Это означает, что RandomX предназначен для создания абсолютно случайной "рабочей зоны" или "скретч-панели", что он потребляет много памяти и что для его работы используются передовые методы виртуализации. Именно эти три составляющие позволяют RandomX быть устойчивым к ASIC.
Более того, RandomX устойчив не только к ASIC, но и к GPU, поскольку в этих чипах отсутствуют необходимые инструкции для выполнения сложных операций RandomX. Таким образом, RandomX стремится стать алгоритмом добычи только на центральном процессоре, обеспечивая максимальную устойчивость к другим видам майнинга. С другой стороны, это также направлено на то, чтобы избежать так называемых очень известных ботнетов в Monero, поскольку RandomX сделает их практически невозможными. Особенно в маломощных устройствах, таких как Smart TV или IoT-устройства (Интернет вещей или Internet of Things).
Но как RandomX делает все это возможным? Что ж, давайте рассмотрим новый алгоритм немного подробнее.
Два типа майнинга для двух разных целей
Прежде всего, RandomX имеет два режима майнинга. Каждый из них имеет совершенно разные требования и характеристики. Наиболее мощным и ресурсоемким является режим Quick Mode, который требует не менее 2 Гбайт оперативной памяти. Но если операционная система дополнительно имеет поддержку NUMA (Non-Uniform Memory Access), Huge Pages (подкачка памяти большими блоками), высокопроизводительных процессоров и не менее 2 Гбайт оперативной памяти на каждое ядро процессора, то итоговая производительность RandomX существенно возрастает. Это связано с тем, что вся эта память используется для создания случайного скрэтчпада RandomX.
Во-вторых, у нас есть Lightweight Mode - режим, требующий всего 256 МБ оперативной памяти и предназначенный для использования на валидационных узлах Monero. Производительность майнинга в этом режиме ограничена, она в 6 раз ниже, чем в режиме Fast, поэтому прибыль от майнинга в этом режиме будет весьма незначительной.
На этом этапе мы имеем первый барьер против ASIC. Хотя ASIC и могут иметь большой объем оперативной памяти (как, например, Ethereum, который обычно имеет от 4 до 8 Гбайт ОЗУ), это делает такие компьютеры достаточно дорогими.
Во-вторых, учитывая высокую потребляемую вычислительную мощность, если компьютер заражен криптоджекингом для майнинга Monero, он будет легко идентифицирован пользователем. Что значительно снижает шансы на успех ботнета.
Используемая криптография
Если проект Monero (XMR) к чему-то и приучил нас, так это к использованию передовой криптографии в своих разработках. В данном случае RandomX - не исключение из правила, а полное ему соответствие. В RandomX активно используются хэш-функции Blake2b, генератор паролей Argon2d и симметричная криптография AES. В результате криптографическое качество RandomX является исключительным.
Однако в Monero не остановились на достигнутом и решили провести формальный аудит криптографической безопасности и реализации алгоритма RandomX. Всего было проведено четыре аудита: компаниями Trail of Bits, X41 D-SEC, Kudelski Security и Quarkslab. Все они управляются OSTIF, организацией с многолетней историей в области кибербезопасности и криптографии.
Плюсы и минусы RandomX
Плюсы
- Это алгоритм с четкой целью обеспечения безопасности. Использование AES, Blake2 и Argon2 делает этот алгоритм очень безопасным.
- Поскольку он разработан для центральных процессоров и имеет устойчивые к ASIC и GPU структуры, этот алгоритм может лучше использовать это аппаратное обеспечение. Как следствие, RandomX обеспечивает более высокую доходность для майнеров на CPU, что позволяет им продолжать зарабатывать больше на добыче Monero.
- Устойчивость к ASIC позволяет блокчейнам, использующим RandomX, быть более децентрализованными на уровне майнинга.
- RandomX - это алгоритм, который прошел четыре полных формальных аудита.
Минусы
- Сложность. Использование ВМ и случайности процесса делает этот алгоритм гораздо более сложным для разработки и отладки.
- Использование ВМ открывает возможности для латеральных атак, которые могут быть использованы для взлома системы, а также для повышения производительности при определенных условиях. Однако использование криптовалюты в скретч-панели сильно усложняет этот момент, поэтому многие считают его невозможным.
- Устройства с 32-разрядным процессором не могут корректно эксплуатировать данный алгоритм.
Заключение
Этот инновационный алгоритм, разработанный для майнинга криптовалют, открывает новые горизонты в области безопасности и эффективности. Он устраняет недостатки предыдущих алгоритмов, такие как ASIC-майнеры и централизованный майнинг, делая криптовалюты более децентрализованными и доступными для всех.