Страница 2: Майнеры, транзакции и блоки

Выполняемые транзакции отсылаются в сеть локальным клиентом, который выполняет их распространение. Но транзакция еще не подтверждена: этот шаг выполняется так называемым майнером (Miner). Майнер создает блок, транзакция входит в этот блок, после чего считается выполненной. Поскольку все блоки построены друг на друге и формируют цепь (Blockchain), транзакция становится еще более надежной, когда на основе блока с транзакцией формируются дополнительные блоки. Создание блоков – очень вычислительно сложная задача, для неё используется даже специализированное "железо", о котором мы расскажем чуть ниже. Блок содержит транзакции, которые подтверждены, контрольную сумму предыдущего блока и некоторые другие данные, такие как метку времени. К данным добавляется случайное число, после чего они авторизуются хэшем SHA-256. Если эта сумма будет меньше заданного целевого числа (Target), то блок считается корректным, майнер отсылает блок в сеть P2P (если это не так, то выбирается новое случайное число, вычисляется контрольная сумма, хэш, и т.д.). Остальным участникам сети очень легко проверить корректность блока – и корректность транзакции. Такой подход, например, предотвращает платеж одним и тем же биткоином несколько раз.

Расчет блока – процесс полностью случайный. Здесь нет такого индикатора прогресса, как во многих проектах распределенных вычислений, когда после нескольких часов вычислений вы получаете рабочий блок Work Unit (WU). WU в случае биткоинов – это один хэш, который на современных компьютерах рассчитывается за несколько микросекунд. Каждый расчет хэша – это выстрел вслепую, попадет или нет. Поскольку все расчеты полностью независимы друг от друга, то можно говорить о математической вероятности, с которой будет найден блок в массиве хэшей. Конечно, случаются и отклонения от среднего – как выигрыш в лотерею.

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

Вычислительная мощность сети биткоинов (логарифмическая шкала) [источник]

Но для чего майнерам требуется выполнять всю эту работу и находить блоки? Всё очень просто: расчет блока является единственным способом получения новых биткоинов. Здесь нет центрального банка, осуществляющего эмиссию, в отличие от традиционных валют, поэтому распределение денежных средств регулируется по-другому. В самом начале старта биткоинов наградой за вычисление блока были 50 биткоинов, теперь она составляет 25 биткоинов. Награда за корректный блок снижается в два раза каждые 210.000 блоков (примерно 4 года), пока не будут созданы 21 млн. биткоинов. Также и целевое число постоянно меняется, а именно каждые 2016 блоков, что соответствует примерно двум неделям. В среднем, один блок генерируется каждые десять минут. Повышение вычислительной мощности сети биткоинов приводит к уменьшению этого интервала. Чтобы его компенсировать, целевое число снижается, чтобы уменьшить вероятность генерации контрольной суммы ниже целевого числа. Или повысить сложность расчетов. Таким образом, появление новых биткоинов лучше регламентируется.

Кроме того, помимо награды за нахождение блока, вы получите всю плату за транзакции, которая входит в блок. Плата за передачу устанавливается в клиенте, она может быть нулевой. Поскольку размер блока ограничен мегабайтом, возможна запись не всех транзакций. Майнер сам решает, какие транзакции он будет включать в блок, и приоритет отдаётся самым большим комиссионным. Так что плата за транзакции (которая предназначается в том числе и для того, чтобы предотвратить заполнение сети транзакциями), является опциональной, но подтверждение бесплатной транзакции можно не дождаться и несколько часов. На данный момент плата 0,0001 BTC считается достаточной, чтобы транзакция была обработана в ближайших блоках.

Комиссионные небольшие (при нынешнем курсе – несколько центов за транзакцию), но в будущем комиссионные станут более важными для майнеров. В 2022 году будет сгенерировано 90% из 21 млн. биткоинов, и плата за транзакции будет более весомой, чем вознаграждение по поиску нового блока. После генерации всех биткоинов такой способ получения денег станет единственным. В ближайшие годы объём транзакций может возрасти, что может компенсировать постоянное снижение в два раза награды за вычисление блока. Но время покажет. В любом случае, возможности извлечения прибыли уменьшаются.