Сложность
![]()
Сложность (англ. difficulty) – это величина, которая показывает насколько сложно найти хэш, который будет следующей предложенной целью сети.
Сложность сети Bitcoin [ править ]
В сети Bitcoin для всех блоков существует глобальная сложность. Блок для того, что бы считаться правильным, должен иметь хэш ниже заявленной цели.
Сложность в сети Bitcoin меняется каждые 2016 блоков. Сложность добычи криптовалюты рассчитывается по следующей формуле:
difficulty = difficulty_1_target / current_target
где difficulty – сложность, а target – 256-битное число.
Difficulty_1_target может принимать различные значения. Традиционно это хэш, 32 первых бита которого являются 0, остальную часть составляют единицы (это также называется pdiff или pool difficulty). Bitcoin-протокол представляет цель (target), как тип с плавающей точкой и ограниченной точностью. Зачастую, именно основываясь на этих данных, Bitcoin клиенты определяют сложность.
Хранение сложности добычи в блоках [ править ]
Каждый блок хранит в себе запакованную версию (называемую “Bits” или «Биты») шестнадцатеричной цели.
Используя следующую формулу, из каждого блока можно получить его цель. Так можно узнать, на что влияет сложность майнинга. Например, если запакованная цель в блоке имеет вид 0x1b0404cb, то ее шестнадцатеричная версия будет выглядеть следующим образом:
0x0404cb * 2**(8*(0x1b - 3)) = 0x00000000000404CB000000000000000000000000000000000000000000000000
Максимальное значение для этого поля — 0x7fffff, минимальное же составляет 0x008000.
Максимально возможная цель (при сложности 1) определена как 0x1d00ffff, что в шестнадцатеричном варианте имеет вид:
0x00ffff * 2**(8*(0x1d - 3)) = 0x00000000FFFF0000000000000000000000000000000000000000000000000000
Ниже представлен быстрый способ вычисления сложности сети Bitcoin. Для логарифмирования он использует измененную версию ряда Тейлора и основывается на логах для преобразования вычисления сложности.
#include #include inline float fast_log(float val) int * const exp_ptr = reinterpret_cast int *>(&val); int x = *exp_ptr; const int log_2 = ((x >> 23) & 255) - 128; x &= ~(255 <23); x += 127 <23; *exp_ptr = x; val = ((-1.0f/3) * val + 2) * val - 2.0f/3; return ((val + log_2) * 0.69314718f); > float difficulty(unsigned int bits) static double max_body = fast_log(0x00ffff), scaland = fast_log(256); return exp(max_body - fast_log(bits & 0x00ffffff) + scaland * (0x1d - ((bits & 0xff000000) >> 24))); > int main() std::cout <difficulty(0x1b0404cb) <std::endl; return 0; >
Максимальная, текущая и минимальная сложности сети [ править ]
Текущую сложность можно узнать воспользовавшись Bitcoin-командой getDifficulty.
Ввиду того, что не существует минимальной цели (target), примерно рассчитать максимальную сложность можно следующим образом: maximum_target / 1 (т.к. 0 приведет уравнение к бесконечности), что является невообразимым числом (~ 2 в 224 степени).
Минимальная же сложность добычи равняется 1.
Изменение сложности добычи криптовалюты [ править ]
Сложность меняется каждые 2016 блоков и зависит от времени, которое потребовалось для нахождения предыдущих 2016 блоков. Если блок будет находиться каждые 10 минут (как это задумывалось изначально для равномерной эмиссии), нахождение 2016 блоков займет ровно 2 недели. Если предыдущие 2016 блоков были найдены за срок более 2х недель – сложность будет уменьшена, если меньше – сложность будет увеличена. Чем больше (или меньше) времени было затрачено на нахождение предыдущих 2016 блоков, тем больше уменьшится (или увеличится) сложность.
Для нахождения блока хеш должен быть меньше цели (принцип работы proof-of-work). Хеш является случайным числом от 0 до 2*256-1. Сложность хеш таблицы.
Смещение для сложности 1: 0xffff * 2**208 Для сложности D: (0xffff * 2**208)/D Количество хешей, которое необходимо рассчитать для нахождения блока со сложность D: D * 2**256 / (0xffff * 2**208) Или просто: D * 2**48 / 0xffff
Сложность заявлена таким образом, как будто мы находили предыдущие 2016 блоков с периодичностью раз в 10 минут.
Соответственно мы рассчитывали (D * 2**48 / 0xffff) хешей за 600 секунд. Хешрейт нашей сети за предыдущие 2016 блоков составит: D * 2**48 / 0xffff / 600 Без особой потери точности можно упростить до: D * 2**32 / 600. На сложности 1 это примерно 7 Mhash в секунду.
Среднее время нахождения блока в одиночку рассчитывается по формуле: time = difficulty * 2**32 / hashrate, где difficulty это текущая сложность сети Bitcoin, hashrate это количество хешей, которое ваш майнер находит в секунду и time это среднее время (в секундах) между нахождением вами блока. Таким образом, можно сказать, что рост сложности майнинга ялвяется величиной прогнозируемой, высокий уровень сложности постоянно обновляется. Изменение скорости блоков возможно, после того как договорятся майнеры. И с идеологической точки зрения майнеры должны решить вопрос о решении масштабирования, так как они те, чье оборудование поддерживает сеть.
См. также на BitcoinWiki [ править ]
Ссылки [ править ]
- Историческая, текущая и прогнозируемая сложность добычи криптовалюты
- График сложности сети Bitcoin
Хешрейт и сложность майнинга: что это за показатели и зачем они нужны
![]()
Термин «хешрейт» употребляют как при оценке майнингового оборудования, так и в контексте общей вычислительной мощности блокчейна.Разбираемся, что он значит и на что влияет.
Показатель хешрейта отображает производительность и эффективность оборудования для добычи криптовалют. Единицы измерения — Х/с, хеши в секунду.
Общий хешрейт блокчейна зависит от количества и разновидности устройств, которые используются для майнинга. Чем больше хешрейт майнера или майнинг-пула, тем скорее добывается блок и тем выше шансы получить вознаграждение за его добавление в блокчейн.
С хешрейтом связан еще один важный для добычи криптовалюты показатель — сложность майнинга. Он напрямую зависит от хешрейта блокчейна. Поэтому сначала расскажем немного о нем.
Сложность майнинга криптовалют: что это за показатель, зачем он нужен и от чего зависит
Показатель, демонстрирующий, насколько трудно решить криптографическую задачу для добычи очередного блока и получить за это награду, называют сложностью майнинга. Этот параметр отражает, сколько раз в среднем нужно вычислить значение хеш-функции, чтобы добыть новый блок.
Зачем нужен параметр сложности
Добыча биткойна и других монет, работающих на алгоритме консенсуса PoW , приносит прибыль до тех пор, пока стоимость добытой криптовалюты превышает расходы на оборудование для майнинга и электроэнергию, которую оно потребляет. Показатель сложности очень важен, так как он показывает, какой мощности оборудование нужно использовать для того, чтобы успешно майнить ту или иную монету.
По сути, сложность помогает майнерам понять, какое устройство лучше подойдет для добычи крипты в той или иной сети с точки зрения энергоэффективности и доходности.
Кроме того, с помощью сложности майнинга сеть контролирует темпы выпуска новых монет.
Как и зачем происходит изменение сложности майнинга и от чего зависит этот показатель
Параметр сложности напрямую зависит от общего хешрейта блокчейна и времени, которое заняло решение предыдущих блоков.
У любого блокчейна изначально задано определенное время добычи новых блоков. Если к сети присоединяются новые майнеры, мощность растет, хешрейт увеличивается, и блоки добываются быстрее заданного значения. В таком случае сеть увеличивает сложность майнинга. И наоборот: если майнеров становится меньше, хешрейт снижается, блоки добываются дольше, сложность майнинга снижается.
Объясним на примере Bitcoin. В этом блокчейне сложность меняется каждые 2016 блоков (приблизительно раз в две недели). По задумке Сатоши Накамото, блок должен добываться раз в 10 минут, а значит, на добычу 2016 блоков будет уходить около 14 дней.
Если предыдущие 2016 блоков были добыты быстрее запланированного времени, то сложность майнинга возрастает, если медленнее — снижается.
Сложность майнинга и хешрейт сети — взаимосвязанные параметры. Если разделить сложность сети на общий хешрейт сети, получится среднее время решения нового блока.
Что такое хешрейт, зачем нужен этот показатель и как он измеряется
Итак, термин «хешрейт» используется для обозначения единицы измерения мощности оборудования, с помощью которого майнят криптовалюту. На сегодняшний день выбор техники для добычи крипты очень большой, в частности, это устройства, специально предназначенные исключительно для вычисления хешей. Речь идет об ASIC-майнерах.
В случае с добычей криптовалюты под мощностью следует понимать скорость решения криптографической задачи по вычислению такого хеша блока, который бы соответствовал установленному сетью значению сложности. Подробнее об этом можно почитать в этой статье , но если коротко, то майнер раз за разом пересчитывает хеш блока, стараясь найти такой, который был бы равен или меньше значения, установленного сетью. Показатель хешрейта демонстрирует, сколько таких операций (количество хешей) в секунду может произвести устройство для майнинга.
Поскольку добывать монеты становится все сложнее, увидеть обозначение «Х/с» сегодня практически невозможно. В современных блокчейнах для решения криптографических задач требуется очень мощное оборудование, поэтому для обозначения показателя хешрейта используют приставки: «мега-», «гига-», «тера-», «пета-», «экза-» и т. д. То есть скорость хеширования исчисляется мегахешами (MH/s), гигахешами (GH/s), терахешами (TH/s) и т. д. в секунду.
Уровень хешрейта: как узнать и что на него влияет
Вычислительную мощность ASIC можно найти на сайте производителя или магазина, в котором оборудование продается. Стоит заметить, что хешрейт, указанный в характеристиках, — это только потенциальная производительность «асика». Реальная скорость добычи монет зависит от многих других факторов, среди которых:
- Подключение. На показатель хешрейта может влиять стандарт подключения видеоадаптера к материнской плате. У разных интерфейсов различная скорость передачи данных.
- Температура. Любое мощное вычислительное устройство нагревается. Чем больше греется ASIC, тем медленнее он работает. Поэтому «асикам» требуется качественное охлаждение.
- ОС. Операционная система отвечает за работу скрипта, который запускает процесс подбора хешей. Кроме того, она выполняет определенные служебные задачи, и на них может уходить внушительная часть ресурсов видеоадаптера. Чем больше ресурсов тратит ОС, тем ниже в итоге будет хешрейт.
- Тайминг. Речь идет о времени, которое требуется графической плате для выполнения одной команды. Настройки по умолчанию могут блокировать максимальный уровень хешрейта приобретенного вами оборудования. На специализированных сайтах можно найти информацию о таймингах под добычу конкретных криптовалют. Если установить их, видеоплата не будет простаивать в ожидании следующей команды после выполнения предыдущей.
- Майнинг-пул. Пулы могут подключать свои скрипты для более эффективного майнинга монет. Поэтому когда вы собираетесь присоединиться к какой-то команде, нужно внимательно изучать варианты, ведь скрипты не всегда составлены грамотно.
Хешрейт также зависит от спецификации оборудования, алгоритма добычи монет, популярности криптовалюты. Поэтому для максимально эффективной добычи крипты нужно учитывать всю совокупность факторов, которые влияют на хешрейт.
Как и где можно рассчитать прибыль от майнинга?
Зная хешрейт своего оборудования, приблизительную прибыль от добычи крипты можно посчитать с помощью специальных калькуляторов доходности майнинга, например Cryptocompare или Nicehash .
Очередная корректировка: сложность майнинга биткоина обновила максимум

