Хешрейт: как его измеряют, на что он влияет и зачем вообще нужен? Ответы на вопросы об одном из главных показателей любой криптосети ‒ в нашем обзоре.
Хешрейт: что это?
И начнем с главного: что такое хешрейт?
Хешрейт (hashrate, а иногда hash power) ‒ общая вычислительная мощность, которая используется майнерами при добыче блоков, обработке транзакций в сети. А если точнее, скорость, с которой решается задача по добыче блоков.
Да, сразу небольшое отступление: хешрейт это и есть вычислительная мощность.
Также хешрейт ‒ это скорость добычи отдельного майнера. Измеряется в H/s ‒ хешах за секунду. Хотя чаще ‒ в MH/s. Для крупных сетей используются более крупные цифры, например, гигахеши или терахеши.
Хеш и хеширование
Что же, с самыми основами разобрались. Теперь о том, что такое хеш и что это за задача по добыче блоков такая ‒ хеширование.
Суть криптографии в том, чтобы взять слово или даже целое сообщение любой длины и превратить его в набор букв и цифр фиксированной длины. Этот набор и есть хеш.
Хеширование позволяет убедиться в целостности и подлинности передаваемых данных. Например, хеш документа не будет совпадать, даже если в него было внесено минимальное изменение, вроде лишней запятой.
Нашла применение технология при обмене данными, создании электронных подписей и, конечно, во всевозможных блокчейн-решениях.
Хеширование в криптовалютных сетях
В криптовалютных сетях выглядит это так.
Некие юзеры проводят операцию, например, просто переводят биткоины. Данные об операции ‒ транзакции ‒ должны быть добавлены в следующий блок цепочки.
В игру вступают майнеры ‒ они соревнуются, пытаясь на основе определенных данных угадать, каким будет хеш следующего блока.
Это даже не совсем лотерея, а настоящее измерение того, у кого вычислительное устройство мощнее. Каждый новый хеш-код, в котором зашифрованы данные об операции и состоянии сети, случайный. Просто угадать его нельзя, поэтому майнеры берут нахрапом, выдвигая буквально миллионы догадок. Майнер, указавший правильный хеш, заполняет очередной блок с данными о транзакциях и добавляет его в блокчейн. При этом счастливчик получает установленную награду. Например, в сети биткоина она сейчас составляет 6,25 монеты.
Хеширование пошагово
Небольшое отступление для отличников и всех интересующихся о том, как компьютер преобразовывает данные о транзакциях, фразы в духе “Я люблю трейдинг” или Большую Советскую энциклопедию в это:
2hjhsvhfu75rthf954tjbkb59tjbb*
*ну, здесь мы на самом деле ничего не хешировали, а просто били лапками по клавиатуре.
Итак:
- Нам надо что-то преобразовать. Например, фразу I love CryptoCash.
- Умная машина преобразует ее в двоичный код. Путь это будет что-то вроде:111001000101111001.
- Первые 4 бита перемещаем слева направо:010001011110011110.
- Теперь четные в одну сторону, нечетные ‒ в другую:000011011 и 101110110.
Вроде обошлось без очепяток, но это не точно.
- Каждому двоичному числу соответствует число обычное, десятичное. Преобразуем наши четные-нечетные в более привычные десятичные:Калькулятор от Calcus утверждает, что:
000011011 = 27.
101110110 = 374.
- Умножаем два числа: 27 * 374 = 10,098.
- Возводим в квадрат: 10,098 ^ 2 = 101,969,604.
- Конвертируем его обратно в двоичное: 110000100111110111011000100.
- Оставляем первые 16 цифр ‒ бит ‒ отсекая остальное:1100001001111101.
- Далее по определенной схеме эти 16 бит превращаются в набор цифр и латинских букв. Например:8ubjb96bbbkl6.
На самом деле, разные криптовалюты могут использовать разные алгоритмы хеширования. ZCash использует алгоритм Equihash, а Bitcoin и Bitcoin Cash ‒ SHA256.
Хешрейт и майнинговые устройства
Перейдем к тому, ради чего мы здесь собрались, ‒ хешрейту и майнингу. Узнать хешрейт ЦПУ/видеокарты/АСИКа, а заодно подсчитать потенциальную прибыль от добычи предлагает ряд сервисов.
Например, Whattomine и Nicehash.
Топ-5 видеокарт с лучшим хешрейтом и прибыльностью. Версия Whattomine, сентябрь 2021 г.:
Модель | Релиз | Хешрейт, MH/s | Алгоритм | Доход в сутки, $ | Прибыль в сутки, $ |
NVIDIA GeForce RTX 3090 | Сентябрь 2020 г. | 114 | Ethash | 9,65 | 8,88 |
AMD Radeon VII | Август 2017 г. | 93 | Ethash | 7,87 | 7,39 |
NVIDIA GeForce RTX 3080 | Сентябрь 2020 г. | 91,5 | Ethash | 7,75 | 7,20 |
NVIDIA GeForce RTX 3080 Ti | Июнь 2021 г. | 260 | Autolykos | 7,09 | 6,41 |
AMD Radeon RX 6900 XT | Декабрь 2020 г. | 6,3 | MTP | 6,22 | 5,69 |
Можно подсчитать все вручную, но с погрешностью 146%:
<вероятность добычи следующего блока> = <ваш хешрейт> / <общий хешрейт>
<кол-во блоков за месяц> = <кол-во секунд в месяце> / <среднее время блока>**
<кол-во блоков, добытых за месяц> = <вероятность добычи след. блока> * <кол-во блоков за месяц>
<доход за месяц> = <награда за блок> * <кол-во блоков, добытых за месяц>
<прибыль за месяц> = <доход за месяц> — <затраты>
**о нем чуть ниже
Или отрывок кода калькулятора прибыльности добычи Эфириума:
$scope.ethPrice = ethereumStats.priceUsd;
$scope.netHashGH = (ethereumStats.difficulty / ethereumStats.blockTime) / 1e9;
$scope.blockTime = ethereumStats.blockTime;
$scope.earnings = {};
$scope.computeProfits = function() {
var userRatio = $scope.userHash * 1e6 / ($scope.netHashGH * 1e9);
var blocksPerMin = 60.0 / $scope.blockTime;
var ethPerMin = blocksPerMin * 5.0;
$scope.earnings.min = userRatio * ethPerMin;
$scope.earnings.hour = $scope.earnings.min * 60;
$scope.earnings.day = $scope.earnings.hour * 24;
$scope.earnings.week = $scope.earnings.day * 7;
$scope.earnings.month = $scope.earnings.day * 30;
$scope.earnings.year = $scope.earnings.day * 365;
};
Весь код здесь. Можно тыкать в Notepad++. В Python IDLE не надо.
И немного о “среднем времени блока”. Для сети биткоина эта цифра составляет 10 минут. То есть, новый блок в сети появляется каждые 10 минут. Но с погрешностью это может быть и несколько минут, и больше получаса. Средняя цифра должна оставаться неизменной.
Чтобы это было так, каждые 2,016 блока ‒ примерно каждые 2 недели ‒ в сети корректируется сложность добычи блоков:
- вычислительная мощность растет ⇒ блоки добываются быстрее ⇒ сложность корректируется в сторону повышения;
- вычислительная мощность падает ⇒ блоки добываются медленнее ⇒ сложность корректируется в сторону понижения.
Измеряется сложность майнинга в T ‒ терахешах.
В целом достаточно уметь оперировать хешрейтом, но коли уж интересно, то…
Объяснить рост/снижение можно так:
Чем выше установленная сложность, тем больше перестановок майнеру нужно выполнить прежде, чем будет найден подходящий хеш заголовка блока (для простоты ‒ просто блока). Ведутся эти перестановки, в случае биткоина, путем инкрементальных изменений одноразового номера в заголовке блока.
Да, похоже, резко растет не только сложность добычи биткоина, но и наших объяснений. Возьмем пример для любителей карточных игр:
Есть стандартная колода ‒ от двоек до тузов ‒ всего 52 карты. Вы просите кого-то выбрать случайную карту ниже дамы. Таких у нас 40 штук ‒ шансы на успех высоки, около 80%. Во второй раз мы просим вытянуть карту ниже семерки ‒ таких всего 20, и шансы на успех заметно снижаются ‒ примерно до 40%.
Фактический и заявленный хешрейт
Если вы добываете монеты в пуле, то хешрейта у вас будет два: фактический и заявленный.
Фактический хешрейт. Точный показатель, основанный на количестве правильных хешей, отправленных с вашего оборудования в пул. Также учитывает шары ‒ показатель того, сколько вычислительных ресурсов в поиск блоков вложил конкретный майнер, включая отклоненные и опоздавшие. И другие факторы.
Заявленный хешрейт. Менее точный показатель, отображается на стороне майнера.
Из-за разницы между двумя показателями хешрейта и возникает часть споров в духе “Пул ресурсы крадет!”. Впрочем, некоторые и, правда, крадут, да.
Алгоритмы хеширования
Расскажем о некоторых популярных, набирающих обороты и просто интересных алгоритмах хеширования.
Autolykos. Разработанный недавно алгоритм. Используется криптовалютой ERGO. Представлен на рынке мощностей NiceHash с июня 2021 г. В отличие от классического SHA256, задействованного биткоином, Autolykos требователен к памяти. Это снижает разрыв между владельцами специализированных ASIC и видеокарт при добыче монет.
YesPowerR16. Можно встретить при добыче нескольких криптовалют, наиболее известная из которых ‒ Yenten. Исключает добычу на асиках и видеокартах ‒ только ЦПУ. В большей степени дружественен к процессорам Intel, чем AMD.
SHA256. Разработанный Агентством национальной безопасности США, SHA256 лежит в основе биткоина и множества других валют. Открыт для добычи крипто любыми способами, из-за чего среди BTC-майнеров сегодня преобладают крупные пулы, владеющие новейшими ASIC. Хорошо зарекомендовал себя ‒ ни одна монета на базе SHA256 до настоящего времени не была взломана.
Equihash. Разработанный в 2016 году алгоритм используется ZCash, Bitcoin Gold и меньшими валютами. Требует минимум 2 ГБ ОЗУ на устройстве. Позволяет вести добычу на процессоре или мощных видеокартах.
Атака 51% и 34%
Ну, с законными способами приумножения криптовалюты все ясно. А как насчет незаконных? CryptoCash.guru ‒ научим плохому!
Атака 51% ‒ популярный способ взлома криптовалютных сетей. Основан на том, чтобы взять под контроль больше половины вычислительных мощностей. Управляя 51% хешрейта, группа майнеров ‒ пул ‒ может подтверждать блоки с заведомо мошенническими транзакциями.
Примеры взломанных сетей ‒ Ethereum Classic, Bitcoin SV, Bitcoin Gold, Grin.
Более “бюджетный” вариант ‒ атака 34%. Сконцентрировав в руках треть мощностей, злоумышленники могут отклонять или проводить транзакции в сети IOTA. Причина кроется в особенностях технологии ‒ вместо блокчейна, в основе IOTA лежит технология Tangle. Однако, хакерам также придется учитывать некоторые другие переменные.
Можно ли поменять свой хешрейт?
Если речь о том, чтобы снять ограничения, наложенные производителем видеокарты, и майнить больше с ее помощью ‒ да. Старый-добрый оверклокинг.
Одна из утилит для разблокировки мощностей ‒ MSI Afterburner. Видео о том, как правильно пользоваться инструментом:
Хешрейт, майнинг и стекинг. О перспективах
Когда мы говорим “хешрейт”, то, конечно, имеем в виду те сети, где предусмотрен майнинг, то есть Proof-of-Work, или PoW. Используется ли понятие хешрейта в сетях PoS ‒ Proof-of-Stake? Нет. Например, Ethereum с переходом на версию 2.0 откажется от майнинга и перейдет к стекингу ‒ управлению с помощью ставок токенов.
PoS получает все большее распространение, и некоторые даже полагают, что вскоре понятия “майнинг” и “хешрейт” могут остаться в прошлом. Другие, напротив, указывают на то, что стекинг не соответствует идеям децентрализации. В принципе, как и большая часть современной майнинг-индустрии, захваченной крупными компаниями. Вместо этого сообщество может вернуться к идеям майнинга на процессорах ‒ наиболее открытого к честной конкуренции. Впрочем, пространство настолько широко, что место может найтись всем этим концептам.