Как работатет биткоин майнинг?

 

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

Как работает биткоин майнинг?

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

Биткоин майниниг: Создание хэша

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

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

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

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

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

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

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

Майнинг биткоинов: Конкуренция за монеты

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

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

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

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

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