В сети биткоина произошла очередная корректировка сложности майнинга. Показатель вырос на 0,35% и установил максимум на отметке 57,32 трлн хешей (данные BTC.com).
Последнее увеличение сложности кажется незначительным, но оно порадовало криптанов и огорчило майнеров. Теперь на майнеров оказывается еще большее давление, требующее дополнительных ресурсов для выполнения того же объема работы. При этом цена первой криптовалюты все еще остается низкой.
Сложность майнинга биткоина — это показатель, который отражает то, насколько сложно произвести расчет для нахождения нового блока и получения награды за майнинг. Примерно раз в 14 дней (каждые 2016 блоков) эта величина меняется — ее автоматически корректирует сеть для того, чтобы нахождение блока занимало в среднем 10 минут, независимо от хешрейта сети. Если нахождение блока занимает менее 10 минут, сложность увеличивается, если она занимает больше времени, сложность падает. Сложность майнинга зависит от хешрейта сети и времени, потраченного на нахождение предыдущих блоков. Чем выше сложность майнинга, тем ниже показатель прибыльности.
В сентябре сложность майнинга выросла на 5,48%. В августе сложность майнинга также росла — показатель вырос на 6,17% и установил максимум на отметке 55,6 трлн хешей. В июне и июле сложность майнинга падала — 26 июля показатель снизился на 2,94%.
В июле в сети биткоина произошло знаковое событие — майнеры пересекли порог в 800 000. Таким образом до халвинга осталось 40 000. Халвинг происходит каждые четыре года (каждые 210 000 блоков) и, как правило, несет с собой очередное ралли цены биткоина, поэтому криптаны считают дни до этого долгожданного события.
Следующее сокращение награды майнеров вдвое должно произойти в середине апреля 2024 года.
▼
Самые интересные и важные новости на нашем канале в Telegram
Что такое сложность сети?

Сложность в майнинге — это показатель, который отражает, насколько трудно решить математическую задачу для признания блока подходящим и получения награды за него, то есть подобрать подходящий хэш. Дело в том, что у каждой криптовалюты в описании прописано время нахождения блока, и чтобы оно было примерно постоянным, было введено понятие сложности. В противном случае, при увеличении вычислительной мощности, все монеты были бы добыты очень быстро.