Что такое майнинг криптовалюты?

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

Биткойн - самый популярный и хорошо зарекомендовавший себя пример криптовалюты, которую можно майнить, но стоит отметить, что не все криптовалюты можно добывать. Майнинг биткойнов основан на согласованном алгоритме под названием Proof of Work. Не смотря на то, что последнее время многие криптовалюты стремятся к системе Proof of Stak.

Как работает процесс майнинга

Майнер - узел в сети, который осуществляет сбор транзакций и организует их в так называемые блоки (node). Каждый раз, когда совершаются транзакции, все сетевые узлы получают их и проверяют действительность блоков. После, узлы майнеров собирают эти транзакции из пула памяти и начинают объединять их в единые блоки (Candidate Block).

Этапы майнинга

Первым этапом майнинга (вычисление) блока является индивидуальное хеширование каждой транзакции, взятой из пула памяти, но перед запуском процесса узел майнера добавляет транзакцию, в которой они отправляют себе вознаграждение за майнинг, часто называют "вознаграждение за блок". Эта транзакция называется транзакцией coinbase - транзакцией, при которой монеты создаются "из воздуха" и, в большинстве случаев, является первой транзакцией, которая записывается в новую node.

После хеширования каждой транзакции, хеши организуются в нечто, называемое деревом Меркла или хеш-деревом (прим. ред. Merkle hash-tree), которое формируется путем объединения различных хешей транзакций в пары с последующим их хешированием. Затем, данные на выходе объединяются в пары и снова хешируются, - процесс повторяется до тех пор, пока не достигнет "вершины дерева". Верхняя часть дерева также называется корневым хешем или корнем Меркла (Merkle root) и в основном представляет собой один хэш, который включает в себя все предыдущие хеши, что использовались для его генерации.

Далее, корневой хэш - вместе с хешем предыдущего блока и случайным числом, называемым nonce - помещается в заголовок блока. Заголовок блока затем хешируется, и на основе этих элементов (корневого хэша, хэша предыдущего блока и одноразового номера) и нескольких других параметров создается вывод. Результатом является хэш блока, который станет служить идентификатором вновь сгенерированного блока (Candidate Block).

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

Целевое значение - также известное как сложность хеширования - регулярно корректируется протоколом, гарантируя, что скорость создания новых блоков остается постоянной и пропорциональной объему мощности хеширования, выделенной для конкретной сети.

Из этого следует, что каждый раз, когда к сети присоединяются новые воркеры (майнеры) и конкуренция растет, возрастает и сложность хеширования, что не позволяет снижать среднее время блока. И наоборт, если майнеры начинают покидать сеть, сложность хеширования снижается, при этом сохраняя постоянное время блока, даже если для сети выделяется меньше вычислительной мощности!

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

Когда добыты два блока одновременно

Однако иногда случается, что два майнера транслируют действительный блок одновременно, и в сети оказывается два конкурирующих блока. Майнеры начинают майнить следующий блок, основываясь на блоке, который они получили первым. Конкуренция между этими блоками будет продолжаться до тех пор, пока не будет добыт следующий блок на основе любого из конкурирующих блоков. Заброшенный блок называется "сиротским блоком" или "устаревшим блоком". Майнеры этого блока вернутся к майнингу цепочки победившего блока.

Пулы для майнинга

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

4
Оценки пользователей (1 vote)