Блог им. Ilia_Zavialov
Перед тем как вы погрузитесь в изучение статьи, обратите внимание на тот факт что всё упомянутое в ней не является финансовой рекомендацией для принятие более взвешенного решения просьба провести свое собственное исследование.
Корректировка сложности – это великое, но, тем не менее, недооцененное нововведение, обеспечивающее бесперебойную работу Биткоина.
Помимо того, что она обеспечивает предсказуемость предложения Биткоина, она также является..:
С момента своего появления Биткоин корректировал свою сложность 373 раза.
В течение первого года работы сети сложность не увеличивалась, первое значительное изменение произошло первого января 2010 года, на высоте блока 32,256.
Самые большие изменения сложности составили:
Сложность биткоин-майнинга показывает, насколько сложно найти хэш, который обеспечит попадание блока в цепочку. При текущей сложности 30,977,051,760,460 1 из каждых 13,315,579,227,696,403,823,071,581 хэшей SHA256 будет генерировать действительный блок. Действительный блок – это тот блок, хэш которого ниже определенной цели.
Майнинг – это случайный и непредсказуемый процесс. Более того, майнеры могут присоединяться к сети и покидать ее в любое время. Оба эти фактора могут влиять на скорость появления блоков. Сложность регулирует скорость добавления новых блоков в блокчейн.
Корректировка сложности достигает следующих целей:
Давайте чуть подробнее остановимся на втором пункте:
Майнеры хэшируют все данные блока вместе с нонсом (случайным числом) до тех пор, пока не найдут хэш блока, который меньше определенной цели. Существует прямая зависимость между целью и сложностью: чем меньше цель, тем сложнее майнить. Значение целевого числа хранится в блоке в поле Bits в сжатом формате. Тот факт, что само значение целевого числа хэшируется с остальными данными блока, делает сложность защищенной от подделки. Сложность обычно представляется в десятичном формате.
Целевое число = Максимальная цель / Сложность
Максимальная цель – это цель при сложности равной 1 (минимально возможной сложности). Это значение было выбрано Сатоши. И Максимальная цель, и сложность = 1 были закодированы им в генезис-блоке:
Сложность, равная 420 означает, что потребуется на 420 попыток больше (в среднем), чтобы найти подходящий хэш, чем при самой простой сложности 1. Как уже упоминалось, генезис-блок был намайнен при сложности 1. С тех пор каждые 2016 блоков сложность пересчитывается.
Когда блок добывается, майнер также должен добавить к нему временнýю метку. Эта временнáя метка каждый раз используется для пересчета сложности. Мы стремимся к тому, чтобы новый блок находился каждые 10 минут, поэтому после 2016 блоков мы проверяем, сколько времени в среднем проходило между появлением блоков.
Ожидаемое время: 2016 блоков x 10 минут = 20,160 минут.
Если блоки генерировались быстрее, допустим, каждые 8 минут, то мы получим 2016 x 8 = 16,128, то 20,160 / 16,128 = 1.25.
Новая сложность = 1.25 × Старая сложность
Хэшрейт не известен. Мы лишь знаем, насколько быстро генерируются блоки и используем временные метки в блоках, чтобы оценить хэшрейт сети. Это нельзя назвать точной наукой.
Но и сами временные метки не являются точной наукой.