Что такое блок в Биткоине

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

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

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

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

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

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

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

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

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

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

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

Можно рассматривать заголовок блока как своего рода метаданные в верхней части блока транзакций. Заголовок на самом деле представляет собой строку длиной 80 байтов, состоящую из 4-байтового номера версии Биткоин, 32-байтового хеша предыдущего блока, 32-байтового корня Merkle, 4-байтовой метки времени блока, 4-байтовой длины, трудная цель, и одноразовый номер длиной 4 байта, используемый майнерами.

Читайте также:  Что такое Биткоин generator

Чтобы получить наглядное представление, вот заголовок блока для Биткоин-блока 123 456: «010000009500c43a25c624520b5100adf82cb9f9da72fd2447a496bc600b0000000000006cd862370395dedf1da2841ccda0fc489e3039de5fee1e1e1e5e1e5e1105e1301e1

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

Блок-сирота, orphan — это блок, который не имеет известного предка в самой длинной цепочке блоков.

Это блоки, созданные на другом блоке, который больше не является активным концом самой длинной цепи. Некоторые ноды, возможно, считали, что это лучший блок в определенный момент, но они переключились на другую цепь, которая больше не содержит соответствующий блок. Они действительны, проверены, и их происхождение до блока генезиса полностью известно, они просто не активны в настоящее время. Название Сирота исходит из того, что выплаты для таких блоков обозначены как «осиротевшие» (orphaned).

Брошенный блок, abandoned block, stale — это блок, который полностью вычислен, но не стал частью самого длинного блокчейна в сети. Вознаграждение устаревшему блоку не полагается, майнер не получает комиссии. Такая ситуация происходит, когда два майнера получают блок почти одновременно, но один из них быстрее встраивает новый блок в цепь.

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

Это означает, что пользователь мог видеть транзакцию как имеющую одно подтверждение, а затем вернуться к 0 подтверждениям.

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

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

Майнеры в сети Ethereum поощряются за включение в основной блок нескольких анклов во время майнинга. А тот, кто добыл анкл-блок, тоже вознаграждается (хотя и по урезанной ставке), протокол GHOST от Ethereum дает этим сиротам («дядя») экономическую ценность в сети. Два анкл-блока включаются в блок. В Эфириуме действительная цепь — более тяжелая (у Биткоина — более длинная).


Почему сеть создана таким образом, чтобы стимулировать майнеров включать оставленные блоки? Есть две основные причины:

  • это снижает децентрализацию майнинга, так как этот шаг способствует майнингу небольшими пулами или в одиночку;
  • увеличении общей безопасности цепи Ethereum.

Имейте в виду, что анклы также раздувают блокчейн, что становится частью недавней проблемы с Ethereum. Серьезная проблема состоит в том, что награда за блок стимулирует намеренно майнить пустые блоки. Коррекция проводилась в улучшении EIP 100.

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

PS: а если вы просто хотите настроить свою ферму и получать доход без лишних подробностей, идите на майнинг-пул 2Miners. Там всё понятно и просто.

Читайте также:  Биткоин больше чем деньги

Кто-то скажет “это всем ясно” и будет прав, однако давайте подробнее посмотрим на суть цепочки. В среднем каждые 10 минут в сети Биткоина появляется новый блок, а у Эфириума на это уходит 14 секунд. В каждом блоке есть информация о том, какой блок был перед ним. Благодаря этому и выстраивается цепочка блоков — индекс. Можно сравнить его с нумерованным списком или Excel-таблицей. Пропусков не бывает. За номером 1 всегда идёт номер 2, а за 3 будет 4.

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

Вопрос следующий: что произойдёт, если 2 майнера нашли решение блока 101 в одно и то же время? Например, в сети 100 узлов. Майнер А нашел решение блока чуть раньше и успел передать информацию о блоке на 60 узлов. Майнер Б сделал работу позже и успел сказать о найденном решении блока только на 40 узлов. Значит ли это, что А — молодец, а Б — нет? Не факт. Рассмотрим эти тонкости подробнее на примере монет BTC и ETH.

Важный момент. Взять и присвоить себе чужое решение блока не получится. Сети криптовалют защищены от такого рода воровства. Решение блока от майнера А не подойдёт майнеру Б, он не сможет выдать его за своё.

Если что, 10 минут на блок — это среднее время, по факту может быть как несколько секунд, так даже и несколько часов. Допустим, блоки идут быстро, или же ноды общаются между собой не очень быстро.

