Биткоин блоки: Blockchain Explorer — Search the Blockchain | BTC | ETH

Содержание

Bitcoin in a nutshell — Blockchain / Хабр

Blockchain — это технология, на базе которой построен Bitcoin. И если пару лет назад вся слава доставлась криптовалюте, то сегодня все чаще можно слышать смелые фразы вроде: «Forget Bitcoin, Long Live Blockchain». Активно развиваются платформы вроде Ethereum, IPFS или Overstock, которые рассматривают блокчейн не как инструмент для создания еще одной платежной системы, а как совершенно обособленную технологию, сравнимую по своей инновационности разве что с Интернетом.

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


Book



Table of content


  1. Blockchain for dummies
  2. Structure
  3. Merkle tree
  4. Timestamp
  5. Raw block
  6. Links

Blockchain for dummies

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

И если блокчейн целиком — это книга, то отдельные блоки можно представлять как страницы, на которых «записываются» транзакции. Кажый блок «ссылается» на предыдущий и так до самого первого блока (genesis block). Именно это и создает такую интересную особенность блокчейна, как неизменяемость. Нельзя взять и изменить блок #123 так, чтобы этого никто не заметил. Потому что блокчейн устроен таким образом, что это повлечет изменение блока #124, потом #125 и так далее, до самого верха.


Structure

Привычным движением руки открываем спецификацию протокола и смотрим на структуру блока.


  • version — версия блока
  • prev_block — хэш предыдущего блока (parent block)
  • merkle_root — если упрощенно, то это хэш всех транзакций в блоке
  • timestamp — дата и время создания блока
  • bits, nonce — про эти параметры я подробно расскажу в главе Bitcoin in a nutshell — Mining
  • txn_count, txns — число транзакций в блоке и их список

Первые шесть параметров (все кроме txn_count и txns) образуют заголовок блока (header). Именно хэш заголовка называют хэшем блока, то есть сами транзакции непосредственного участия в хэшировании не принимают.

Вместо этого они заносятся в особую структуру — дерево Меркла, про которую я расскажу ниже.


Merkle tree


Technical side

Дерево Меркла — это структура данных, также известная как бинарное дерево хэшей. В случае Bitcoin оно строится следующим образом:


  1. Сначала считаются хэши всех транзакций в блоке hash_A = SHA256(SHA256(A))


  2. Потом считаются хэши от суммы хэшей транзакций hash_AB = SHA256(SHA256(hash_A + hash_B))


  3. Точно также считаем хэши от суммы получившихся хэшей hash_ABCD = SHA256(SHA256(hash_AB + hash_CD))

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


  4. Процесс продолжается до тех пор, пока не получится один единственный хэш — он и называется merkle_root (третье поле в header блока)


Ниже приведена реализация дерева Меркла, можете проверить ее на каком-нибудь блоке.

import hashlib

# Hash pairs of items recursively until a single value is obtained
def merkle(hashList):
    if len(hashList) == 1:
        return hashList[0]
    newHashList = []
    # Process pairs. For odd length, the last is skipped
    for i in range(0, len(hashList)-1, 2):
        newHashList.append(hash3(hashList[i], hashList[i+1]))
    if len(hashList) % 2 == 1: # odd, hash last item twice
        newHashList.append(hash3(hashList[-1], hashList[-1]))
    return merkle(newHashList)

def hash3(a, b):
    # Reverse inputs before and after hashing
    # due to big-endian / little-endian nonsense
    a1 = a.decode('hex')[::-1]
    b1 = b.decode('hex')[::-1]
    h = hashlib.sha256(hashlib.sha256(a1 + b1).digest()).digest()
    return h[::-1].encode('hex')

Immutability

Теперь о том, зачем это нужно в Bitcoin. Я думаю, вы понимаете, что если изменить хотя бы одну транзакцию, то merkle_root также изменится. Поэтому такая структура данных позволяет обеспечить «неподделываемость» транзакций в блоке. То есть не может произойти следующей ситуации:


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

Для проверки достаточно посчитать merkle_root самостоятельно и сравнить его с тем, что записан в header блока.


SPV

Но здесь можно резонно возразить, что, во-первых, такие сложности совершенно ни к чему. Достаточно просто посчитать хэш от суммы всех транзакций в блоке txns_hash = SHA256(SHA256(sum(txns))) — он точно также изменится после любых манипуляций с транзакциями. А, во-вторых, что мешает злоумышленнику подменить merkle_root в блоке? На второй вопрос отвечу сразу: на самом деле в блоке вообще нельзя ничего изменить, потому что блок тут же станет невалидным (это вы поймете после прочтения следующей главы Bitcoin in a nutshell — Mining).

А дерево Меркла нужно на самом деле для того, чтобы иметь возможность создавать SPV nodes (Simplified Payment Verification). Такие ноды синхронизируют только заголовки блоков, без самих транзакций. В результате блокчейн занимает на порядок меньше места (для красоты возьмем высоту в 500.000 блоков, размер header фиксирован — 80 байт):


500.000 * 80 / 1024 / 1024 ≈ 40 Мб

Такой блокчейн уже можно без проблем уместить на телефоне, планшете или каком-нибудь IoT. Что в перспективе должно дать большую децентрализацию, безопасность сети и так далее.

Суть упрощенной верификации платежей в следующем: пусть у вас есть SPV нода. У меня же есть весь блокчейн целиком и мне нужно вас убедить, что какая-нибудь транзакция действительно была (на картинке это транзакция K). В этом случае, мне достаточно всего лишь предоставить вам несколько хэшей: H_L, H_IJ, H_MNOP, H_ABCDEFGH, они еще называются authentication path.

После чего вы сначала считаете H_K = SHA256(SHA256(K)), потом H_KL = SHA256(SHA256(H_K + H_L)) и так до самого верха. Если в итоге вы находите у себя блок с таким же merkle_root, то факт существования транзакции считается подтвержденным.

BTW Ральф Меркл даже запатентовал свою структуру данных, о чем свидетельствует патент US4309569 A.


Timestamp

Еще один интересный вопрос. Представим, что где-то в сети появился появился новый блок и ноды начинают передавать его друг-другу. Каждая нода должна убедиться в том, что блок корректен. Для этого она:


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

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

Поэтому для проверки timestamp на валидность было придумано два критерия. Во-первых, он должен быть больше, чем среднее арифметическое timestamp-ов предыдущих 11 блоков. Это делается для того, чтобы не получилось так, что блок #123 вышел 12 марта 2011 года, а #124 — 13 февраля 1984. Но в тоже время допускается некоторая погрешность.

Во-вторых, timestamp должен быть меньше чем network adjusted time. То есть нода, при получении нового блока, интересуется текущим временем у своих «соседей» по сети, считает среднее арифметическое и если block timestamp меньше получившегося значения + 2 часа, то все в порядке.

BTW как вы видите, timestamp нового блока может оказаться даже меньше, чем timestamp более раннего блока. Это не такая уж и редкость, например #145045, #145046 и #145047.

145044: 2011-09-12 15:46:39     
145045: 2011-09-12 16:05:07 
145046: 2011-09-12 16:00:05 // ~5 minutes before prior block
145047: 2011-09-12 15:53:36 // ~7 & ~12 minutes before 2 prior blocks
145048: 2011-09-12 16:04:06 // after 2 prior blocks but still before 145045

Raw block

Если у вас до сих остались какие-то вопросы по структуре блока, то предлагаю вам посмотреть на них в «сыром» виде.

