Что такое майнинг биткойнов?

6 июля 2016
Грузовик везет биткойны

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

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

Как происходит майнинг?

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

Создание хеша

Главный реестр или как его еще называют, главная книга, представляет собой длинный список блоков, известных как “blockchain” (цепочка блоков). Он может использоваться чтобы изучить любую транзакцию, сделанную между между любыми биткойн-адресами в любой точке в сети в любое время.

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

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

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

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

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

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

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

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

Конкуренция за монеты

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

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

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

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