Осторожно! Много текста.
Майнинг криптовалют – это процесс проверки подтверждения транзакций в блокчейне. Во время майнинга также создаются новые единицы криптовалюты. Работа майнеров требует мощных вычислительных ресурсов, но именно она обеспечивает безопасность сети блокчейна. Честные и успешные майнеры получают награду за работу, которая состоит из созданных единиц криптовалюты и комиссий за транзакции.
Введение
Майнинг – это процесс, при котором транзакции с криптовалютами между пользователями проверяются и добавляются в блокчейн. Майнинг также отвечает за добавление новых монет в существующее обращение.
Майнинг является одним из ключевых элементов сети Биткоина, который позволяет ей работать как распределенный реестр. Все транзакции записываются в одноранговой сети без необходимости в центральном органе управления. В этой статье мы рассмотрим механизм майнинга в сети Биткоина, однако процесс аналогичен альткоинам с тем же механизмом добычи.
Как работает майнинг
Все новые транзакции в блокчейне отправляются в пул под названием пул памяти. Задача майнера состоит в том, чтобы проверить достоверность этих транзакций в обработке и организовать их в блоки. Блок можно представить в виде страницы реестра блокчейна, в которой записываются несколько транзакций (вместе с другими данными).
В частности, нода майнинга отвечает за сбор неподтвержденных транзакций из пула памяти и их добавление в блок-кандидат. После этого майнер попытается преобразовать этот блок-кандидат в подтвержденный блок, но для этого ему нужно найти решение сложной математической задачи. Для этого требуются большие вычислительные ресурсы, но за каждый успешно добытый блок майнер получит вознаграждение, состоящее из новых созданных криптовалют, а также комиссии за транзакцию. Ниже мы рассмотрим процесс майнинга подробнее.
Шаг 1. Хеширование транзакций
Первым этапом майнинга блока является получение транзакций в обработке из пула памяти и их поочередная отправка через хеш-функцию. При каждой отправке части данных через хеш-функцию создаются выходные данные фиксированного размера, называемые хешем. В контексте майнинга хеш каждой транзакции состоит из строки цифр и букв, которая работает как идентификатор. Хеш транзакции содержит всю информацию, содержащуюся в этой транзакции.
Помимо хеширования и подтверждения каждой транзакции по отдельности, майнер также добавляет собственную транзакцию, в которой он отправляет себе вознаграждение за блок. Эта транзакция называется coinbase, и она создает новые монеты. В большинстве случаев транзакция coinbase первой записывается в новый блок, и за ней следуют все ожидающие транзакции, которые они планируют проверить.
Шаг 2. Создание дерева Меркла
После хеширования каждой транзакции хеши организуются в структуру под названием дерево Меркла. Также известное как хеш-дерево, дерево Меркла формируется путем организации хешей транзакции в пары с последующим хешированием. Затем новые выходные данные хеша объединяются в пары и снова хешируются. Процесс повторяется до тех пор, пока не будет создан один хеш. Этот последний хеш также называется корневым (или корнем Меркла) и представляет собой хеш, включающий все предыдущие хеши, которые использовались для его создания.
Шаг 3. Поиск действительного заголовка блока (хеша блока)
Заголовок блока выступает в качестве идентификатора для каждого отдельного блока, а это означает, что каждый блок имеет уникальный хеш. При создании нового блока майнеры объединяют хеш предыдущего блока с корневым хешем своего кандидата, чтобы создать новый хеш блока. Однако, помимо этих двух элементов, им также нужно добавить произвольное число, называемое nonce.
Таким образом, при попытке подтвердить свой блок-кандидат майнер должен объединить корневой хеш, хеш предыдущего блока и число nonce и отправить их через хеш-функцию. Их цель – создать хеш, который будет считаться действительным.
Корневой хеш и хеш предыдущего блока изменить нельзя, поэтому майнерам необходимо несколько раз изменить значение nonce, пока не будет найден правильный хеш.
Чтобы считаться действительным, вывод (хеш блока) должен быть меньше определенного целевого значения, которое определяется протоколом. При майнинге биткоинов хеш блока должен начинаться с определенного количества нулей. Именно это и называется сложностью майнинга.
Шаг 4. Передача добытого блока
Итак, майнерам приходится постоянно хешировать заголовок блока с разными значениями nonce до тех пор, пока они не найдут действительный хеш блока. Нашедший его майнер передает свой блок в сеть. Все остальные ноды проверяют, является ли блок и его хеш верными. Если да, то они добавляют новый блок в свою копию блокчейна.
В этот момент блок-кандидат становится подтвержденным, и все майнеры переходят к добыче следующего. Все майнеры, которые не смогли вовремя найти действительный хеш, убирают свой блок-кандидат, и майнинг начинается заново.
Корректировка сложности майнинга
Сложность майнинга регулярно корректируется протоколом, что гарантирует постоянную скорость создания новых блоков. Именно это делает эмиссию новых монет стабильной и предсказуемой. Сложность регулируется пропорционально объему вычислительной мощности (скорости хеширования) сети.
Таким образом, каждый раз, когда к сети присоединяются новые майнеры и растет конкуренция, сложность хеширования будет увеличиваться, предотвращая уменьшение среднего времени создания блока. Если же многие майнеры решат покинуть сеть, сложность хеширования снизится, что упростит добычу. Такие корректировки поддерживают постоянное время создания блока, независимо от общей вычислительной мощности сети.
Что делать, если одновременно добываются два блока?
Иногда случается, что два майнера одновременно передают действительный блок и в сети остаются два конкурирующих блока. Затем майнеры начинают добывать следующий блок на основе того блока, который они получили первым. Это приводит к разделению сети (временно) на две различные версии блокчейна.
Конкуренция будет продолжаться до тех пор, пока не будет добыт следующий блок поверх любого из конкурирующих блоков. Когда добывается новый блок, его предыдущий блок будет считаться победителем. Другой блок называется сиротским или отцепленным. Все майнеры, выбравшие этот блок, затем переключаются на майнинг победителя.
Можно ли майнить все криптовалюты?
Биткоин – самая популярная и известная криптовалюта, которую можно майнить, но это возможно не со всеми криптовалютами. Майнинг биткоинов основан на алгоритме консенсуса под названием Proof of Work (PoW).
Proof of Work (PoW)
Proof of Work (PoW) – это оригинальный механизм консенсуса блокчейна, созданный Сатоши Накамото. Он был представлен в whitepaper Биткоина, опубликованном в 2008 году. Если кратко, то PoW определяет, как сеть блокчейна достигает консенсуса между всеми распределенными участниками без сторонних посредников. Это достигается за счет того, что для действий злоумышленников требуются значительные вычислительные мощности.
Как мы рассказали, транзакции в сети PoW проверяются майнерами. Чтобы получить право на добычу следующего блока, они соревнуются, решая сложные криптографические головоломки с помощью специализированного оборудования для майнинга. Первый майнер, которому удалось найти решение этих математических задач, получает право добавить свой блок в блокчейн и получить награду за блок.
Размер награды за блок в криптовалюте отличается в разных сетях. Например, в блокчейне Биткоина (по состоянию на декабрь 2021 года) в качестве награды за блок майнер получал 6,25 BTC. Количество BTC в награде за блок уменьшается на 50% каждые 210 000 блоков (примерно каждые четыре года) согласно механизму, известному как халвинг.
Различные способы майнинга криптовалют
Существует множество различных способов майнинга. Оборудование и процессы постоянно меняются по мере появления нового оборудования и алгоритмов консенсуса. Обычно майнеры используют специализированные вычислительные устройства для решения сложных криптографических уравнений. Давайте рассмотрим самые популярные способы майнинга.
Майнинг с помощью процессора
Майнинг с помощью центрального процессора (ЦП) предполагает использование ЦП компьютера для выполнения хеш-функций в консенсусе PoW. В первые дни Биткоина стоимость и барьер для входа в майнинг были низкими. Сложность майнинга могла покрываться обычным процессором, поэтому любой мог попытаться добывать BTC и другие криптовалюты.
Однако по мере роста количества майнеров хешрейт сети увеличивался, и прибыльный майнинг становился все более трудным. Кроме того, появление специализированного оборудования для майнинга с большей вычислительной мощностью сделало майнинг на процессорах практически невозможным. Сегодня майнинг с помощью ЦП не является жизнеспособным вариантом, поскольку все майнеры используют специализированное оборудование.
Майнинг с помощью графического процессора
Графические процессоры (GPU) предназначены для параллельной обработки широкого спектра операций. И хотя обычно они используются для видеоигр или рендеринга графики, их также можно использовать для майнинга.
Графические процессоры относительно дешевы и имеют множество вариантов использования по сравнению с популярным оборудованием для майнинга ASIC. Некоторые альткоины можно добывать с помощью GPU, но эффективность будет зависеть от алгоритма и сложности добычи.
Майнинг с помощью ASIC
Интегральная схема специального назначения (ASIC) предназначена для одной контретной цели. В мире криптовалют так называют специализированное оборудование, разработанное для майнинга. Майнинг с помощью ASIC очень эффективен, но предполагает большие затраты.
Майнинг – это состязание. Чтобы получать прибыль от майнинга, вам нужно конкурентоспособное оборудование. Поскольку оборудование ASIC является крайне технологичным, его стоимость намного выше, чем у центральных или графических процессоров. Кроме того, постоянное совершенствование технологии ASIC быстро приводит к снижению рентабельности старых моделей, а это означает, что их необходимо часто менять. Это делает майнинг на ASIC одним из самых дорогих способов, даже без учета затрат на электроэнергию.
Майнинг-пулы
Поскольку награда за блок выдается первому успешному майнеру, вероятность найти правильный хеш крайне мала. У майнеров с небольшими вычислительными мощностями очень мало шансов самостоятельно найти следующий блок. Для решения этой проблемы были созданы майнинг-пулы.
Майнинг-пулы – это группы майнеров, которые объединяют свои ресурсы (мощность хеширования), чтобы увеличить вероятность получения вознаграждения за блок. Если пул успешно находит блок, майнеры распределяют вознаграждение поровну между всеми участниками пула в соответствии с их вкладом.
Майнинг-пулы выгодны для отдельных майнеров с точки зрения затрат на оборудование и электричество, но их доминирование в майнинге создает опасность для атаки 51% в сети.
Резюме
Майнинг криптовалюты является важной частью Биткоина и других блокчейнов с консенсусом PoW. Он обеспечивает безопасность сети и стабильную эмиссию новых монет. У майнинга есть определенные преимущества и недостатки, наиболее очевидным из которых является потенциальный доход, который вы получаете от награды за блок. Однако на прибыль от майнинга влияет целый ряд факторов, в том числе стоимость электроэнергии и рыночные цены. Никто не сможет дать вам гарантии, что вы получите прибыль. Поэтому, прежде чем приступить к майнингу криптовалюты, вы должны провести собственное исследование и оценить все потенциальные риски.