Самый очевидный способ это сделать — запустить на пару часов bitcoind --daemon, а потом исследовать уже скачанные блоки. Но, во-первых, не у всех есть время / желание синхронизировать блокчейн. Во-вторых, в Bitcoin блоки хранятся в крайне специфической базе данных LevelDB, еще и довольно странным образом. А так как книга расчитана не только на опытных разработчиков, то я пойду уже проверенным путем и снова использую протокол в его первозданном виде.

Для получения блока отправим сообщение getdata, в котором укажем type : MSG_BLOCK и hash : 000000000003ba27aa200b1cecaad478d2b00432346c3f1f3986da1afd33e506 — это хэш блока #100.000. Весь код целиком можете посмотреть здесь.

def getdataMessage():
    block_hash = '000000000003ba27aa200b1cecaad478d2b00432346c3f1f3986da1afd33e506'

    count = struct.pack("<B", 1)
    inventory = struct.pack("<L", 2) # type : MSG_BLOCK
    inventory += block_hash.decode('hex')[::-1]

    return count + inventory


Links


Просто о Blockchain, ч3.

Блок.. Что же такое Блок, и зачем он нужен? | by Aleks Zinevych

Aleks Zinevych, Lead Software Engineer at Datamart

Элементарной частицей любой блокчейн сети и платформы является Блок.

Вернемся к примеру с Excel таблицей в первой части.

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

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

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

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

Каждый Блок состоит из двух главных частей — Заголовка (Head) и Тела (Payload).

Payload — содержит список всех транзакций, которые должны быть сохранены в данном Блоке и попасть в Blockchain.

Head — содержит информацию которая отвечает за стабильность, а также иммутабельность сети.

В классическом блокчейне Head содержит такие поля:

  • Номер версии(Version)
  • Хеш предыдущего блока(prev_block)
  • Хеш всех транзакций в текущем блоке(mrkl_root)
  • Временную метку когда этот блок был создан(Time)
  • Bits и Nonce, которые используют в майнинге

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

Для получения хеша всех транзакций в Блоке, используют не просто хеш функцию, а специальный алгоритм Мёркла, о котором мы поговорим в следующей части. Результатом работы этого алгоритма будет 256-битный хеш, который и будет использоваться далее, для получения общего хеша всего блока.

Хеш блока, состоит из 6 полей заголовка блока. Возьмем к примеру блок, чей Заголовок(Head), выглядит так:

Для того чтобы посчитать хеш всего блока нужны поля: version, prev_block, mrkl_root, time, bits, nonce. Каждое значение должно быть переведено в правильный hex формат. В нашем случае правильный little-endian формат. Детально об этом формате можно прочитать здесь, но если коротко то big-endian и littleendian это форматы которые определяют в каком порядке хранятся байты в памяти.

version

В hex формате будет выглядеть:

0x20000000

а в little-endian формате:

0x00000020

prev_block

В hex формате будет выглядеть:

0x0000000000000000034f2855c116b426305d82a54b29cceb32641da639aeef82

в little-endian формате:

0x82efae39a61d6432ebcc294ba5825d3026b416c155284f030000000000000000

mrkl_root

В hex формате будет выглядеть:

0x160ebb4ccf13cd61cdde124e661d6f93f693025ff8cc76baf6cb3de51c76b994

в little-endian формате:

0x94b9761ce53dcbf6ba76ccf85f0293f6936f1d664e12decd61cd13cf4cbb0e16

time

Временная метка создания блока, целочисленное значение после конвертации в hex выглядит:

0x58559369

в little-endian формате:

0x69935558

bits

Сложность bits для начала из decimal формата переводим в hex формат:

0x18038B85

в little-endian формате:

0x858B0318

То же самое сделаем со значением nonce. В hex формате это будет:

0x5E5BB3BC

в little-endian формате:

0xBCB35B5E

Теперь нам нужно сделать конкатенацию всех значений в little-endian формате которые мы получили выше:

0x00000020

0x82efae39a61d6432ebcc294ba5825d3026b416c155284f030000000000000000

0x94b9761ce53dcbf6ba76ccf85f0293f6936f1d664e12decd61cd13cf4cbb0e16

0x69935558

0x858B0318

0xBCB35B5E

Результатом будет такое значение:

0x0000002082efae39a61d6432ebcc294ba5825d3026b416c155284f03000000000000000094b9761ce53dcbf6ba76ccf85f0293f6936f1d664e12decd61cd13cf4cbb0e1669935558858B0318BCB35B5E

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

Воспользуемся онлайн калькулятором который находиться по этой ссылке. Первый шаг, это посчитать SHA-256 хеш для значения указанного выше:

Теперь, повторим эту же операцию с полученным результатом:

Теперь нужно конвертировать полученное значение в little-endian формат:

000000000000000000b57d57fc57e022fbebc6fbdee108095dcf1bfcdd68b4d5

Полученное значение совпадает со значением поля hash, блока который я описал в самом начале.

Таким образом, хеш каждого блока, состоит из хеша не только собственных данных, а еще и хеша предыдущего блока. Визуально это выглядит вот так:

Используя методы криптографии, у нас формируется последовательность блоков, которая и называется Blockchain.

Что такое блок Биткоина и за что отвечает его размер, что это, структура, характеристики, пример

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

Забавный момент: сразу после запуска сети Биткоина в 2009 году размер его блоков составлял 36 мегабайтов. 14 июля 2010 года он был уменьшен до одного мегабайта.

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

Что такое Биткоин блок?
Блок - это информация о транзакциях в сети Биткоина. Его можно представить себе в виде страницы в бухгалтерской книге (блокчейне). Страницы нельзя "вырвать" - записи заносятся в блокчейн навечно.

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

Блок Биткоин: почему его размер так важен?

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

В начале 2013 года блоки Биткоина были заполнены в среднем на 125 килобайт. К маю 2015 года этот показатель уже вырос до 425 килобайт, при этом блоки стабильно заполнялись полностью несколько раз в день. То есть транзакций пользователей было достаточно.

Биткоин блоки: как они формируются?

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

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

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

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

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

Из чего состоят блоки биткоин: структура

Как отмечалось, блок состоит из заголовка и перечня операций.