Майнеры А и Б нашли решение блока 101 примерно в одно и то же время. 60 процентов нод получили новый блок от майнера А, 40 процентов — от майнера Б. На данный момент оба этих блока абсолютно честные, легальные, валидные, как угодно. Сразу после этого майнеры, которые послушали А, нашли еще 2 блока, а майнеры, которые послушали Б, нашли ещё 3 блока.

Как же решить, чья цепь окажется правильной? Решение простое. У последователей майнера Б цепочка длиннее, поэтому она верная. Последователи майнера А, к сожалению, работали напрасно. За свои блоки они ничего не получат.

Помните, что у нас есть индекс, нумерованный список? Так вот, в итоге в него попадает блок 101, который нашёл майнер Б, а дальше — следующие 3 блока, найденные его последователями под номерами 102, 103 и 104. Блок, который нашел майнер А, в индекс не попал. Он остался без отца, его “отрезали”, поэтому такой блок называют сиротой — Orphan. Хорошая новость: у него осталось 2 ребенка, блоки которые были найдены за ним. Плохая новость: смысла в этих блоках нет, они называются Stale, в переводе на русский “протухшие”. Такие вот дочки-матери.

По факту, конечно, вряд ли ноды будут ждать так долго. Уже при наличии следующего блока 102 после спорного блока 101 вся криптовалютная сеть переключится на эту ветку и отбросит другую.

Читайте также:  Что такое Биткоин зебра

Orphan и Stale-блоки часто путают. С точки зрения майнера Биткоина смысла нет ни в том, ни в другом, за них майнер ничего не получает. Ещё эти блоки называют отклонёнными или Reject/Rejected.

Подытожим, у Биткоина бывают следующие блоки:

  • нормальный (валидный) — блок, который включён в цепочку блоков Биткоина. Нашедший его майнер получает вознаграждение.
  • Orphan (сирота) — блок, у которого в цепочке блоков Биткоина нет предшественника (родителя). За Orphan-блок майнер ничего не получает.
  • Stale (потомок сироты) — блок, который не включён в цепочку блоков Биткоина, потому что предшественником является Orphan-блок. Иными словами, цепочка начинается с блока сироты. За Stale-блок майнер ничего не получает.

Среднее время блока в сети Ethereum намного меньше, чем у Bitcoin: 14 секунд против 10 минут. Очевидно, что проблема Orphan и Stale-блоков должна встречаться намного чаще, а значит холостая работа майнеров в теории должна быть велика. К счастью, на практике всё иначе. Разработчики этой криптовалюты внедрили так называемый GHOST-протокол (Greedy Heaviest Observed Subtree).

Смысл GHOST простой — майнеры, которые находят Orphan и Stale-блоки тоже получают вознаграждение, хотя их размер и меньше суммы за нормальные блоки. Такие блоки в сети Ethereum и всех других Dagger-Hashimoto криптовалютах стали называть Uncle. По-русски это звучит как “дядя”.

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

У Эфириума бывают следующие блоки:

  • нормальный (валидный) — блок, который включён в цепочку блоков Биткоина. Нашедший его майнер получает вознаграждение.
  • Uncle — блок, который бы в сети Биткона назывался Orphan или Stale. Данный блок не включается в основную ветку. При этом майнер получает за него более скромное вознаграждение в сравнении с обычным блоком.

Всего у Эфира может быть 7 “вложенностей” анклов, если так можно сказать. В Биткоине это был бы 1 Orphan и 6 Stale блоков за ним. В Эфириуме вознаграждение за Uncle рассчитывается по следующей формуле:

([Номер Uncle блока] + 8 — [Номер нормального блока]) * [Вознаграждение в сети эфира] / 8

Простыми словами, если вознаграждение за обычный блок — 3 ETH, Uncle будет получать на 1/8 меньше.

Самый первый Uncle получит 2,625 ETH, следующий 2,25 ETH, затем 1,87 ETH и так далее до 0,375 ETH. Однако как правило, Uncle-ветка редко идёт далеко. Уже к первому-второму Uncle блоку нода майнера понимает, что ушла не туда, и переключается на майнинг основной цепочки.

Увидеть мельчайшие детали майнинга Эфириума поможет шикарная инфографика в реальном времени под названием Ethviewer. Она показывает основную цепь и цепочки анклов. Завораживает.

Аналог сисадмина в мире криптовалют. Сооснователь проектов 2Bitcoins, 2Miners и 2Masternodes. Отвечает за коммуникацию с партнёрами и клиентами. Ведёт форумы, социальные сети и техподдержку. Сотрудничал с международными IT-проектами.

Читайте далее:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Adblock detector