За счет чего работает Биткоин: ноды и майнеры

07.08.2022
4 мин
2239
4
За счет чего работает Биткоин: ноды и майнеры. Заглавный коллаж статьи.

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

Что делают майнеры?

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

Часто можно услышать, что майнеры решают сложную математическую задачу, но это не совсем так. На самом деле они пытаются быть первыми, кто подберет 64-значное шестнадцатеричное число — хеш, которое меньше или равно целевому значению. Оно состоит из цифр и букв, и для его обработки используется  алгоритм хеширования SHA-256.

Вот как  это происходит: 

  1. Пользователи создают транзакции и транслируют их в сеть;
  2. После этого транзакции попадают в мемпул (от английского memory pool); майнер идёт в мемпул и выбирает транзакции с наивысшей комиссией;
  3. Затем он использует хеш предыдущего блока, точнее заголовок — ту его часть, которая представляет известный набор данных (заголовок содержит хешированную строку символов, в основе которой лежат все транзакции, находящихся в блоке, время и некоторые другие данные);
  4. Далее подбирается число, которое называется нонс. Оно случайное. Затем это число прибавляется к информации, содержащейся в текущем блоке и хешируется (то есть преобразуется через SHA-256). Если этот хеш меньше текущего целевого значения, то майнер объявляет о найденном им выигрышном блоке, а также предоставляет введенные данные (транзакции и нонс), которые были использованы для получения этого числа. Эта информация образует блок;
  5. Остальные майнеры подтверждают достоверность блока и добавляют его в свою копию реестра блоков.

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

Майнеры сами добавляют первую транзакцию в блок, так называемую coinbase-транзакцию, которая подразумевает выплату им вознаграждения (то есть создание и начисление им новых биткоинов в соответствии с правилами консенсуса). Чтобы заработать (и отчеканить) биткоины, необходимо быть первым майнером, который сформирует блок. Первые биткоины и первый блок – genesis block, были созданы Сатоши Накамото. 

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

Как с годами менялась сложность майнинга. Источник: bits.media

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

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

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

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

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

Консенсус Proof-of-work

Как уже выяснили, майнинг — это бесконечный подброс игрального кубика, который включает в себя создание доказательства работы (PoW).

Доказательство работы (PoW)

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

Proof-of-Work является наиболее хорошо зарекомендовавшим себя и проверенным временем средством защиты от атак. Безопасность возрастает с увеличением количества майнеров, при этом сеть устроена так, что сама стимулирует участников вкладываться в неё. Высокая энергозатратность, требуемая для доказательства работы, стимулирует майнеров соответствовать правилам игры. Иначе ресурсы будут потрачены зря. 

Но все же есть и некоторые проблемы, с которыми данный подход сталкивается по мере роста сети. Главные из них:

  • Необходимость огромного количества энергии.
  • Необходимость специализированного оборудования.

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

Сколько времени нужно, чтобы добыть один биткоин?

Как уже упомянули, в сети Биткоина предусмотрен механизм регулировки сложности, который контролирует скорость создания блоков. Новый блок создается в среднем каждые 10 минут. Даже если к сети присоединится больше майнеров, которые увеличат количество хешей в секунду (скорость хеширования), сложность скорректируется таким образом, чтобы блок обнаруживался в среднем каждые 10 минут. Сложность корректируется каждые 2016 блоков, что происходит примерно каждые две недели. Алгоритм автоматически настраивает скорость нахождения блока: если на поиск блоков в предыдущем периоде ушло в среднем более или менее десяти минут, сложность увеличивается или уменьшается, чтобы частота нахождения блоков вернулась к изначально оговоренному значению.

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

Зачем нужны ноды?

Нода (узел) – это компьютер, на котором работает программное обеспечение сети Bitcoin. Их огромное количество и все они взаимодействуют друг с другом и образуют своеобразную сеть.

Биткоин-ноды сотрудничают с Биткоин-майнерами для поддержания целостности системы.

Ноды постоянно обмениваются друг с другом информацией, чтобы убедиться, что хранящиеся ими данные о последних блоках актуальны и верны. Они проверяют каждый блок на соответствие правилам сети. Их список включает в себя следующее:

  • каждая транзакция в блоке должна быть правильно подписана;
  • правильно структурирована;
  • сумма внутри не должна превышать количество входов;
  • выходы должны быть правильно отформатированы;
  • вознаграждение за майнинг не должно тратиться ранее чем через 100 блоков;
  • объем данных в блоке не должен превышать определенного значения.

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

В техническом документе Биткоина описаны два типа нод:

  • Полная нода (full node)

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

  • Легкий клиент / SPV-клиент

Облегченный или упрощенный клиент для проверки достоверности состояния цепочки. Аналогичен полным нодам в том, что он проверяет состояние блокчейна. Однако легкие ноды хранят лишь определенный объем информации, находящейся на пике блокчейна (например, последние 5 гигабайт данных).

Прежде чем рассмотрим как работает транзакции в сети первой криптовалюты, давайте узнаем, что случится, когда все биткоины будут намайнены:

Как вам статья?

4
0

статьи на эту же тему

Топ-5 бесплатных способов ускорить...
avatar Denis Solomyanyuk
15.04.2024
Решения второго уровня для биткоина...
avatar Nikita Tipikin-Holovko
20.03.2024
Халвинг биткоина в 2024 году: когда...
avatar Andrew Makarov
06.03.2024