Свойства заголовка:

  • Hash — хеш (алгоритм SHA-256). Этот hash носит случайный характер, поэтому время его определения легко предсказать. Хешированию подлежит только заголовок, а к операциям в криптовалютной цепи это не относится. Количество транзакций не оказывает значительного воздействия на расчёт хеша.
  • Prev_block — свойство хеша прошлого блока в цепи блокчейн. Наличие такой характеристики повышает надежность сети и усложняет ее подделку. Если внести правки в один, придётся переделывать остальные.
  • Version — версия блочной схемы (сегодня она одна — 1).
  • Time — uint32_t — свойство, характеризующее период, за который создаётся очередной блок. По замыслу создателя Bitcoin, последний элемент цепи будет добыт в 2106 году.
  • Mrkl_root — перечень хешей операций. Суть в том, что хеш блока находится в прямой взаимосвязи с операциями в сети. Цель — защита цепи от подделки. Непосредственное вычисление при большом числе операций занимает много времени. Вот почему сначала хешируются операции в цепи, а далее хеши применяются для расчета хешей. Необходимость таких действий объясняется следующей разницей — обновление хеша транзакции происходит после добавления к элементу цепи новой операции. Вычисление хеша заголовка происходит чаще — до 3-5 тысяч в секунду.
  • Bits — главный параметр, сокращённый вариант значения хеша. Следующий элемент признается сетью и добавляется к цепи в том случае, если его хеш не превышает параметр bits. От этого параметра зависит сложность добычи нового блока. Обновление числа осуществляется с периодичностью раз в 14 дней.
    Принцип расчета прост. Сначала вычисляется объем созданных блоков за 14 дней, после чего полученное число сравнивается с эталонным значением. Как отмечалось, на создание одного уходит 10 минут. С ростом блоков сложность возрастает и наоборот. Система подстраивается под количество участников и общую мощность подключенного оборудования.
  • N_tx — число операций в перечне.
  • Nonce — параметр, который подбирается до момента, пока значение хеша не будет ниже bits. Для того, чтобы новый хеш имел отличия от прошлого, должен различаться хоть один из параметров. Версия неизменна, хеш прошлого блока обновляется с появлением нового элемента цепи, список хешей меняется при включении в него новой транзакции, время обновляется каждую пару секунд, а целевой параметр — раз в 14 дней. Чтобы не ожидать обновления любого из перечисленных свойств, существует параметр nonce.
  • Size — величина блока (измеряется в байтах).
  • Следующий элемент блока — операции в криптовалютной сети. Они имеют вид перечня, который формирует блок и становится составляющей цепи. Каждый пункт списка (транзакция) показывает отправителя и получателя перевода.

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

    Список транзакций реализуется с помощью таких свойств:

  • Hash — параметр, указывающий на хеш операции. Это значит, что хеширование транзакции происходит два раза — при расчёте хеша операции, а после при расчёте хеша. В блокчейне работает принцип взаимосвязи элементов цепи. Это значит, что хеш нового блока ссылается на хеш идущего перед ним элемента цепи. По аналогичному алгоритму построена и система транзакций. Если заменить проведенную операцию и сохранить при этом хеш, разрушатся остальные хеши, а сама цепь будет отклонена пользователями сети.
  • Vout_sz — число адресов, куда переводятся средства (может колебаться от одного и больше).
  • Vin_sz — число прошлых операций, в которых средства перечисляются новым получателям (от 1 и больше).
  • Ver — версия (пока неизменна — 1).
  • Size — объем операции (единица измерения — Байты). Формат — JSON.
  • Loch_time — свойство, которое пока не применяется и равно нулю. Суть замысла в том, чтобы выполнять операции с отсрочкой по времени. В результате они подключаются не к идущему в данный момент блоку, а к будущему или через один элемент. В свойстве Loch_time показывается число элементов цепи, которые требуется игнорировать перед включением транзакции. Потенциально опция может применяться в ситуации, когда требуется отмена операции и ее переподпись.
  • In — свойство, в состав которого входит перечень входов транзакции. Здесь применяются выходы прошлых операций, о которых упоминалось ранее (prev_out). Все выходы имеют индивидуальные свойства, а именно — Hash (хеш прошлой операции), n (порядковый номер операции) и scriptSig. Отправитель обязан доказать, что переводит личные средства. Это происходит путём указания общедоступного ключа прошлой операции, а также включения частного ключа (подписи ECDSA). Этого достаточно, чтобы доказать акт применения собственных денег.
  • Out — перечень выходов. Как и ранее, здесь имеются определенные свойства — Value и ScriptPubKey. Первое включает в себя объём средств, направляемых адресату. Информация берётся из прошлых операций, поэтому общее число не может быть больше итоговой суммы уже выполненных транзакций. Свойство Valuo прописывается в наномонетах (это делается, чтобы исключить появление дробей). Второе свойство представляет собой определенный сценарий. Он состоит из хеша общедоступного ключа и оператора языка. Суть — изучение транзакции и подтверждение ее валидности.
  • Общий объем средств на входе операции с криптовалютой идентичен с числом монет на выходе. Раз в 4 года происходит снижение вознаграждения вдвое, что стабилизирует число криптовалюты в обороте. Если вдруг появится мошенник, который подставит блок и присвоит 100 монет, то он не приживется в цепи из-за отторжения честными участниками сети. Вот почему чем больше пользователей, тем надежнее система.

    Как выглядят bitcoin блоки: пример

    С учетом приведенной выше информации можно привести пример блока Биткоина:

  • Hash(хеш): 00000000000008c21dbf4715d5da1a288061faa21e930dd8df6ae25c8b56d868.
  • Previous block (прошлый блок): 000000000000056a7dcf273f627c2a17c55ffe1937a6ef2bc467d9c524312da2.
  • Difficulty (сложность): 1 690 895.803053. Bits — 1a09ec04.
  • Transactions (транзакции): 185.
  • Total BTC (общее число Биткоинов): 4251.63216934.
  • Size (размер): 58.914 kilobytes.
  • Merkle root (список хешей): 98c5d975bf556f0344770eee7ab31688a2c108223c14sea908ff99b0ab8fe947.
  • Nonce: 3723463451.
  • В качестве аналогии можно сравнить обычные банковские транзакции с операциями в сети Биткоин.

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

    С помощью чего можно сделать обзор блоков Биткоин?

    Рассмотрим популярныйобозреватель блоков — blockchain.com. Сайт имеет русскоязычный интерфейс и понятную структуру. Перейти в обозреватель можно следуя пути: Данные — Проводник, или нажать на окошко поиска.

    В строке поиска необходимо прописать данные, информацию о которых вы хотите узнать:

  • Адрес Биткоина.
  • Txid транзакции.
  • Высота (номер).
  • Например, вы хотте получить информацию о биткойн-адресе: 1PfGzi59sW7eDtHuRBKaFV7QyuRkdY3pA2. Нужно скопировать его и вставить окно поиска. В соседнем поле выбрать криптовалюту Bitcoin и нажать «Поиск».

    Появится страница с полной информацией:

  • Текущий баланс.
  • Число транзакций, Txid и суммы.
  • Адрес отправителя или получателя транзакции.
  • При переводе криптовалюты с кошельков и криптобирж, при обмене между людьми и в других случаях предоставляется TXID (TxHash). Это и есть идентификатор транзакции, по которому можно отследить был ли совершен перевод, подтверждена или нет операция, узнать адрес отправителя и точную сумму перевода. Это очень важная информация и необходимо знать, как и где посмотреть статус биткоин-транзакции.

    Для этого указываем TXID в окне обозревателя:

    Появится информация:

  • время включения в блок и поступления в очередь;
  • размер в байтах;
  • номер блока, в который включена транзакция;
  • количество подтверждений;
  • количество входов и выходов;
  • комиссия;
  • адреса получателя и отправителя.
  • На примере ниже, транзакция имеет одно подтверждение (нужно как минимум 6):

    Для просмотра сведений о блоке нужно указать в блокчейн-обозревателе его высоту (номер). Отобразятся следующие данные:

  • хэш блока;
  • хэши предыдущего и следующего блоков;
  • время включения в блокчейн;
  • сложность;
  • общее количество транзакций;
  • размер;
  • комиссия;
  • награда майнерам;
  • объём;
  • пул и другие параметры.
  • Другие мониторинги, которые позволят узнать все про блоки BTC
  • https://localbitcoinschain.com/ — обозреватель от биржи LocalBitcoins. Поддерживаются Segwit и Bech42 адреса.
  • https://bitinfocharts.com/ru/bitcoin/ — удобный сервис с графиками.
  • https://coin-cap.pro/ru/blockexplorer/ — позволяет легко и быстро сделать обзор блоков Биткоин.
  • https://live.blockcypher.com/ — принцип получения данных не отличается от других ресурсов: вводим адрес, идентификатор транзакции, блок и получаем показатели блокчейн-сети. Например:
  • Общие вопросы про биткоин блоки

    Рассмотрим ответы на самые популярные и часто задаваемые вопросы касательно блоков в различных блокчейнах.

    Какое количество блоков биткоин может быть в сети?

    Максимального количества не существует, блоки просто продолжают добавляться в конец цепочки со средней скоростью:

    Монета

    Время блока

    Bitcoin

    10м 52с

    Ethereum

    13.42с

    Bitcoin Cash

    9м 46с

    Litecoin

    2 м 32 с

    Tron

    3c

    BitcoinSV

    9м 38с

    Dash

    2 м 38 с

    Zcash

    1 м 15 с

    Ethereum Classic

    13.15c

    Будут ли создаваться Bitcoin блоки, когда все монеты одной криптовалюты будут сгенерированы?

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

    В сети Биткоин сколько блоков на данный момент?

    Эту информацию можно найти в любом обозревателе.

    На момент написания статьи 23 июня 2021 года в 11.00 по МСК в сети было 688 566 блоков.

    блоков — Биткойн (BTC) — BTC.com Профессиональная служба данных для глобальных энтузиастов блокчейна

    блоков — Биткойн (BTC) — BTC.com Профессиональная служба данных для глобальных энтузиастов блокчейна Высота Разрешено Время TX Count Reward (BTC) Размер (КБ) Размер (КБ) Объем (BTC) 723,709

    458

    6.26670421

    300,95

    0,01670421

    +645,85231669

    723708

    1340

    6,29570115

    959,19

    0,04570115

    4,507.53159021

    723 707

    176

    6.25551680

    119. 91

    0,00551680

    208.13362685

    723706

    1758

    6,32680839

    1,285.73

    0,07680839

    35,776.28636127

    723705

    205

    205

    6.25596530

    82.32

    0.00596530

    140.41386884

    723704

    169

    6,25682867

    176,25

    0,00682867

    +417,70227567

    723703

    1014

    6,28848404

    893.72

    893.72

    0.03848404

    723,702

    1 128

    6.28549117

    1,082. 04

    0,03549117

    1,972.10095409

    723.701

    1.401

    6,32046156

    1,355.33

    0,07046156

    34,440.64544315

    723 700

    2 214

    6,34308977

    1,435.77

    0.09308977

    71,747.60603031

    723699

    197

    6,26343768

    175,57

    0,01343768

    +646,75859600

    723698

    870

    870

    6.28511734

    671.26

    0,03511734

    32 287.092

    723697

    127

    6,25494993

    117,81

    0,00494993

    +432,

    540

    723696

    1218

    6,28582281

    638. 71

    638.71

    0.035822281

    5 632.00056202

    723 695

    206

    6.260

    141,40

    0,010

    +318,95730089

    723694

    1056

    6,28314434

    510,17

    0,03314434

    1,591.83041254

    723 693

    491

    6.26

    8

    411.57

    +0,01

    8

    30,798.62522779

    723.692

    1.291

    6,296

    1,092.67

    0,046

    31,903.78837592

    723.691

    224

    6,25740483

    153,42

    0. 00740483

    30,288.89853120

    723690

    179

    6,25536097

    111,14

    0,00536097

    +138,32630853

    723689

    962 3594

    723.688

    1.576

    6,30625679

    1,124.94

    0,05625679

    2,570.82926745

    723.687

    224

    6,25652612

    102.53

    319.56808563

    723 686

    632

    6.27219284

    306,47

    0,02219284

    31,048.55427906

    723685

    493

    6,27483054

    235,30

    0,02483054

    +562,548

    723 684

    1 813

    6,36547382

    1,243. 43

    0,11547382

    3,008.22174646

    723683

    1451

    6,31028749

    972,60

    0,06028749

    4,142.25325312

    723682

    988

    988

    988

    6.29262035

    1 911.66

    0.04262035

    1 472.70112819

    723681

    676

    6,34089537

    863,93

    0,037

    61,866.

    202

    723680

    +1064

    6,30130319

    1 246.05

    0.05130319

    2 723 679

    1 757

    6.31735267

    1,132. 92

    0,06735267

    5,585.31441301

    723.678

    1.336

    6,30628909

    798,96

    0,05628909

    3,381.96876499

    723 677

    1 096

    6.29955142

    949.08

    +0,04955142

    1,141.63122483

    723676

    617

    6,26286191

    540,80

    0,01286191

    +329,01641641

    723675

    2,539

    60027

    6.36574461

    1 4888.49

    0.11574461

    38,710.55836223

    723674

    952

    6,28392971

    1,187. 09

    0,03392971

    91,139.51463511

    723673

    149

    6,25519579

    102.93

    0.00519579

    30 1727.74777085

    723 672

    327

    6.26306787

    272,16

    0,01306787

    1,033.83986509

    723671

    686

    6,27506869

    448,84

    0,02506869

    1,316.30739076

    723 670

    332

    6.26883289

    1006.05

    0,01883289

    300.45754447

    723669

    1680

    6,29767761

    1,560.06

    0,04767761

    31,235. 05851232

    723668

    1 553

    6,29632583

    1 396,29

    0.04632583

    31,291.78474039

    723667

    2217

    6,30628171

    1,577.59

    0,05628171

    2,509.00410681

    723666

    3000

    6,36093640

    1 537,23

    0,11093640

    46,201313.476

    723665

    2342

    6,46632046

    1,370.59

    0,21632046

    108,083.98667281

    Блок — Bitcoin Wiki

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

    Блочная структура

    Значение
    Поле Описание Размер
    Магический номер всегда 0xD9B4BEF9 4 байта
    Размер блока количество байтов, следующих до конца блока 4 байта
    Блокхедер состоит из 6 предметов 80 байт
    Счетчик транзакций положительное целое число VI = VarInt 1–9 байт
    транзакции (не пустой) список транзакций <Счетчик транзакций>-много транзакций

    Описание

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

    Поскольку за решение каждого блока предусмотрена награда в виде новых биткойнов, каждый блок также содержит запись о том, какие биткойн-адреса или скрипты имеют право на получение вознаграждения. Эта запись известна как транзакция генерации или транзакция coinbase и всегда является первой транзакцией, появляющейся в каждом блоке. Количество биткойнов, генерируемых на блок, начинается с 50 и уменьшается вдвое каждые 210 000 блоков (около четырех лет).

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

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

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

    Клиент принимает «самую длинную» цепочку блоков как допустимую. «Длина» всей цепочки блоков относится к цепочке с наибольшей комбинированной сложностью, а не к цепочке с наибольшим количеством блоков. Это не позволяет кому-либо разветвить цепочку и создать большое количество блоков с низкой сложностью, а также принять ее сетью как «самую длинную».

    Общие вопросы о блоках

    Сколько блоков?

    Текущее количество блоков

    Какое максимальное количество блоков?

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

    Даже когда сгенерирован весь 21 миллион монет?

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

    Сколько времени мне понадобится, чтобы сгенерировать блок?

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

    Что делать, если я 1% к расчету блока и…?

    Нет такой вещи, как 1% на решение блока. Вы не продвигаетесь к ее решению. После работы над ним в течение 24 часов ваши шансы на его решение равны вашим шансам в начале или в любой момент. Вера в обратное — это то, что известно как заблуждение игрока [1].

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

    Где я могу найти более подробную техническую информацию?

    На странице алгоритма хеширования блоков есть дополнительные технические подробности.

    См. также

    Что такое блок в блокчейне? Структура блока

    Здесь мы исследуем ключевые компоненты отдельных блоков блокчейна, составляющих сеть Биткойн.

    Введение в блоки Биткойн

    Сеть Биткойн поддерживает распределенную общедоступную книгу, в которой регистрируются права собственности и транзакции всех биткойнов (BTC), собственного цифрового актива сети Биткойн. Поскольку транзакции происходят в сети, данные транзакций группируются в «блоки» и добавляются в хронологическом порядке к непрерывной линейной цепочке блоков данных в сети — отсюда и термин «блокчейн».

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

    Общая структура биткойн-блока всегда включает следующие элементы:

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

    Заголовки блоков биткойнов и майнинг

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

    Заголовок блока содержит 80 байт информации, поддающейся криптографической проверке:

    Биткойн-майнеры соревнуются в решении сложной вычислительной головоломки Proof-of-Work (PoW). Головоломка требует взять все транзакции сети, а также информацию из предыдущего блока (то есть его заголовок блока) и «хешировать» их с использованием алгоритма SHA-256. Первый майнер, решивший эту головоломку, может создать новый блок и получить взамен вознаграждение в виде только что отчеканенных BTC.

    Вообще говоря, хеширование — это процесс, при котором определенные входные данные — в данном случае данные последней транзакции и заголовок блока — вводятся в алгоритм для создания определенного типа выходных данных. Майнер должен взять этот ввод и угадать число, называемое «одноразовым номером», которое при вводе в хэш SHA-256 будет генерировать один вывод, соответствующий другому выводу, установленному протоколом Биткойн. Майнинг сводится к максимально быстрому угадыванию одноразовых номеров. Если майнер достигает указанного выходного порога, он будет транслировать новый блок (включая его одноразовый номер) другим майнерам в сети, чтобы они могли сами его хешировать и проверить предложенное решение.Если большинство майнеров — 51% или более — достигнут консенсуса по решению, майнеру будет разрешено добавить свой новый блок в блокчейн и получить вознаграждение за блок. Этот же процесс повторяется каждые 10 минут в сети Биткойн по мере добавления новых блоков и роста цепочки данных.

    Высота блока Биткойн показывает, сколько блоков ему предшествовало в протоколе Биткойн. Например, следующее уполовинивание блока Биткойн (вознаграждения за майнинг) произойдет при высоте блока 840 000 в 2024 году.Другими словами, эта веха наступит, когда количество блоков биткойнов, записанных в протокол с момента создания блока генезиса в 2009 году, составит 840 000.

    Данные транзакций в блоке биткойнов

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

    В то время как традиционные биткойн-транзакции содержат как входы, так и выходы, генерирующая транзакция чеканит новые биткойны из самого протокола. Остальные данные транзакции блока включают адреса отправителей и получателей, количество BTC в каждой транзакции, подписи с закрытым ключом, разрешающие отправку BTC, и метки времени, которые криптографически подтверждают, когда именно произошла каждая транзакция.Как упоминалось ранее, размер блока Биткойн исторически ограничивался одним МБ данных. Тем не менее, сеть Биткойн также поддерживает функцию под названием «Segregated Witness» (SegWit), которая позволяет эффективно разделять и компилировать данные подписи транзакций — сохраняя размер блока в один МБ и увеличивая пространство блока для данных транзакции.

    Для каждой отдельной транзакции включаются следующие данные:

    • Txin_count: Указывает общее количество входных данных транзакции.

    • Txins: содержит список всех входных данных транзакций.

    • Txout_count: указывает общее количество выходов транзакций.

    • Txouts: содержит список всех выходных данных транзакций.

    • Script_witnesses: содержит сериализацию всех данных-свидетелей для транзакций SegWit.

    • Lock_time: Это 4-байтовое поле устанавливает номер блока или метку времени, пока транзакция не будет заблокирована.Обычно он равен нулю, что означает, что транзакция становится действительной сразу после завершения блока.

    Следующие данные транзакций включаются только в транзакции SegWit:

    • Версия: Это 4-байтовое поле указывает номер версии используемого протокола Биткойн и обычно содержит значение «1».

    • Маркер: если присутствует, это 1-байтовое поле указывает, что транзакция использует SegWit и содержит значение «0x00.Если транзакция не использует SegWit, это поле содержит значение «null».

    • Флаг: если присутствует, это 1-байтовое поле также указывает, что транзакция использует SegWit и содержит значение «0x01». Если транзакция не использует SegWit, это поле содержит значение «null».

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

    Будущее производства биткойн-блоков

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

    Cryptopedia не гарантирует достоверность содержимого Сайта и не несет ответственности за любые ошибки, упущения или неточности. Мнения и взгляды, выраженные в любой статье Cryptopedia, принадлежат исключительно авторам и не отражают мнения Gemini или ее руководства. Информация, представленная на Сайте, предназначена только для информационных целей и не является одобрением каких-либо обсуждаемых продуктов и услуг или советом по инвестициям, финансам или торговле.Перед принятием финансовых решений следует проконсультироваться с квалифицированным специалистом. Пожалуйста, ознакомьтесь с нашей Политикой сайта Cryptopedia, чтобы узнать больше.

    Что Биткойн означает для Блока?

    Следуя по стопам Meta Platforms (компания, ранее известная как Facebook), Square недавно сменила название на Block (NYSE:SQ), чтобы пролить свет на новую стратегическую направленность компании.

    Мало того, что название этого быстро развивающегося финтех-бизнеса неявно ссылается на технологию блокчейна, которая является основой для криптовалют, но основатель и главный исполнительный директор компании Джек Дорси не стесняется высказывать свою поддержку Биткойн  (CRYPTO:BTC) особенно.Он считает, что это может быть родной валютой Интернета.

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

    Источник изображения: Getty Images.

    Блок и Биткойн сегодня

    Биткойн уже является важной частью бизнеса Блока. Мало того, что компания купила биткойн на 50 миллионов долларов в четвертом квартале 2020 года и еще 170 миллионов долларов в первом квартале прошлого года, Block также предлагает людям способы взаимодействия с криптовалютой.

    С помощью Cash App, личного финансового инструмента Block, пользователи могут покупать, продавать, отправлять и получать биткойны. За последний квартал Блок получил 42 миллиона долларов валовой прибыли от торговли биткойнами. Эта цифра резко возросла с 2 миллионов долларов два года назад, и, похоже, она будет расти в будущем, поскольку Биткойн становится все более популярным. Для сравнения: общая валовая прибыль Block за последний квартал составила 1,1 миллиарда долларов.

    Конкуренты PayPal и Robinhood Markets позволяют клиентам торговать не только биткойнами, но и Bitcoin Cash , Ethereum и Litecoin .Block мог бы уже добавить эти криптовалюты в Cash App, но этого не сделал просто потому, что все внимание сосредоточено на биткойнах.

    Значение

    Block в финансовой жизни пользователей, вероятно, со временем будет возрастать по мере того, как клиенты будут использовать все больше его расширяющегося меню продуктов и услуг. Разрешение клиентам Cash App покупать вещи с помощью биткойнов и разрешение продавцам принимать биткойны в качестве оплаты — это две функции, которые, вероятно, будут представлены в ближайшем будущем.

    Создание инфраструктуры для процветания Биткойна

    Два менее известных сегмента Block, которые демонстрируют окончательное видение Дорси Биткойна и его бизнеса, — это TBD и Spiral.TBD был запущен во втором квартале 2021 года и представляет собой открытую платформу для разработчиков, созданную для упрощения создания приложений для децентрализованных финансов (DeFi). Обычно они строятся поверх программируемого блокчейна, который позволяет использовать смарт-контракты, такие как Ethereum. Целью TBD является создание приложений DeFi, таких как децентрализованный обмен, для биткойнов.

    Инициатива Spiral, первоначально называвшаяся Square Crypto, была запущена в 2019 году с заявленной целью «улучшить экосистему Биткойн, внося свой вклад в бесплатные проекты с открытым исходным кодом». » Такие проекты, как Lightning Development Kit и Bitcoin Development Kit, пытаются улучшить пользовательский опыт Биткойна, что может быть пугающим и серьезным препятствием на пути к массовому внедрению. 

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

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

    Эта статья представляет мнение автора, который может не согласиться с «официальной» рекомендательной позицией консультационной службы премиум-класса Motley Fool. Мы пестрые! Ставя под сомнение инвестиционный тезис — даже собственный — помогает всем нам критически относиться к инвестированию и принимать решения, которые помогают нам стать умнее, счастливее и богаче.

    Полная расшифровка биткойн-блока | by Henrique Centieiro

    А также сложность блока!

    Что стоит за всеми этими полями в блоке биткойнов? Вы, наверное, уже использовали обозреватель блоков для проверки статуса транзакции или проверки транзакций кошелька или баланса (да, в блокчейне все очень прозрачно), но что это за поля и длинные числа, верно?

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

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

    Это первый биткойн-блок, добытый в 2021 году.Он был добыт через 13 минут после Нового года. Хотя мы будем рассматривать блок биткойнов, большинство блокчейнов следуют очень схожим принципам и имеют очень похожие данные и поля в своих блоках. Биткойн-блок — отличное место для начала изучения блочной архитектуры. Другие блокчейны Proof of Work, такие как Dogecoin, будут использовать почти ту же блочную структуру (по сути, Биткойн — дедушка Doge).

    Вы также можете проверить этот блок в обозревателе блоков: https://www.blockchain.com/btc/block/663852

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

    Что означают все поля в структуре блока Биткойн?

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

    Размер блока : ну, размер блока — это размер блока. В этом случае размер блока составляет около 1,34 МБ, и он включает в себя заголовок блока и информацию о транзакции.Каждый блок имеет ограничение по размеру — например, 1 МБ, 1,3 МБ или 8 МБ в зависимости от блокчейна — и количество транзакций, которые может включать блок, является ограничением размера блока.

    Хэш блока : хэш блока — это вывод данных заголовка блока, хешированных с помощью функции SHA-256.

    Версия : предоставляет информацию о версии блокчейна.

    hashMerckeRoot : Возможно, вы слышали о Merkle Root и Merkle Tree….но что это за Меркл? Корень Меркла похож на отпечаток всех транзакций в блоке. Это происходит от Дерева Меркла. Они широко используются в криптографии и применялись до изобретения блокчейнов. Деревья Меркла были названы в честь Ральфа Меркла в 1979 году. Это основной метод проверки того, что совместно используемые данные не были изменены, повреждены или изменены.

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

    Структура дерева Меркла: Результат дерева Меркла или корень Меркла строится рекурсивно, т. е. получается из хэша листьев дерева Меркла, которые, в свою очередь, соответствуют транзакциям.

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

    Хотя дерево Меркла может быть создано из большого количества транзакций, корень Меркла всегда соответствует 32-байтовой строке или 256-битной строке (например, алгоритм хэширования SHA256 всегда выводит фиксированную длину 32 байта, независимо от от размера ввода). Таким образом, мы можем использовать что-то размером всего 32 байта, чтобы убедиться, что ряд транзакций — возможно, тысячи — неизменны.

    Количество транзакций : количество транзакций варьируется от блока к блоку.Это может зависеть от максимальной емкости блока с точки зрения размера, размера транзакций (не по стоимости, а по количеству байтов) и фактического объема транзакций, выпущенных пользователями. Например, блок биткойнов может содержать до 1,3 МБ данных, а размер транзакции составляет в среднем 500 байт.

    Награда за блок: награда за блок биткойнов на данный момент составляет 6,25 BTC. Это вознаграждение майнеров как стимул для них вносить свой вклад в сеть и создавать блоки. Награда за блок начиналась с 50.BTC за блок в 2009 году, и он уменьшается вдвое каждые четыре года, или, если быть более точным, сокращение вдвое происходит каждые 210 000 блоков. Из-за деления пополам вознаграждение за блок обнулится в 2140 году.

    Вознаграждение содержится в транзакции Coinbase каждого блока, уникальной транзакции, созданной для выплаты вознаграждения за блок. Для блока в этом примере вознаграждение в размере 6,25 BTC будет эквивалентно примерно 200 000 00 долларов США по курсу на июнь 2021 года. Не плохо, да?!

    Забавный факт (особенно для тех, кто это сделал): еще в 2009 году вы могли добывать биткойн-блоки с помощью своего персонального компьютера.Если вы добыли один единственный блок, вознаграждение в 50 BTC в 2021 году будет стоить 2,3 миллиона долларов.

    Временная метка: Временная метка — это точное время, когда произошло хеширование блока. Обычно обозреватели блоков показывают временную метку в удобочитаемом формате, но на самом деле временная метка блока записывается в формате времени Unix.

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

    hashPrevBlock, AKA Хэш предыдущего блока : каждый блок содержит хеш предыдущего блока. Таким образом, блоки неизменяемым образом соединяются между собой. Каждый блок имеет хэш предыдущего блока. Данные в предыдущих блоках не могут быть изменены, потому что это изменит уже записанный хэш блока.

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

    Сложность: сложность определяется количеством нулей, с которых должен начинаться хэш, когда происходит процесс хэширования. Блок генезиса (первый блок) имел сложность = 1. Блок, который мы видели в начале этой главы, имеет сложность 18 599 593 048 299,49. Трудность всегда пропорциональна количеству майнеров (т.е. мощность хеширования) в сети. Он увеличивается, когда к сети подключается больше майнеров, и уменьшается, когда майнеры покидают сеть. Майнеры могут присоединиться к сети или покинуть ее в зависимости от прибыльности майнинга, которая обычно связана с ценой биткойнов.

    Сложность добычи биткойнов на самом деле очень похожа на сложность добычи золота. Когда цена на золото растет, обычно больше людей и компаний начинают добывать золото, что увеличивает конкуренцию и увеличивает сложность поиска золота.Прекрасным примером этого была Калифорнийская золотая лихорадка. Сан-Франциско вырос со 100 старателей в 1846 году до более чем 30 000 в 1852 году, в то время как цена на золото также росла. Большинству старателей не очень повезло найти золото, потому что конкуренция усложняла поиски. В этот период люди, которые зарабатывали большую часть денег, на самом деле продавали оборудование для майнинга. Лопата раньше продавалась за 36 долларов, что сейчас эквивалентно более чем 1500 долларам.

    Современные майнеры, в данном случае криптомайнеры, объединяются в майнинг-пулы, чтобы разделить усилия и повысить прибыльность.

    Давайте вернемся в настоящее и углубимся в проблему, не так ли, дорогой читатель?

    Вы, наверное, заметили, что хэш блока начинается с нескольких нулей. В случае с нашим блоком он начинается с 19 нулей, но… почему? Почему он должен начинаться с 19 нулей? Откуда это? Ну, это исходит из области битов и сложности. Давайте посмотрим, как рассчитать это упрощенным способом.

    D = ожидаемое/фактическое

    D здесь будет трудность.Каково «ожидаемое» значение? Протокол Биткойн рассчитывает добавить 2016 новых блоков за 20160 минут. Это в среднем один блок каждые 10 минут.

    Переоценка сложности происходит каждые 20 160 минут (примерно 2 недели), ожидаемое значение — 20 160 минут. Фактическое = время, которое потребовалось для добычи последних 2016 блоков.

    D = 20160/факт

    Если D > 1, то это заняло менее 20160 мин. для майнеров, которые будут добывать 2016 блоков, сложность возрастет. Если D < 1, это означает, что для добычи 2016 блоков потребовалось более 20 160, а это означает, что сложность должна уменьшиться, потому что это слишком сложно.

    Если D > 1

    Увеличение сложности (0,25, 4)

    Если D < 1

    Снижение сложности (0,25, 4) сложность регулируется.

    Теперь новая сложность, которая будет рассчитываться каждые две недели, будет следующей:

    newDiff = oldDiff x 20160/фактическая

    Общая скорость хэширования и сложность биткойнов. Источник: http://bitcoin.sipa.be

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

    Отлично! Я надеюсь, что это было полезно! Если у вас есть какие-либо вопросы, пожалуйста, дайте мне знать в разделе комментариев!

    🚀 Следуйте за мной, и, пожалуйста, также проверьте мои курсы Blockchain:

    🐶 первого курса WegegeCoin

    👨🎓 Fintech, облако и кибербезопасность

    📖 Полный курс NFT

    👨‍🎓 Курс разблокировки — Курс блокчейна, дружественный к мозгу Майнинговый пул Solo CK бросил вызов шансам после успешного добавления нового блока в блокчейн Биткойн, заняв 6-е место. 25 BTC (266 000 долларов США) за их усилия.

    Удачливый майнер, который, возможно, занимался майнингом только на одной или двух машинах, решил блок со своей скромной мощностью хэширования 126 терахэшей в секунду (TH/s). Согласно сообщению во вторник от администратора Solo Кона Коливаса, это эквивалентно примерно 0,000072% от общей скорости хеширования сети Биткойн, что составляет 175 000 000 TH/s.

    Эксперт по майнингу биткойнов и член Совета по майнингу биткойнов Хасс МакКук сказал Cointelegraph, что никогда не слышал ни о чем подобном, добавив: «Сказать, что это очень редко, — значит ничего не сказать.

    «Обычно наличие 0,000072% хешрейта означает, что в среднем Solo CK выиграет 0,000072% блоков, или примерно 1 из 1 400 000», — пояснил он.

    «Все в Биткойне является вероятностным, даже расчет транзакции. Чем больше у вас подтверждений по вашему переводу, тем меньше вероятность того, что он будет отменен». По словам Маккука, майнер мог использовать одну машину. «Antminer S19 — это машина с производительностью 110 TH/s, поэтому Solo CK мог бы заниматься майнингом даже с одной разогнанной фермой. Скорее всего, это было пять или шесть единиц Antminer S9. В любом случае, это вполне может быть домашний майнер», — сказал он.

    Скорость хеширования машины означает, сколько хэшей или математических уравнений она может решать в секунду. В среднем новый блок биткойнов добывается каждые 10 минут. Коливас подсчитал, что шансы не так уж высоки: шанс найти блок в день с таким хешрейтом составляет один к 10 000, но добавил, что майнер, вероятно, не повторит этот подвиг.

    «Для майнера это шанс, который выпадает раз в жизни», — написал Коливас.

    «Обычно более крупные майнеры решают блоки статистически, но нет никаких причин, по которым даже самый маленький майнер не может решить один».

    Он заметил, что небольшой майнер в его пуле решил блок около года назад.

    Изучите основы блокчейна. Часть 7. Что находится внутри биткойн-блока?

    В первой части этой статьи объясняется структура блока биткойнов. Во второй части объясняется процесс отслеживания транзакций в обозревателе цепочки биткойнов.Эта статья включает в себя предисловие к книге, написанной Уильямом Мугайяром, автором книги «Бизнес-блокчейн». В последней части статьи будет представлен обзор структуры Биткойна и его исследование блокчейна Биткойн. В первом разделе объясняется, как блок Биткойн организован в линейную последовательность для создания структурной хронологии цепочки истории.

    Микки Малер

    Если у вас есть желание победить, вы победите.

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

    Что находится под капотом биткойн-блока?

    Здравствуйте, Совринское сообщество. Мы начинаем этот раздел с предисловия из вдохновляющей книги «Бизнес-блокчейн», которая предвещает характер главного героя блокчейна, представленного в сегодняшней части, — блока.

    «По своей сути блокчейн — это технология, которая постоянно записывает транзакции таким образом, что их нельзя будет впоследствии стереть, а можно только последовательно обновлять, по сути сохраняя бесконечный исторический след.Это, казалось бы, простое функциональное описание имеет огромное значение. Это заставляет нас переосмыслить старые способы создания транзакций, хранения данных и перемещения активов, и это только начало».   УИЛЬЯМ МУГАЯР, БИЗНЕС-БЛОКЧЕЙН

    Изучение блокчейна Биткойн

    1. Щелкните ссылку выше, которая приведет вас к обозревателю блокчейна.

    2. Выберите BTC, щелкнув его значок.

    3. В разделе Недавний блок справа щелкните самый верхний блок в столбце Высота блока.

    • Обратите внимание на номер блока BTC вверху, например, Блок биткойнов 684 423 . Любой блокчейн, включая биткойн, является частью технологии распределенного реестра. Что он делает, так это создает цепочку истории, что означает, что вы можете думать о блоках как о страницах в бухгалтерской книге, хранящих информацию о транзакциях в блокчейне. Биткойн Блок 684 423 просто означает, что читатель в настоящее время находится на странице 683 423 в большой бухгалтерской книге Биткойн.
    • Обратите также внимание на длинную буквенно-цифровую строку, начинающуюся с нулей, которая называется хэшем. Это ID блока, его название.

    4. Обозреватели блокчейна, подобные тому, который мы используем, очень удобны при отслеживании транзакций или подтверждении отправки транзакции. Чтобы использовать этот проводник для отслеживания, введите номер транзакции (сгенерированный отправителем) в строку поиска в правом верхнем углу.

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

    Хорошо, мы закончили.Продолжайте качаться с атрибутами блока внизу.

    Погружение в структуру блока биткойнов

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

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

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

    Каждый Bitcoin блок состоит из следующих разделов:

    Magic Number

    Transaction Счетчик

    Операции

    Заголовок
    • Версия
    • Hash предыдущего блока
    • хэш дерева Merkle
    • Target
    • NOCE

    Давайте посмотрим на них один на один:

    Magic Number — цифровая идентификация (4 байта)

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

    Биткойн-блокчейн, например, использует специальный 4-байтовый код, начинающийся с символа хэштега, такого как #x0xD9B4BEF9, , который клиенты Биткойн используют для идентификации себя.Эта комбинация символов действует как имя для конкретной цепочки (или любого источника данных).

    Магические числа также используются в информатике для файлов и протоколов для определения типа данных. Программа, получающая такую ​​структуру файла/данных, может проверить магический номер входящих данных и сразу распознать, с какой структурой данных или протоколом она имеет дело.

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

    Пример 1 — тип файла

    • Следующий идентификатор используется компьютерами для идентификации или проверки содержимого файла данных:

      78 01 73 0D 62 62 60 файл как файл образа диска Apple.

    • «Почему это полезно?»; Вы можете спросить. Позвольте мне проиллюстрировать далее: если вы видите зеленый цвет, вам не нужно дополнительное объяснение, что это за цвет, поскольку вы можете распознать сам цвет. Если бы я мог сказать вам, что этот цвет, который вы должны видеть, это «zelená», когда вы не знаете чешской лексики, этот ярлык был бы бесполезен. Однако если бы мы использовали код, действующий как компьютерный и удобочитаемый стандарт, магическое число, его можно было бы легко перевести на любой язык людей технологического мира.

    Пример 2. Атрибут

    • #008000 (RGB(0, 128, 0)) = зеленый цвет
    • Это описание используется в HTML и CSS, а также во многих других языках программирования.

    Размер блока (4 байта)

    Размер блока определяет максимальный объем данных, который может поместиться в один блок. Теоретически только несколько транзакций могут занимать весь блок из-за того, насколько велики (с точки зрения данных) транзакции.Если вы вспомните, что такое блок из более ранней части, вы можете представить, что это что-то вроде почтового конверта, и максимальный предел, который может вместить этот конверт, составляет десять писем.

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

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

    В этом сценарии биткойн-узлы, образующие коллективную «магистраль», передающую транзакции по сети, будут перегружены данными. Некоторые транзакции могут быть серьезно задержаны или даже полностью отклонены. Этот сценарий можно предотвратить, внедрив «сводное» решение, в котором огромное количество транзакций может быть передано в сети биткойн-уровня 2, такие как RSK.Я объясню проблему масштабируемости и реализацию объединения в десятой части этой серии. Теперь вернемся к самому блоку.

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

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

    • сбросить некоторое давление на блокчейн Биткойн
    • , сделав более безопасным использование протокола масштабируемости Lightning Network

    и, таким образом, уменьшив проблемы с масштабируемостью блокчейна.

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

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

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

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

    Поскольку подписи составляют большую часть данных в транзакции с одним входом и двумя выходами, это помогает значительно сэкономить место на транзакциях. На примере Биткойна реализация SegWit приводит к увеличению фактического размера блока с 1 МБ до почти 4 МБ.

    Способы измерения блока:

    1.Единицы веса

    Единицы веса — это единица измерения, используемая для сравнения размера различных биткойн-транзакций друг с другом пропорционально установленному консенсусом максимальному пределу размера блока. Единицы веса также используются для измерения размера других данных блокчейна, таких как заголовки блоков. Начиная с версии Bitcoin Core 0.13.0 (выпущенной в августе 2016 г. )[1], каждая единица веса представляет собой 1/4 000 000 максимального размера блока.

    2. Виртуальный размер

    Виртуальный размер (vsize), также называемый виртуальными байтами (vbytes), представляет собой альтернативное измерение, где один vbyte равен четырем единицам веса.Это означает, что максимальный размер блока, измеренный в и размере , составляет 1 миллион байт .

    Заблуждения:

    • Возможно, из-за метрики vbytes распространено заблуждение, что segwit каким-то образом уменьшает количество транзакций, но это неверно. 300-байтовая транзакция — это 300 байт на диске и по сети. Segwit просто считает эти байты по-разному в зависимости от максимального размера блока в 4M единиц веса. Максимальный размер блока в байтах почти равен максимальному количеству единиц веса блока, поэтому 4M единиц веса позволяют получить блок размером почти 4M байт (4MB).Это не «вымышленный» размер; максимальный размер блока действительно составляет почти 4 МБ на диске и по сети. Однако этот максимум может быть достигнут только в том случае, если блок заполнен транзакциями очень странного формата, поэтому обычно его не должно быть видно. Типичный размер блока зависит от состава транзакций в этом блоке. По состоянию на 2017 год средний состав транзакций привел бы к тому, что блоки с весовыми единицами 4 млн имели бы размер около 2,3 МБ, если бы все транзакции были транзакциями SegWit. См. Биткойн — единицы веса

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

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

    Заголовок, счетчик транзакций и список транзакций (до 80 байт)

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

    Счетчик транзакций, , также известный как «количество транзакций в блоке», представляет собой простое целое число (целое число, составленное из значений математической шкалы от «1 до 9»), которое показывает нам кардинальность (количество) транзакций. этот блок имеет в настоящее время. Размер счетчика транзакций от 1 до 9 байт. Вы можете представить эти транзакции как простой список транзакций в последовательном порядке. Например, если счетчик транзакций имеет значение 20, в списке транзакций будет храниться 20 отдельных транзакций.

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

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

    Теперь давайте проиллюстрируем это на простом примере.

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

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

    Этот подход, скорее всего, будет сделан тайно и незаметно для всех. Что касается мошенничества с блокчейном, то момент, когда этот «кто-то» захочет раскрыть свою подготовленную в частном порядке версию цепочки (и вы знаете об этом из эпизода «Атака 51 %), наступит, когда он будет уверен, что его цепочка тяжелая». достаточно, чтобы обогнать текущую цепочку. Это немедленно вызовет реорганизацию блокчейна. В зависимости от продолжительности реорганизации, она определенно может привлечь внимание людей!

    Следующая часть заголовка — еще один хэш.На этот раз хэш несет информацию о корне всех транзакций, присутствующих в этом блоке. Этот хэш называется Merkle (tree) Root . Блокчейны — это деревья Меркла, и, как и любое другое дерево на Земле, дерево Меркла имеет свой корень.

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

    Время и цель

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

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

    Одноразовый номер

    Последний фрагмент этой головоломки – одноразовый номер . Говоря о одноразовых номерах блока, вы помните, что на самом деле делают майнеры? Они берут хэш корня Меркла конкретного блока и пытаются угадать правильный одноразовый номер, который они должны добавить к блоку, прежде чем они отправят этот блок в блокчейн.Этот одноразовый номер является чем-то вроде клея, скрепляющего блок. Это выглядит так:

    Майнеры начинают угадывать правильную форму одноразового номера с нуля. Таким образом, одноразовый номер равен нулю. Они добавят его к хэшу корня Merkle, хешируют вместе, чтобы получить специальный буквенно-цифровой код, и сравнивают этот код с целью блока. Если хеш, который мы получили несколько секунд назад, имеет меньшее значение, чем текущая цель, мы закончили с угадыванием (майнингом), и они успешно решают головоломку блока.

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

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

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

    Подытожим это, представив следующий процесс:

    1. Сложите значение nonce + корень Меркла.
    2. Хешируйте результат суммы с помощью функции хэширования и сжимайте его с помощью функции сжатия.
    3. Сравните полученный хэш со значением цели .
    4. Отпразднуйте свою победу или промойте и повторите.

    Чем ниже значение цели, тем сложнее найти правильное значение nonce и заставить эту головоломку работать. А теперь… давай больше никогда не будем говорить о добыче полезных ископаемых, договорились? 🙂

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

    Эта серия отражена на Sovryn Wiki здесь . Он также опубликован на Hackernoon .

    Увидимся позже в эпизоде ​​8, где мы будем исследовать смарт-контракты!

    А пока оставайся Соврин!

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

    Обновлено: 17.02.2022 — 09:20

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *