Блок в блокчейне — это единица, хранящая вложенные в неё данные, собственный хэш блока и хэш предыдущего блока.
Цепь блоков - это структура и основа базы данных блокчейна.
1. Данные: В блоке могут храниться любые данные.
2. Хэш блока: уникальный номер блока, который формируется из данных, находящихся внутри блока, и хэша предыдущего блока.
3. Хэш предыдущего блока: уникальный номер предыдущего блока, созданного в цепочке блоков блокчейна. Примечание: в блокчейне может быть только одна последовательность блоков в цепочке. Она не раздваивается, и в одной сети блокчейна не может существовать две параллельные цепочки блоков.
Однако в редких случаях возможно, что несколько блоков создаются одновременно. В таком случае ветвь, к которой раньше будет добавлен следующий блок, становится действительной. Ранее созданный блок из другой ветви перестаёт быть актуальным и просто удаляется. Информация из этого блока переносится в массив данных, ожидающих формирования следующего блока.
Кто и как создает блоки в сети блокчейн Блоки в блокчейне создают ноды. В зависимости от вида блокчейна роль нода может отличаться:
- Одни ноды только создают блоки.
- Вторые проверяют блоки.
- Третьи создают данные, которые будут храниться в блоках.
Нод, имеющий специальное программное обеспечение, берёт данные и формирует из них блок. Затем он берёт хэш предыдущего блока и с помощью специального алгоритма хеширует их, формируя уникальный хэш нового блока.
В зависимости от типа сети блокчейна условия формирования блока могут дополняться или сопровождаться дополнительной обработкой данных. Например, в системе Биткойн для создания нового блока требуется решение математической задачи — доказательство выполнения работы (Proof of Work, PoW).
Правильный блок — это блок, у которого числовое значение хэша не превышает целевого числа. Значение этого числа периодически корректируется. Если хэш не удовлетворяет условие, в заголовке блока изменяется параметр nonce, после чего хэш пересчитывается.
(Блоки формируются каждые 10 минут)
В других блокчейнах, например Эфириум, используется алгоритм консенсуса (Proof of Stake, PoS). В этой системе транзакции осуществляются и подтверждаются не за счёт активного участия вычислительных мощностей, а благодаря активным монетам. В результате важность майнинга значительно снижается.
(Блоки формируются каждые 15 секунд.)
Существует 3 вида блоков.
1) Блок генезиса — это первый блок, созданный в блокчейне. Он закладывает фундамент для других блоков, которые будут созданы на его основе.
2) Действительные блоки — блоки, содержащие данные и другие важные сведения, которые являются частью основной цепочки.
3) Сиротские блоки — это блоки, которые существуют или существовали вне основной цепочки, но были отброшены сетью.
1. Блок генезиса
Блок генезиса в блокчейне — это первый блок в блокчейн-сети, который является основой и прототипом для создания всех остальных блоков. Он выступает в качестве фундамента, на который добавляются последующие блоки, формируя нерушимую цепочку транзакций.
Особенности блока генезиса:
1) Отсутствие предыдущего блока. У него нет предыдущего блока для ссылки, поэтому он содержит жёстко закодированный набор данных, который инициализирует сеть и устанавливает основу для последующих блоков.
2) Фиксированное вознаграждение за блок. Во многих блокчейн-сетях блок генезиса является единственным блоком с фиксированной ценой вознаграждения.
3) Уникальный хэш блока. Блок генезиса обладает уникальным хэшем, который служит его идентификатором в блокчейне.
Роль блока генезиса:
Блок генезиса обеспечивает целостность и безопасность блокчейн-сети. Он служит отправной точкой для проверки подлинности последующих блоков и транзакций, создавая основу доверия в децентрализованной системе
2. Действительные блоки
Действительные блоки в блокчейне — это все блоки, которые были успешно добыты и добавлены в основную цепочку блокчейна. Они содержат транзакции и информацию, которая прошла проверку всеми узлами сети.
3. Сиротские блоки
Сиротские блоки (или "блоки-сироты") — это блоки, которые соответствуют всем правилам сети, но были отклонены и отброшены сетью. Это происходит, потому что они не входят в самую длинную и основную цепочку блоков.
Почему возникают сиротские блоки?
- Одновременное создание нескольких блоков: из-за различий в скорости интернета между узлами, вычислительных мощностей и других факторов. Однако важно понимать, что конечный узел получает оба блока одновременно, а не поочередно.
Параллель может возникнуть в ситуации, когда два нода добавляют данные практически одновременно, а между ними существует третий промежуточный нод. Расстояние между узлами в этом случае не имеет большого значения — важнее скорость интернета и мощность оборудования. Тем не менее, подобные случаи встречаются крайне редко.
Сиротские блоки не участвуют в сети, а их данные возвращаются в пул для включения в будущие блоки.