Что такое блокчейн?

Блокчейн (blockchain – рус. цепочка блоков) — это распределённый реестр всех транзакций, когда-либо осуществлённых в сети Биткоин.

 

Слово «распределённый» в нашем случае означает, что копия этого реестра хранится на компьютере каждого пользователя, входящего в сеть.

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

Блоки связаны друг с другом посредством хэшей. В заголовке каждого нового найденного блока содержится хэш предыдущего. Наши блоки-вагоны нельзя удалить, так как в этом случае «состав»-блокчейн развалится.

Редактирование также запрещено, потому что блоки-вагоны посредством хэша «знают», как «выглядят» их соседи, следовательно изменение одного блока приведёт к изменению заголовков всех последующих блоков и сделает их невалидными.

Любая попытка изменения будет отвергнута сетью. Неизменяемость — важнейшее свойство блокчейна.

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

 

Заголовок (Head) включает в себя:

  • хэш (hash) блока
  • хэш предыдущего блока (предотвращает подделку информации)
  • текущую версию блока (1 на данный момент)
  • размер блока в байтах
  • хэш транзакций, содержащихся в блоке
  • bits — сокращённый вариант значения хэша (новый блок добавляется к блокчейну, если его хэш меньше значения bits)
  • nonce – свойство блока, подбираемое до момента, когда значение хэша не будет ниже bits.

Тело блока (Payload) состоит из записей свойств, присваиваемых каждой транзакции :

  • хэша транзакции (связан с хэшем блока во избежание подделки данных)
  • версия транзакции (1 на данный момент)
  • объём транзакции в байтах
  • список входов
  • список выходов ( о входах и выходах ниже)
  • количество адресов, куда переводятся биткоины
  • количество прошлых транзакций, откуда монеты пришли

И ещё кое-что о блоках:

  1. Размер блока имеет ограничение в 1 мегабайт (после введения SegWit виртуальная вместимость составляет 4 мегабайта данных).
  2. Каждый блок добывается примерно раз в 10 минут.