Блокчейн состоит из последовательности блоков, содержащих пользовательские транзакции. Эти блоки должны быть проверены компьютерами (называемыми «узлами»), которые участвуют в проверке сети. Тем не менее, проверка сети требует значительной вычислительной мощности, которая может варьироваться в зависимости от уровня сложности, налагаемой компьютерным кодом.
Действительно, чтобы гарантировать создание новых блоков каждые 10 минут в блокчейне Биткоина, алгоритм регулирует уровень сложности в соответствии с вычислительной мощностью в сети (а не в зависимости от количества конкурирующих майнеров). Это называется «сложностью майнинга».
Подробнее о том, как работает блокчейн биткоина
Блокчейн Биткоина (BTC) полностью децентрализован: все веб-игроки могут загружать историю реестра и проверять блоки, которые добавляются в хронологическом порядке после старых. Поток информации идёт децентрализовано, и каждый может принять участие. Кто угодно или почти.
Действительно, демократизация Биткоина сопровождалась увеличением вычислительной мощности, необходимой для проверки сети (майнинга). Сегодня для обеспечения безопасности сети требуется такая вычислительная мощность, что отдельному человеку уже невыгодно добывать биткоины с помощью персонального компьютера.
Майнеры организовались в виде «ферм», в которых «проживают» сотни очень мощных ASIC-майнеров, решающих математические задачи. Таким образом, криптодобывающая промышленность стала очень конкурентоспособным и профессиональным сектором.
ASIC – это интегральная схема, предназначенная для конкретного приложения. Проще говоря, это своего рода компьютер, который позволяет выполнять конкретную задачу и нацелен на экономию энергии, поскольку он оптимизирован для этого.
Чтобы проверить блок, майнеры должны найти, так называемый, «nonce» – псевдослучайное число, которое даёт майнеру право проверить и добавить следующий блок в сеть. Легкость поиска этого знаменитого «нонса» зависит от сложности майнинга в сети Биткоин.
Действительно, чтобы удержать злоумышленников от участия в сети, создатель Биткоина вставил в код алгоритм, называемый «алгоритмом сложности». Этот алгоритм запрограммирован на поддержание интервала в 10 минут между созданием каждого нового блока. Другими словами, майнеру требуется около 10 минут, чтобы сгенерировать nonce.
Чтобы поддерживать эту частоту, алгоритм автоматически регулирует себя. Когда наблюдается приток майнеров или устройств для майнинга, сложность поиска nonce возрастает. Когда количество майнеров падает, найти nonce легче.
Обратите внимание, что блокчейн Ethereum (ETH) работал точно так же до перехода на Proof of Stake.
Как на практике регулируется сложность майнинга
Сложность майнинга биткоинов обновляется каждые 2016 блоков (или примерно каждые 14 дней). Сеть определяет, увеличилось или уменьшилось время, затраченное на майнинг нового блока за последние две недели. Таким образом, каждый узел делит время, прошедшее с момента последних 2016 блоков, на 20160, что соответствует «целевому времени» (10 минут × 2016 = 20 160 минут).
Если результат меньше 1, это означает, что текущие блоки зафиксированы быстрее, чем раннее зафиксированный набор 2016 блоков. Таким образом, целевая сложность увеличивается.
И наоборот, если результат больше 1, это означает, что майнерам было сложнее найти каждый блок. Сложность снижается.
Цель соответствует количеству нулей, с которых должен начинаться хеш текущего блока. Напомним, что хеш – это не что иное, как результат вычисления математической функции, которая позволяет преобразовать строку символов независимой длины в другую строку фиксированной длины (в случае Биткоина – в 256 бит или 64 символа в шестнадцатеричном формате для SHA-256).
Таким образом, чтобы проверить блок, майнер должен найти хеш ниже целевого уровня сложности, который мы называем «nonce» (т.е. хеш, который начинается с числа 0, меньшего, чем хеш блока, который майнер хочет проверить).
Например, для добычи блока 100000 целевая сложность – 14 484,16.
В этом примере первый майнер, который найдёт хэш, начинающийся с 11 нулей, сможет подтвердить транзакции. Затем цель корректируется в соответствии с количеством нулей, содержащихся в хеше рассматриваемого блока. Чем больше нулей содержит хеш в начале, тем сложнее будет найти nonce.
Хешрейт биткоинов
Хэшрейт соответствует совокупной хэш-мощности всех майнеров в момент времени. Другими словами, эта информация предоставляет информацию о совокупной используемой вычислительной мощности в Терахешах в секунду (TH/s), которую сеть Биткоин имеет для проверки своих транзакций.
Хешрейт относительно изменчив. Его вариации зависят от многочисленной внешней информации: изменения политической обстановки, наличия оборудования, позволяющего рассчитывать nonce, стоимости энергии в источнике, стоимости инвестиций в оборудование и т.д.
С момента создания Биткоина и криптовалют уровень хешрейта продолжал расти, что является хорошей новостью для сетевой безопасности. Действительно, хэшрейт также представляет собой альтернативную стоимость атаки на блокчейн. Чем больше хэшрейт, тем сложнее злоумышленнику будет повредить сеть (поскольку для организации атаки потребуется больший бюджет).
Преимущества этой системы сложности
Эта система уровней сложности уникальна для Биткоина. Этот стандарт внес значительный вклад в успех блокчейна, поскольку предоставляет ему определенные преимущества.
С экономической точки зрения время задержки в 10 минут между каждым блоком обеспечивает стабильную скорость создания криптовалюты. Однако, предложение актива является важной характеристикой для любого инвестора. Это позволяет сохранять уверенность в активе и способствует хорошему движению его цены. Это то, за что часто критикуют фиатные валюты, которые, в отличие от криптовалют, можно печатать почти неограниченно.
Кроме того, эта система сложности регулируется и адаптируется к уровню квалификации майнеров, чтобы давать экономический стимул. Например, если у майнеров не хватает эффективного оборудования по политическим причинам (например, запрет на использование ASIC в некоторых странах), уровень сложности корректируется, а процент уменьшается, чтобы майнеры могли продолжить свою работу.
С технической точки зрения, эта задержка в 10 минут, допускаемая алгоритмом, даёт возможность сети транслировать все блоки в течение отведенного времени и обновляться даже в тех районах планеты, где подключение к Интернету не всегда очень хорошее, быстрое или стабильное.
Заключение
Сложность майнинга и хешрейт являются важными характеристиками сети Биткоин. Благодаря автоматической настройке сложность майнинга позволяет блокчейну Биткоина выпускать новый блок, в среднем, каждые 10 минут.
Сложность майнинга также позволяет сети гарантировать свою безопасность. По мере развития блокчейна Биткоина уровень сложности увеличивался. Следовательно, чтобы как-то повредить сеть Биткоина, злоумышленникам придётся мобилизовать очень мощные и, следовательно, очень дорогие вычислительные ресурсы. Стоимость атаки на сеть Биткоин сегодня намного превышает ту выгоду, которую она может принести хакерам.