Что такое блок в блокчейн-системе, и как он рассчитывается - всё о криптовалютах | Clickchain.ru - журнал о криптовалютах, блокчейн, современных технологиях
ПО ПОРЯДКУ
18:14

Что такое блок в блокчейн-системе, и как он рассчитывается

Что такое блок в технологии блокчейн

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

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

Описание блока

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

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

Если говорить на примере Bitcoin, то после успешной записи нового блока в нем добавляется Bitcoin-адрес. За его нахождение предполагается награда системы в 25 ВТС, которая направляется по добавленному адресу. Направление этой награды становится стартовой транзакцией, которая становится на первое место в этом блоке. Все транзакции в сети адресуются отправителем на остальные узлы. Информация собирается по определенным условиям, что позволяет получать ее всем участникам. Таким образом, новый блок регистрируется в системе, и с ним можно будет проводить дальнейшие транзакции.

Подтверждение транзакции в блоке

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

Заголовок

В заголовке блока присутствует:

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

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

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

Как блок может быть принят пользователями

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

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

Как корректируется число для расчетов хэша

Корректировка числа, с которым сравнивается рассчитанный при создании блока хэш, происходит после создания каждых новых 2016 блоков. Изначально для создания одного блока вся сеть тратит около 10 минут. Для создания всех 2016 блоков потребуется около 14 дней. Если это количество удается сделать ранее такого срока, то цель уменьшается, что приводит к дополнительным сложностям при ее достижении. Если же не удается намайнить данное количество за отведенный срок, то цель становится больше.

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

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

Как создается цепь из блоков

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

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

Где хранится информация о расчетах блоков

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

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Подпишитесь на наш Telegram-канал

Получать последние обновления сайта

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: