Сложность майнинга криптовалют: Bitcoin, Ethereum Classic и другие
Сложность майнинг сети является частью сложного механизма, который регулирует работу сети Биткойна, Ethereum Classic, Doge coin и других криптовалют.
В процессе майнинга транзакции «защищены» благодаря вычислительной мощности, предоставленной майнерами, которые участвуют в расчетах. Майнеры получают за это награду - определенное количество монет, которые они майнят. Это число уменьшается вдвое каждые четыре года в результате процесса деления пополам (халвинга).
Где отслеживать сложность сети?
Ниже в таблице мы перечислили ресурсы, на которых можно отслеживать сложность сети монеты:
Монета | Сложность сети |
Bitcoin | bitinfocharts.com |
Ethereum Classic | bitinfocharts.com |
Ravencoin | minerstat.com |
Nexa | minerstat.com |
Kaspa | minerstat.com |
Dogecoin | minerstat.com |
Zcash | bitinfocharts.com |
Litecoin | minerstat.com |
BitcoinCash | bitinfocharts.com |
Monero | minerstat.com |
Что подсчитывают майнеры?
Майнеры вычисляют криптографические хэши в заголовке блока. Для каждого нового хэша программное обеспечение для майнинга использует случайное число, называемое Nonce.
Чтобы извлечение блока стало сложной «работой», майнер (оборудование) должен найти хеш, который меньше определенного числа.
Сложность блока
Сложность заключается в числе, которое регулирует время, необходимое майнерам для извлечения следующего блока, который затем будет добавлен в блокчейн.
В среднем это время составляет десять минут для Биткоина. Для Ethereum Classic - 13,35 секунд, а для Litecoin – 2,5 минуты.
Именно из-за времени нахождения нового блока, сложность «корректируется» каждые две недели (для Биткоина), фактически, это происходит каждые 2016блоки блоков.
После этого интервала каждый узел выполняет операцию, состоящую из умножения ожидаемого времени на 2016 блоков (2016 х 10 минут) и делит результат на число, полученное путем умножения фактического времени на 2016 блоков.
Так, если, например, фактическое время составляет 8 минут, результат будет:
2016 x 10/2016 x 8 = 1,25
Следовательно, каждый узел будет использовать этот номер, чтобы установить новую сложность для следующих 2016 блоков. Принимая во внимание, что новая сложность будет получена в результате умножения между текущей сложностью и результатом предыдущей операции (в нашем примере 1.25)
Новая сложность = сложность х 1,25
Отношения между сложностью, целевым значением и временем блока
Среднее время блока поддерживается за счет изменения сложности. Чтобы понять, как это происходит, используем в качестве примера игру в кости.
Предположим, у нас есть два классических кубика и, как правило, устанавливаем, что игрок выигрывает (и, следовательно, получает вознаграждение), когда сумма, полученная в результате броска кубика, меньше или равна ранее установленному числу. Если выбрано очень большое число, например, 10, вероятность нахождения числа, меньшего или равного 10, будет очень высокой. В этом случае, чтобы проиграть, игрок должен набрать либо 6 плюс 5, либо двойную 6. Однако, если выбрано гораздо меньшее число, например, 4, броски, которые нужно сделать, чтобы получить результат, равный или меньше этого числа, должны быть намного больше.
Поскольку это число, называемое целевым значением, становится маленьким, сложность возрастает. Таким образом, сложность показывает изменение целевого значения от его первоначального значения.
Если игра регулировалась программным обеспечением и необходимо было установить фиксированное время расчета, цель была бы скорректирована таким образом, чтобы поддерживать среднее время выплаты, равное установленному системой.
Сложность добычи Bitcoin
Сложность в Bitcoin работает более или менее похожим образом. Майнеры генерируют числа с надеждой, что одно из них будет меньше или равно целевому значению. Числа очень большие и шестнадцатеричные. Каждый блок хранит сжатое представление цели, называемое битами.
Биты на самом деле являются сокращенной версией цели, введенной для экономии места внутри заголовка блока.
Сложность «корректируется» каждые две недели чтобы не изменять среднее время извлечения при добавлении новых узлов в сеть.