Добрый день, друзья. Давайте рассмотрим хранение данных в блокчейне. Как только информация загружается в блокчейн, она остается там навсегда. Если вы имеете дело с криптовалютой, то в какой-то момент вы наверняка столкнулись с блокчейном.
Блокчейны также важны для управления цепочками поставок, логистики, проверки личности и ряда других областей, поэтому вы, возможно, использовали эту технологию, даже если вы не занимаетесь криптографией. Но какие данные хранят блокчейны? И, если эти блокчейны являются общедоступными, стоит ли вам беспокоиться о том, что на них записано?
Краткий обзор технологии сбора данных блокчейн
Прежде чем мы обсудим данные, хранящиеся в блокчейнах, мы должны сначала в простых терминах рассказать о том, что такое блокчейн, чтобы мы знали, с какой технологией мы имеем дело.
Блокчейны лучше всего представлять в виде виртуальных цепочек блоков, отсюда и название. Каждый блок хранит данные с использованием хеширования, криптографического метода. Это останавливает незаконных лиц от использования данных блокчейна. Как только емкость одного блока достигнута и подтверждено присоединение к цепочке, другой блок начинает подтверждаться, будь то с помощью proof of work, proof of stake или другого механизма консенсуса.
Блоки различаются по размеру, что означает, что объем информации, которую они могут хранить, отличается. Например, размер блока биткойнов составляет всего 1 МБ. То же самое касается Litecoin и Dogecoin. Однако Bitcoin Cash имеет гораздо больший размер блока — 32 МБ, что означает, что на блок может быть сохранено больше транзакций.
Большие блоки обычно приводят к более быстрому времени транзакций и более низким комиссиям, но сегодня мы не будем вдаваться в этот элемент технологии блокчейна. Вместо этого давайте начнем с вида данных, хранящихся в блокчейне.
Какие данные хранит блокчейн?
Конкретный тип данных, которые будет хранить данный блок, может отличаться в зависимости от цели и характера блокчейна. Но давайте воспользуемся Биткоином, одной из самых популярных блокчейнов в мире, чтобы получить хорошее представление о хранилище блокчейна.
Биткойн-блоки добываются с помощью механизма консенсуса proof of work, в котором майнеры используют специализированное оборудование для решения сложных вычислительных задач. На данный момент было добыто более 760 000 биткойн-блоков, при этом ежедневно в оборот вводится около 900 BTC. Каждый блок вводит в оборот 6,25 BTC, что соответствует вознаграждению, которое может получить майнер или пул майнинга, который добывает блок.
Биткойн приближается к своему пределу предложения в 21 миллион BTC. Как только это ограничение будет достигнуто, больше нельзя будет добывать BTC. Но поскольку транзакции Биткойнов продолжают выполняться, блоки необходимо будет продолжать добавлять в блокчейн, чтобы поддерживать неизменный реестр.
Данные внутри блока биткойнов кэшируются с использованием алгоритма криптографического хеширования SHA-256. Разные криптовалюты используют разные алгоритмы хеширования. Например, Ethereum использует Ethash. Многие правительства также используют SHA-256 для кэширования данных.
Блок биткойнов состоит из нескольких разных разделов. Давайте начнем с заголовка блока.
Заголовок блока
Заголовок блока биткойнов хранит данные следующего типа:
- Время транзакции;
- Одноразовый номер;
- Биты;
- hashMerklRoot;
- hashPrevBlock;
- Версия.
Время транзакции содержит временную метку, представляющую время, в которое произошла транзакция. Блоки хранят транзакции в хронологическом порядке.
Одноразовый номер (сокращенный от «номер, используемый только один раз») играет очень важную роль в процессе проверки работоспособности. Это число, которого должен достичь майнер, решая вычислительные задачи. Если майнер решает одноразовый номер, он может успешно майнить блок. Со временем добывать блоки становится все труднее и труднее, поскольку сложность майнинга биткойнов (то есть, насколько сложно добыть блок) возрастает.
Далее у нас есть биты. Это поле также относится к сложности майнинга биткойнов. Сложность добычи может увеличиваться или уменьшаться с течением времени. Если сложность возрастает, майнер должен использовать больше мощности хэша для майнинга блока. Если он уменьшается, майнер может использовать меньше. Конечно, майнеры предпочитают меньшую сложность, поскольку это экономит энергию и время. В целом, если количество майнеров увеличивается, вместе с этим возрастает и сложность.
Корень hashMerklRoot связан с корнем Merkle. Это математический метод, используемый для подтверждения информации в каталоге Меркла, который по сути является структурой хранения данных. Каталог Меркла использует криптографию для хранения данных, при этом hashMerklRoot является кэшем всех кэшей транзакций, хранящихся в данном блоке.
hashPrevBlock, как следует из названия, ссылается на 256-битный кэш предыдущего блока. Каждый блок биткоина в цепочке содержит кэш предыдущего блока.
Наконец, у вас есть поле Версия. Это поле просто ссылается на версию протокола Биткоина, которая использовалась. Протокол Биткойна, используемый сегодня, не совсем такой, как тот, который использовался, когда Биткойн был впервые запущен в 2008 году. Время от времени вносятся обновления для улучшения определенных частей сети. Самая последняя версия протокола — 70015, которая была представлена в 2017 году. Это обновление предоставило возможность запрещать недопустимые компактные блоки из цепочки.
Оставшаяся часть блока биткойнов
Но на заголовке все не заканчивается. В каждом блоке биткоина хранятся другие виды данных, в том числе:
- Размер блока;
- Счетчик транзакций;
- Магическое число;
- Транзакции.
Давайте начнем с размера блока. Это поле накладывает ограничение на объем данных, которые могут храниться в блоке. Как указывалось ранее, ограничение на размер блока Биткойна составляет 1 МБ, но оно меняется от криптовалюты к криптовалюте.
Счетчик транзакций просто подсчитывает количество транзакций, зарегистрированных в пределах данного биткойн-блока. Не существует постоянного количества транзакций, которые хранят блоки, поскольку каждая транзакция может иметь разный размер. Но, в среднем, каждый блок биткойнов содержит от 1500 до 2000 транзакций, плюс-минус несколько сотен с каждой стороны.
Магическое число имеет постоянное значение 0xD9B4BEF9 и определяет тип файла и структуру, используемые в блоке. Магические числа также выступают в качестве сетевого идентификатора для каждого блока. Это постоянное значение было установлено Сатоши Накамото при создании Биткоина.
В поле транзакции перечислены все транзакции, включенные в любой блок Биткоина (в отличие от поля счетчик транзакций, в котором указано количество транзакций в блоке). Как мы уже обсуждали, количество транзакций, хранящихся в блоке, не может превышать емкость 1 МБ.
Хранит ли блокчейн ваши личные данные?
Ваше имя, контактные данные, платежная информация и другие личные данные не хранятся в блокчейне. Единственные данные, которые относятся к вам, — это адрес вашего публичного кошелька. В большинстве случаев это абсолютно безопасно. Но, более сложные инструменты отслеживания, используемые правительственными учреждениями и другими аналитиками блокчейна, могут раскрыть вашу личность по вашему адресу, если они достаточно постараются, а они это умеют.
Большинство существующих криптовалют являются псевдонимными и в определенной степени отслеживаемыми. Вот почему некоторые предпочитают монеты конфиденциальности, такие как ZCash и Monero, поскольку они могут скрывать адрес своего кошелька при торговле этими активами.
Вывод: хранение данных в Блокчейне играют большую роль в сети. Без данных блоков не было бы способа записывать и отслеживать транзакции, что является неотъемлемой частью технологии блокчейна. Предоставление неизменяемого реестра обеспечивает безопасность и прозрачность, позволяя пользователям проверять различные виды информации в сети, такие как суммы транзакций и прочее. Успехов!
С уважением Андрей Зимин 04.12.2022