Найти тему
Блокчейн.Экономика

Как действительно работает блокчейн?

Оглавление

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

Звучит вроде понятно, но как это работает в действительности?

Как выглядит блок?

-2
  • Порядковый номер (Index): однозначно определяет положение блока в цепочке блоков (например, генезис-блок располагается в самом начале цепочки и имеет порядковый номер #0)
  • Хэш предыдущего блока (Previous Hash): определяет валидность предыдущего блока
  • Отметка времени (Timestamp): обозначает время добавления блока
  • Данные блока (Data): содержит информацию, хранимую в блоке
  • Нонс (Nonce):  найденное в процессе майнинга число, делающее хэш блока валидным при заданной сложности нахождения валидного блока в данном блокчейн
  • Хэш блока (Hash): определяет валидность блока

Каждый блокчейн начинается с генезис-блока. Каждый блок в цепочке, зависит от предыдущего блока. Соответственно, чтобы добыть (to mine) первый блок, нам понадобится генезис-блок.

Каким образом происходит добыча нового блока?

Осуществляется автоматический поиск последнего валидного блока в цепочке, чтобы получить его порядковый номер (index) и его хэш (hash). В нашем примере, последним валидным блоком является генезис-блок и он имеет порядковый номер #0.

Соответственно, новый блок:

  • Порядковый номер (Index): о + 1 = 1
  • Хэш предыдущего блока (Previous Hash): 000D1F890FE6A2195BF207F48BE035D621080BBD18776B42CA38C0852BE58AC5
  • Отметка времени (Timestamp): MON, 21 MAY 2018 19:53:20 GMT
  • Данные блока (Data): здесь содержатся данные блока #1
  • Хэш блока (Hash): ?
  • Нонс (Nonce): ?

Хэш (hash) это, в нашем случае, шестнадцатиричное значение фиксированной длины, которое однозначно идентифицирует данные.

Для вычисления хэша (hash) в качестве входных данных используются: порядковый номер блока (index), хэш предыдущего блока (previous hash), отметка времени (timestamp), данные блока (data) и нонс (nonce).

На основе входных данных алгоритм SHA256 вычисляет уникальный хэш. Одни и те же входные данные всегда возвращают один и тот же хэш.

-3

Обратите внимание на три ноля в начале хэша. Количество нулей в начале хэша определяет сложность вычисления валидного хэша. Это условие так называемой системы подтверждения проделанной работы  (Proof-of-Work system).

Что такое нонс?

Нонс это число, используемое для нахождения валидного хэша исходя из обозначенной сложности блокчейна.

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

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

-4

Зачем такие сложности?

Это необходимо для поддержания неизменности блокчейн.

Если у нас имеется блокчейн, состоящий из блоков A → B → C, и кто-то захочет изменить данные в блоке A, вот что произойдет:

  • Изменятся данные блока A.
  • Хэш блока A изменится потому, что данные блока A используются для вычисления хэша блока A.
  • Блок A перестанет быть валидным потому, что теперь его хэш не имеет трех нолей в начале, что является необходимым условием валидности хэша.
  • Хэш блока B изменится потому, что для его вычисления используется хэш предыдущего блока.
  • Блок B перестанет быть валидным потому, что теперь его хэш не имеет трех нолей в начале.
  • Хэш блока C изменится потому, что для его вычисления используется хэш предыдущего блока.
  • Блок C перестанет быть валидным потому, что теперь его хэш не имеет трех нолей в начале.

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