Как генерируется блок Биткоин

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

3 января 2009 года некто под псевдонимом Сатоси Накамото вошел в историю, выложив на сайт Sourceforge Genesis Block (он же первичный блок или блок бытия — блок, содержащий первые 50 биткоинов). В отличие от любого из дальнейших блоков, первый содержал следующее послание:

«Times, 3 января 2009. Канцлер рассматривает вторую программу спасения банков».

Это один из заголовков газеты London Times, опубликованной 3 января 2009 года. В статье рассказывается о спасении банков британским правительством. Хотя сам разработчик не объяснил смысла своего послания, многие восприняли его как указание на причину появления биткоина (Bitcoin): Накамото хотел исключить из экономики продажные и ненадежные банки и посредников, выпустив народную валюту.

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

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

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

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

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

Для многих поклонников биткоина Genesis Block остается ключом к идентификации самого Накамото. Они верят, что только у Накамото есть закрытые ключи от нулевого и других первых блоков. Тот, кто подпишет транзакцию этими ключами, скорее всего и есть Накамото.

Накамото добывал биткоины в течение нескольких лет после создания Genesis Block. Поскольку конкуренция между майнерами тогда практически отсутствовала, а вознаграждение за подтверждение блока составляло 50 биткоинов, он стал крупнейшим держателем криптовалюты. По некоторым оценкам, Накамото принадлежат около 1 млн биткоинов. Однако он не потратил ни одной монеты ни до, ни после своего исчезновения в 2011 году.

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

Читайте также:  Сколько стоит 1000000000 Биткоинов

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

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

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

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

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

Если говорить на примере Bitcoin, то после успешной записи нового блока в нем добавляется Bitcoin-адрес. За его нахождение предполагается награда системы в 25 ВТС, которая направляется по добавленному адресу. Направление этой награды становится стартовой транзакцией, которая становится на первое место в этом блоке. Все транзакции в сети адресуются отправителем на остальные узлы. Информация собирается по определенным условиям, что позволяет получать ее всем участникам. Таким образом, новый блок регистрируется в системе, и с ним можно будет проводить дальнейшие транзакции.

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

В заголовке блока присутствует:

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

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

Читайте также:  Есть ли на форексе Биткоин

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

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

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

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

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

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

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

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

Читайте также:  Что случилось с Биткоином

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

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Здравствуйте!
Хотел бы уточнить для себя, правильно ли я понимаю процесс создания Биткоинов.
Насколько я себе представляю:
1) Люди проводят транзакции с биткойнам (например операции на silk road)
2) Информация по этим транзакциям создается и отправляется майнерам
3) Люди (miners) формируют из всех этих операций блоки.
4) Эти блоки опять отправляются в общий доступ, там верность этих операций подтверждается
5) Создается новый блок и так далее
6) Из готовых блоков создается цепочка блоков

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

Статьи по сабжу на хабре прочитал, но хотелось бы узнать, правильно ли понял процесс.

  • Вопрос задан более трёх лет назад
  • 10561 просмотр

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

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

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

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

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

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