Найти в Дзене
Bit Bro

3.4 Блокчейн и деньги: Из чего состоит блок биткоина? 💰

Введение 🚪 Hash-функции часто используются как названия, как ссылки, как указатели и как обязательства. Что касается биткоина, то там hash-функции используются как указатели, потому что один блок указывает на другой блок. В этой статье мы не будем разбирать использование hash-функций подробно, но вы обязательно прочтёте об этом в следующих статьях. Hash-функции биткоина используют заголовки и древа Меркла, которые в свою очередь используют стандарт SHA-256. Этот стандарт имеет длину в 256 бит. Это значит, что там чередуются 1 и 0, и длина всего этого выражения составляет 256 знаков. Однако с биткоин-адресом Сатоши Накамото сделал кое-что другое. Он стал использовать 2 hash-функции для биткоин-адресов. Сатоши Накамото писал, что если взломают одну из этих функций, то есть вероятность, что не сломают вторую. То есть для безопасности Сатоши Накамото хотел зашифровать некоторые вещи дважды! Хотя вероятность взлома и так крайне мала: 0,1 в 40-й степени. Вероятность взлома hash-функции битк
Оглавление
Перевод лекций о блокчейне и криптовалютах пост председателя Комиссии по ценным бумагам и биржам США (SEC) Гари Генслера в университете MIT осенью 2018 г.
Перевод лекций о блокчейне и криптовалютах пост председателя Комиссии по ценным бумагам и биржам США (SEC) Гари Генслера в университете MIT осенью 2018 г.

Введение 🚪

Hash-функции часто используются как названия, как ссылки, как указатели и как обязательства. Что касается биткоина, то там hash-функции используются как указатели, потому что один блок указывает на другой блок.

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

Hash-функции биткоина используют заголовки и древа Меркла, которые в свою очередь используют стандарт SHA-256. Этот стандарт имеет длину в 256 бит. Это значит, что там чередуются 1 и 0, и длина всего этого выражения составляет 256 знаков.

Однако с биткоин-адресом Сатоши Накамото сделал кое-что другое. Он стал использовать 2 hash-функции для биткоин-адресов. Сатоши Накамото писал, что если взломают одну из этих функций, то есть вероятность, что не сломают вторую. То есть для безопасности Сатоши Накамото хотел зашифровать некоторые вещи дважды! Хотя вероятность взлома и так крайне мала: 0,1 в 40-й степени.

Вероятность взлома hash-функции биткоина: 1 × 10^40

Ещё раз вспомним Стюарта Хабера и Скотта Сторнетта, которых мы уже упоминали. Они работали в исследовательской компании Bellcore и были криптографами. Стюарт Хабер однажды задумался о том как можно нотариально заверять документы в цифровом виде. И для решения этого вопроса он использовал как раз hash-функции.

Стюарт Хабер (слева) и Скотт Сторнетта (справа)
Стюарт Хабер (слева) и Скотт Сторнетта (справа)

Криптографы имели свою компанию «Surety» и хотели воплотить свою идею о неизменяемой, последовательной системе хранения данных. «Surety» не была супер-популярной компанией, как, например, Apple или Facebook, но каждую неделю в разделе заметок в газете "Нью-Йорк Таймс", можно увидеть их hash-функцию, которая решала "проблему доверия".

Скотт Сторнетта показывает hash-функцию в газете "Нью-Йорк Таймс"
Скотт Сторнетта показывает hash-функцию в газете "Нью-Йорк Таймс"

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

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

Из чего состоит блок биткоина? 🧐

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

На картинке показаны 3 последовательных блока блокчейна. В зеленом прямоугольнике любого из блоков показывается заголовок (Block Header) — это основная часть информации. Посматривая на эту картинку, разберёмся из чего он состоит:

  • Версия (Version)

Она меняется не часто, но обязательно там присутствует.

  • Хэш предыдущего блока (Hash of Previous Block Header)

То есть это некоторая информация обо всех предыдущих блоках.

  • Хэш корня Меркла (Merkle Hash Root or Hash of Block Data)

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

  • Информация блока (Block Data)

В блоке может содержаться какая-либо информация (Block Data), в частности, в биткоине — это набор из нескольких тысяч транзакций (Transaction List).

Существовали различные способы, что бы сжимать блоки с большим количеством информации или транзакций, что бы всё было аккуратнее. Этим способом и был Корень Меркла.

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

Вернёмся к картинке. Верхняя часть блока в зеленом прямоугольнике, состоящая из 4 пунктов, называется заголовком блока (Block Header), и в ней нет всего списка транзакций.

Возможно вы слышали про полные и облегчённые ноды (nodes). Так вот, облегчённые ноды, или так называемые кошельки (wallets), которые вы можете просто скачать на телефон из App Store или Google Play, не скачивают полностью информацию о миллионах транзакций, произошедших в прошлом в блокчейне. То есть, ваш кошелёк не скачивает полную ноду, но он скачивает все заголовки предыдущих блоков (Block Headers). Вы получаете всю информацию, которая содержится в этих заголовках.

В 2021 году совокупный объем транзакций биткоина за весь период его существования превысил 350 Гб. Однако, все заголовки блоков весят немного. Один заголовок блока весит около 80 байт. Всего блоков в биткоине на данный момент (июнь 2022 г.) — 742443 штуки. Перемножив эти два значения мы получим 59395440 байт, что эквивалентно 60Мб. Теперь сравните это значение с 350 Гб полной ноды биткоина.

Дориан Прентис Сатоши Накамото. Физик и системный инженер, которого уволили из правительства.
Дориан Прентис Сатоши Накамото. Физик и системный инженер, которого уволили из правительства.

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

В общем корень Меркла позволяет найти предыдущие транзакции. То есть это можно представить как механизм, который может выдернуть из системы весь объём транзакций из блока и рассмотреть их подробнее.

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

Временная отметка

Так же в заголовке присутствует временная отметка. Мы уже говорили о них ранее.

  • Цель сложности (Difficulty target)

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

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

  • Нонс (Nonce)

Nonce («нонс») — числовой параметр, искомый в ходе майнинга биткоина и записываемый в заголовок блока. Это просто рандомное число, которое может использоваться только 1 раз. Собственно, целью майнинга, как соревновательного процесса за право добавить блок транзакций в блокчейн, и является подбор такого Nonce, чтобы искомый хэш блока (Block Hash) был меньше некоторой заданной цели сложности (Difficulty Target).

В принципе это все общие данные, которые касаются hash-функции.

В следующей статье поговорим подробно о корнях меркла и древе Меркла.

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

Подписывайтесь и оставляйте комментарии!)

Понравилась статья? Лайк и репост будут лучшей благодарностью.
Понравилась статья? Лайк и репост будут лучшей благодарностью.

Теги: #bitcoin #crypto #blockchain #money #технологии #криптовалюта #блокчейн #финансы #деньги #сатоши