Блок биткоина - основа технологии блокчейн

28.12.2023
Блок биткоина - основа технологии блокчейн

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

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

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

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

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

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

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

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

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

Блоки Биткоина: как они создаются?

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

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

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

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

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

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

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

Hash — хеш (алгоритм SHA-256). Этот хеш является случайным числом, поэтому его вычисление сложно предугадать. Хешированию подвергается только заголовок, а транзакции в криптовалютной цепочке не учитываются. Количество транзакций не влияет сильно на расчет хеша.

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 — размер блока (измеряется в байтах).

Следующая часть блока — транзакции в криптовалютной сети. Они представляют собой список, который формирует блок и становится частью цепочки. Каждый элемент списка (транзакция) показывает отправителя и получателя перевода.

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

Заключение

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

Новости:

О трендах криптоиндустрии в 2023 году с Никитой Куценко

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

Контакты
Офис: Москва, Электрический переулок, 3/10с1
Сервисный центр: Москва, Малая Грузинская, 54
Отдел продаж: +7 (495) 118-34-02
График работы: пн-пт с 10.00 до 19.00
сб-вс встречи по согласованию