Главная / Криптовалюты / Крипто кошельки / Как создается блок Bitcoin и кто забирает награду за блок

Как создается блок Bitcoin и кто забирает награду за блок

Как создается блок Bitcoin и кто забирает награду за блок

В мае 2017 года сеть Биткоин столкнулась с серьезным вызовом. Количество неподтвержденных транзакций в мемпуле достигло значения 200 тысяч, а общий объем необработанных данных превысил 120 Мб. Учитывая, что 1 блок в сети биткоин равен 1 Мб, а среднее время его создания – около 10 минут, очередь из 120 блоков растянулась на несколько суток, поскольку постоянно прибывали новые и новые неподтвержденные транзакции.

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

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

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

Как создается блок Bitcoin и кто забирает награду за блок

В чем же здесь дело? Попробуем разобраться.

Как создается блок Bitcoin?

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

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

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

Как создается блок Bitcoin и кто забирает награду за блок

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

Если же майнер наконец задачу решил, то он сообщает всей сети о получении нового блока. Найденный блок проверяется полными узлами сети, и после проверки включается в блокчейн. Для «подгонки» скорости обработки к росту мощности всей вычислительной сети каждые 2016 блоков происходит перечет сложности, чтобы время на поиск нового блока было примерно равно 10 минутам.

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

Теперь кратко опишем структуру блока.

Структура блока Bitсoin

Блок состоит из заголовка и перечня операций.

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

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

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

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

Как создается блок Bitcoin и кто забирает награду за блок

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

Итак, мы подходим к самому главному. Как же построена работа майнера и за что он получает оплату?

Размер блока и награда майнера

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

Майнер (майнинг-пул) получает оплату за произведенную работу из двух источников:

  • Во-первых, это награда за нахождение нового блока, которая на данный момент составляет 12.5 BTC (в 2020 году произойдет уполовинивание награды).
  • Во-вторых, как только майнер находит новый блок, он автоматически получает плату за все транзакции, которые включены в этот блок.

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

Были предложены множество вариантов решения этой проблемы, от увеличения блоков до создания протоколов более высокого уровня, используемых поверх протокола биткоина. До недавнего времени разработчики склонялись к использованию доработанного протокола Segregated Witness (SegWit), который получил название Segwit2x. С помощью него часть информации должна была быть вынесена за пределы блока, то есть храниться отдельно от цепочки блокчейна, а размер самого блока – увеличиться до 2 Мб, что теоретически позволяло заметно ускорить прохождение транзакций и повысить анонимность.

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

Откуда же берутся пустые блоки?

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

Как создается блок Bitcoin и кто забирает награду за блок

Предположим, что майнер нашел хэш очередного блока, назовем его N. Тогда он сразу же, чтобы не простаивали мощности, должен приступить к поиску блока N+1. В то же время майнер должен передать блок N другим участникам сети, которые должны его загрузить и проверить включенные в блок транзакции. Соответственно, майнер в этот момент решает одновременно две задачи – проверку транзакций блока N и поиск блока N+1.

Если майнер найдет блок N+1 еще до того, как будет проверен блок N – он имеет право заполнять его транзакциями? Нет, не имеет. Ведь в этих новых транзакциях могут оказаться такие, которые опираются на транзакции включенные в блок N, который еще не подтвержден. Даже если в мемпуле скопилась очередь из большого количества неподтвержденных транзакций, которые необходимо включать в блок N+1, майнер не может этого сделать, пока не прошло подтверждение блока N. А раз так, то майнер закрывает блок N+1 пустым, в нем будет только одна coinbase-транзакция, которая формируется автоматически и несет в себе информацию о вознаграждении за создание блока. Получает вознаграждение и приступает к поиску блока N+2.

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

Решение проблемы

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

На момент написания статьи количество неподтверждённых транзакций превышало 160 тысяч, а объем необработанных данных – 117 Мб.

Как создается блок Bitcoin и кто забирает награду за блок

На 2018 год запланировано внедрение сразу нескольких технологических решений, способных разгрузить сеть биткоина и увеличить скорость транзакций.

На май запланирован выход Bitcoin Core 0.16, в который будет внедрен новый формат адреса от разработчика Blockstream Питера Уилля, известный как bech32, который позволит ограничить ошибки от опечаток и снизить риски.

Протокол SegWit получит наконец широкое распространение и позволит снизить стоимость комиссий и время подтверждения транзакций.

Также ожидается внедрение (уже в ближайшее время) протокола Lightning network, который представляет собой решение второго уровня и способен резко снизить стоимость транзакций, а подтверждение сделать почти мгновенным. По словам разработчиков, данные решение способно значительно улучшить работу сети.

Еще одно интересное решение связано с использованием сайдчейнов – альтернативных блокчейнов с монетами, которые привязаны к биткоинам. Они могут предложить быстрое подтверждение, использование смарт-контрактов и множество других удобств. На стадии бета-тестирования находится проект Liquid, разработанный Blockstream, который уже сейчас используется для совершения мгновенных транзакций между биржами, и уже в текущем году может выйти стабильная версия 1.0.

Кроме того, на заключительной стадии находится сразу несколько проектов, призванных повысить анонимность переводов:

  • подписи Шнорра;
  • конфиденциальные транзакции;
  • Rootstock – сайдчейн биткоина.

Об этих технологиях более подробно рассказывали в обзоре биткоине, перспективы Топовой криптовалюты стоит знать наизусть.

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

О нас earnearnings

Смотрите также

Еще один случай успешной атаки 51% — ZenCash. Ранее пострадали Bitcoin Gold и Verge

Согласно официальному блогу ZenCash, примерно в 2:43 UTC 3 июня на ZenCash была осуществлена атака ...