Блокчейн системы Биткойн

Blockchain (блокчейн биткойна) — распределенная база данных, которая содержит информацию о всех транзакциях в системе биткойн с начала ее запуска 03.01.2009.

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

Блокчейн занимает объем памяти около 140 гигабайт по состоянию на 10.08.2017. Объем памяти занимаемый блокчейном постоянно растет, т.к. база данных пополняется новыми блоками с транзакциями.

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

Как формируется блокчейн?

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

В системе Биткойн используется хеш-функция SHA-256.

Хеш (хеш-значение) — результат выполнения хеш-функции, т.е. строка из цифр и букв определенной длинны.

Например:

Исходная строка: Bitcoin

Хеш по SHA-256:
B4056DF6691F8DC72E56302DDAD345D65FEAD3EAD9299609A826E2344EB63AA4

Исходная строка: Bitcoen

Хеш по SHA-256:
2090B43C0C9C020DD2395D0C1D486FAAA4564A921F6ED615E718FDC0C7398616

Как видите, мы изменили в исходной строке всего одну букву, и хеш строки существенно изменился.

Исходная строка: Bitcoin it’s digital gold

Хеш по SHA-256:
18F46695933E1E1B260EACF891CEF3857833549E70A40000B972E4A8303A05A0

По хешу невозможно восстановить содержание исходной строки. Например, невозможно узнать содержание строки хеш которой:
67D7B5D9C5AD47C23553208CC270B02D08D56874D8458A67C0FCCE216293573E

Блоки, составляющие блокчейн, ограничены по объему занимаемой памяти с целью обеспечения безопасности системы. Размер одного блока примерно равен 1 мегабайту.

Каждый блок имеет несколько секций с данными:

  • #1 — номер блока по порядку;
  • Nonce — случайное целое число от 1 и более;
  • Data — данные транзакций, которые содержит блок;
  • Хеш предыдущего блока (#0);
  • Хеш текущего блока (#1).

Хеш текущего блока по SHA-256 вычисляется из таких данных: номер блока по порядку, случайное число Nonce, данные транзакций, хеш предыдущего блока и некоторых других значений.

Система биткойн проверяет, чтоб хеш текущего блока начинался с определенного количества нулей. Изменяя число Nonce по порядку от 1 и далее путем перебора, необходимо подобрать такое число, с которым вся остальная информация текущего блока даст хеш начинающийся с определенного числа нулей. Как только такое число Nonce найдено, блок отправляется узлам биткойн, которые проверяют его на соответствие требованию “числа нулей”, проверяют легитимность транзакций и синхронизируются с другими узлами системы, чтобы проверить, входит ли данный блок в большинство версий блокчейн других узлов, и в случае соответствия, добавляют данный блок в блокчейн своего узла. Если блок не соответсвует одному из требований, он игнорируется узлом, а версия блокчейн обновляется до версии блокчейна в большинстве узлов.

Блоки в блокчейне связаны друг с другом через хеш предыдущего блока. Хеш текущего блока — станет частью данных следующего блока и так далее.

А теперь представим, что кто-то внес изменение в информацию о транзакции с целью мошенничества. Например, Мошенник изменяет сумму, которую передал Получателю с 1 биткойна на 0,1 биткойн, или адрес получателя, или другие данные. Изменение информации в одном блоке, влечет за собой изменение хеш-значения этого блока и требует подбора нового числа Nonce, чтоб новый хеш блока начинался с определенного числа нулей. Так-как старый хеш измененного блока входил в состав данных следующего за ним блока, информация в этом следующем блоке также изменится, и так же необходимо будет заново подбирать новое число Nonce уже для следующего блока,  и так далее до последнего актуального блока. Затраты вычислительной мощности необходимой для подбора нового числа Nonce, для измененного блока и всех последующих блоков должны превосходить вычислительную мощность всех устройств вовлеченных в поиск числа Nonce и формирование нового блока с транзакциями. Поэтому ни один мошенник не сможет внести изменения в блокчейн системы Биткойн, т.к. не сможет превзойти вычислительную мощность всех майнеров работающих над формированием цепи блоков.

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

До этого момента мы говорили о блокчейне как о распределенной по файлам базе данных локализованной в определенной папке программы Bitcoin Core. Копию блокчейна содержит каждый узел системы Биткойн. Узлы взаимодействуют друг с другом и синхронизируются, проверяя актуальность копий блокчейна. Таким образом множество актуальных копий блокчейна, принятых всеми нодами, составляют независимую, облачную базу данных. В этой базе данных хранятся записи о правах пользователей на их монеты. Потеря одного или почти всех нод не уничтожит этот облачный блокчейн. Блокчейн будет обновляться даже если останется одна рабочая нода. Поэтому можно говорить о том, что блокчейн невозможно уничтожить или внести изменения с целью мошенничества.  Имея доступ к интернет, вы в любой момент сможете воспользоваться вашими средствами, достаточно иметь кошелек и ключи.

Блокчейн системы Биткойн обновлено: 8 сентября, 2018 автором: SchBit