Биткоин и другие криптовалюты, которые используют блокчейн с доказательством работы (proof of work), поддерживаются посредством процесса, названного майнингом. В этой системе майнеры — это вычислительные устройства, на которых запущен клиент программного обеспечения по добыче криптовалют. Они конкурируют между собой, чтобы найти новый блок с последними данными транзакций, добавив его в блокчейн. За свою работу майнеры получают вознаграждение, которое складывается из новых монет и транзакционных сборов сети.

Время, необходимое для поиска нового блока, зависит от двух факторов: случайности и сложности. Начнем с первого фактора. Майнеры берут пакет данных транзакций и запускают его через алгоритм хеширования, односторонняя функция, которая с учетом одинакового набора данных всегда будет выдавать один и тот же результат. Невозможно предсказать, какой будет хэш. Новый блок найден, когда хэш удовлетворяет определенному требованию. Поскольку каждый набор данных имеет только один выход для данной хэш-функции, майнеры должны добавить nonce к данным, чтобы получить новый хеш. Если результат все еще не соответствует требованию, майнер далее пытается с новым nonce.

Требуется хэш, который будет соответствовать сложности майнинга криптовалюты. Валидный хэш должен быть ниже определенного целевого значения и устанавливается автоматически (периодически корректируется) по протоколу криптовалюты. Чем ниже целевое значение, тем больше подборов хэш-функций должен пройти майнер, прежде чем достичь необходимого результата. Другими словами сложность повышается.

Теоретически майнеру может повезти и он получит требуемый хэш для данного блока с первой попытки. Однако, со временем, более высокая сложность добычи криптовалюты означает, что майнеры должны в среднем использовать больше nonce на блок.

Какое назначение у сложности майнинга?

Зачем устанавливать более высокую сложность, если единственным практическим результатом является то, что майнеры должны повторять те же действия только большее количество раз? Цитата из «Bitcoin white paper»:

«Чтобы компенсировать увеличение аппаратной скорости и меняющийся интерес к работе узлов с течением времени, сложность майнинга по алгоритму proof of work определяется скользящей средней, нацеленной на среднее количество добавленных в блокчейн блоков в час. Если они генерируются слишком быстро, сложность возрастает и соответственно наоборот».

В биткоине предусмотрено добавления нового блока в блокчейн в среднем каждые 10 минут. В других криптовалютах предусмотрены другие интервалы. Например, в Litecoin это время стремится к 2,5 минутам. Проблема в том, что количество вычислительной мощности (хэшрейт), которой коллективно управляют майнеры сети может сильно различаться с течением времени.

Чтобы гарантировать, что сеть генерирует новый блок с постоянной средней скоростью Программное обеспечение настроено на автоматическую настройку времени нахождения целевого хэша. Это в свою очередь приводит к тому что приводит к увеличению или снижению сложности добычи криптовалюты. Когда Сатоши Накамото добыл блок генезиса, сложность добычи биткоина была ровна единице.

График сложности майнинга криптовалюты биткоин

Для наглядности, ниже показаны графики сложности добычи биткоина в разные интервалы времени: за последний год, за два последних года и за все время. Разумеется, сложность майнинга криптовалюты на этих графиках показаны на момент публикации материала.

График сложности майнинга криптовалюты биткоин за последний годГрафик сложности майнинга криптовалюты биткоин за последние 2 годаГрафик сложности майнинга криптовалюты биткоин за все время

Как видно из этих графиков, сложность добычи криптовалюты в биткоин-сети почти на всем протяжении развития росла, и лишь совсем недавно, наряду с хэшрейтом, начала падать.