телеграм бот✅ Делай сайт. Бесплатный хостинг.Рекламы нет.Строитель страниц.
супер валюта
🇷🇺Создай свой бизнес в интернет. Получи подарки.

криптокошелек
✅Криптокошелек, обмен, есть пластик
супер валюта
🇷🇺 Лучшая площадка России для трейдинга
супер валюта
✅ICO.Копи деньги на отпуск! Подробнее
супер валюта
🇷🇺 Начни торговать криптовалютой
супер телеграмм бот
✅Интеллектуальный телеграмм бот!

✅Привлечение трафика и рефералов бесплатно.

Быстрые уроки о биткоин. Блок — единичная порция связанных в цепочку данных

Дмитрий Днепров

Быстрые уроки о биткоин. Блок — единичная порция связанных в цепочку данных

Как мы уже знаем, блокчейн Биткоина — это некий бухгалтерский реестр или книга (ledger), в которой записаны абсолютно все транзакции, совершенные с монетами биткоина.

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

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

Таким образом, все блоки, записанные в блокчейн, изменить уже невозможно! Вообще, любое редактирование записанной в блокчейн информации (транзакций) запрещено. Можно только дописывать новые блоки.

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

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

Но, вернемся к блокам блокчейна Биткоина.

Каждый блок состоит из заголовка (Head), в котором хранится служебная информация, и полезной информации (Payload) — собственно записи транзакций.

Дмитрий Днепров

Блоки в блокчейне и их связь между собой
В заголовке блока содержится следующая информация:

– версия блока;
– дата и время создания блока;
– хэш-код заголовка блока;
– хэш-код предыдущего блока;
– хэш-код всех транзакций в блоке;
– специальные параметры nonce и bits, которые записываются при майнинге (подробнее об этом я расскажу с статье «Биткоин за 5 минут: Майнинг»).

Для понимания нам важны хэши в заголовке.

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

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

Дмитрий Днепров

рис. дерево Мёркла (Merkle tree) или бинарное дерево хэшей

Работает это так:

1. Сначала считаются хэши всех транзакций в блоке.
2. Потом считаются хэши от суммы хэшей пар транзакций.
3. Далее считаются хэши от суммы получившихся пар хэшей и далее по такой же схеме, пока не получится один единственный хэш-код — он и будет хэшем транзакций в блоке.

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

Именно заголовки позволяют отслеживать целостность содержимого самих блоков.

Теперь перейдем к собственно содержимому (Payload) блока…

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

С <адрес 1> отправить <N> биткоинов на <адрес 2>

В действительности транзакция, записанная в блок блокчейна, сложнее, поскольку протокол Биткоина оперирует такими понятиями, как Входы (Inputs или In) и Выходы (Outputs или Out).

Входы (In) — это транзакции, пополняющие биткоин-адрес, а Выходы (Out) — это суммы, которые переводятся на другие биткоин-адреса.

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

Новая транзакция C ссылается на две входящие транзакции— A и B. В результате на входе у транзакции получается 0.008 BTC (0.005+0.003), которые потом разделяются на два выхода — на первый адрес отправляется 0.003 BTC, а на второй 0.004 BTC. Остаток (0.001 BTC) — комиссия майнеру.

Дмитрий Днепров

рис. Структура записи транзакций в блокчейне

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

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

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

Примечание: На самом деле, баланс определяется путем подсчета всех непотраченных Выходов (т.н. UTXO — unspent transaction output) этого адреса.
Возможность указать сразу несколько Выходов в транзакции — это очень важная вещь, потому что транзакцию (точнее — ее Выход) можно использовать как Вход только один раз и только целиком.

Например, если имеется входящая транзакция (Вход) на 1 биткоин (BTC), а нужно перевести куда-то 0,8 BTC, то создается транзакция с одним Входом и двумя Выходами: на 0,8 BTC — собственно перевод и на 0,2 BTC — возврат на биткоин-адрес отправителя.

Еще важный момент — это т.н. комиссия за транзакцию (transaction fee), которую получают майнеры — люди, которые записывают новые блоки транзакций в блокчейн.

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

Понятно, но не совсем? Смотрите отличное видео!

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

Подписывайтесь на новости Kriptoman в Telegram и делитесь в соцсетях.

HashFlare
🇷🇺 Знаменитый сервис облачного майнинга

✅Привлечение трафика и рефералов бесплатно.
криптокошелек ✅Криптокошелек, обмен, есть пластиктелеграм бот✅ Делай сайт. Бесплатный хостинг.Рекламы нет.Строитель страниц.

супер валюта
⚠️Лидер облачного майнинга в сети
супер валюта
✅Игра для всех, кто любит побеждать
супер телеграмм бот
✅Интеллектуал телеграмм бот!
супер валюта
🇷🇺Создай свой бизнес в интернет. Получи подарки.
The Best Traffic Exchange
Яндекс.Метрика