Найти в Дзене
Технологии денег

Откуда берутся койны в биткойне

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

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

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

Но для решения ряда задач эти транзакции объединены в блоки, и таким образом, правильнее сказать, что блокчейн биткойна - это последовательно связанный список блоков транзакций. Отсюда и название - цепочка блоков, блокчейн.

Новые монеты в системе появляются тогда, когда формируется новый блок. Формирует блок майнер. В теории это - любой компьютер сети, но в реальности гонка за койнами взвинтила до небес стоимость оборудования, на котором реально хоть что-то намайнить. Но об этом в другой раз. В общем, новый блок формирует майнер, и он в награду получает свои биткойны "из ниоткуда".

Как это выглядит

-2

Участники сети хотят куда-то перечислить свои монеты, и для этого формируют транзакции типа "перевод на сумму X с кошелька Y на кошелек Z". Транзакции могут быть (и почти всегда таковы) сложнее и заковыристее, но пока пусть будут такими простыми. Транзакция сформирована и отправлена в сеть (разослана всем участникам сети). Формируется как бы очередь транзакций, которые надо теперь записать в общую базу данных (блокчейн). Эта очередь еще называется мемпул (mempool, memory pool). Пока транзакция в мемпуле, и не помещена в блокчейн, она как бы еще "не прошла". Вот когда она займет свое место в базе данных (в блокчейне) - тогда все, деньги перечислены. А пока нет.

Майнер выбирает из этого мемпула несколько транзакций и объединяет их в блок (блок-кандидат). И добавляет еще одну транзакцию, от себя: "зачислить 12,5 биткойнов на мой кошелёк Y". Из ниоткуда. "Просто так". Newly Generated Coins, как на скриншоте. Правила позволяют. Теперь у него есть блок, в котором чужие транзакции и одна его, которая идет первой в списке. Блок подготовлен, и теперь его надо "майнить", т.е. подогнать один из служебных параметров блока так, чтобы выполнилось одно уравнение. Уравнение специально сделано очень трудным, чтобы в среднем только раз в 10 минут кто-то мог его решить. Как только наш успешный майнер решает блок, он рассылает его всем участникам сети. И все могут легко и быстро проверить - да, уравнение решено верно, блок верный, его можно записывать в свою копию базы данных. Проверить решение уравнения - это простая работа. Во много раз проще, чем его решить, поэтому каждый узел в реальном времени спокойно его проверяет.

И теперь у майнера в кошельке - 12,5 биткойнов. Это награда за его труд.

Но что, если он вместо "зачислить мне 12,5 биткойнов" напишет "зачислить мне 100500 биткойнов"? Даже если он отмайнит блок (решит уравнение), то никто из узлов сети этот блок не примет. Точнее, никто его в свою копию базы не запишет. Есть договоренность (правило сети): решить уравнение стоит 12,5 биктойнов, и точка. И блок просто не подойдет по формальным правилам. На ваш компьютер прилетел такой блок, ваш кошелёк быстренько проверил и спокойно выкинул этот блок как дефектный. Ничего личного, just business. Майнер зря 10 минут искал решение уравнения. На скриншоте не 12,5 а 12,8, потому что там, на самом деле, не деление пополам, а двоичный сдвиг вправо с округлением вниз.

Конкретно в биткойне есть еще одно правило - награда за каждый блок постепенно падает. Примерно раз в четыре года (каждые 210 000 блоков) награда уменьшается в два раза. Начальная награда была 50 биткойнов, сейчас уже 12,5. И в определенный момент (блок №6 929 999, примерно в 2140 году) она станет нулевой, добыча биткойнов прекратится, их будет 21 миллион в сумме. И система (кошелек каждого узла в сети) проверяет, соответствует ли награда номеру того блока, в котором она указана.

Ну и осталось еще пару нюансов рассмотреть.

Наш майнер - не один в сети. Майнеров много, они все состязаются за эту награду, кто первый разошлет правильно решенный блок. Но каждый майнер по-своему формирует блок-кандидат. Он может выбирать другие транзакции (хотя может и те же самые). Но главное для него - в качестве первой транзакции он пишет "зачислить на МОЙ кошелек 12,5 биткойнов". Даже если бы все майнеры составляли блоки одинаковым способом, все равно первая транзакция была бы у всех разная - зачислить 12,5 биткойнов из ниоткуда, но на разные кошельки (каждый майнер указывает свой кошелек). А это значит, что и уравнение, который каждый из них решает - разное. Кто первый решит, того блок и будет записан во все копии базы. А это значит, что во всех копиях базы будет указано, что в его кошельке прибавилось 12,5 биткойнов. То, что эта транзакция находится в блокчейне (во всех копиях базы), и подтверждает то, что майнер является владельцем этих монет.

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

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

Подписыватесь на канал "Технологии Денег" в Яндекс.Дзен и Телеграм!