Марат Манеев Автор:
21 мая, 2018 17:52

Блокчейн — просто

Редакция Prometheus решила «разложить по полочкам» термин «блокчейн» на примере простой деревенской истории, которая легко читается, не содержит в себе сложных тематических терминов, но при этом несет в себе ту самую информацию, которая поможет понять смысл и предназначение блокчейна

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

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

Итак…

История о фермере Афанасии, внуке его Саше и злодее Никодиме

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

Все бы ничего, но Афанасий не досчитался однажды в своем загоне одной свиньи. Подозрения пали на Никодима – т.к. поголовье соседа волшебным образом увеличилось ровно на одно животное – было три, а стало четыре, а чтобы купить свинью, нужно ехать в город – это 2-3 дня на дорогу, так что приобрести зверя сосед не мог. Но как обвинять человека, не имея даже элементарного учета поголовья в хозяйстве.

Поэтому надумал Афанасий завести дневник, в котором решил записывать все изменения в своем хозяйстве, при этом рассказав о своем решении всей деревне, в том числе и Никодиму. Так в документе одна за другой стали появляться записи:

1.Насчитал 37 голов свиней в загоне

2.Насчитал 4 свиньи у Никодима

3.Завез 4 тюка сена

4.Отелилась корова Манька, теперь в хозяйстве 17 телят

178.Забил одну свинью, теперь 36

Позже, фермер решил фиксировать в дневнике абсолютно все события в своей жизни:

234.Ходил на сенокос

235.Ездил в город

236.Ходил в туалет и т.д.

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

Однажды кража повторилась, и Афанасий бросился, сломя голову, к соседу, чтобы уличить того в воровстве – благо есть дневник, где все записано.

Ворвавшись во двор к Никодиму, фермер увидел в загоне у вора 5 свиней, вместо четырех, «зафиксированных» в дневнике.

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

Однако, по дороге, соседка попросила Афанасия помочь по дому – по доброте душевной он не отказал.

Воспользовавшись заминкой, Никодим окольными путями проник во двор соседа, залез в дом, нашел «злосчастный» дневник и заменил запись «2.Насчитал 4 свиньи у Никодима» на «2. Насчитал 5 свиней у Никодима», а затем вернулся к себе.

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

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

Афанасий простил незадачливого дружка, однако решил в будущем использовать какую-либо более надежную систему записи, подделать которую будет не так просто.

На помощь пришел внук Афанасия Саша, который с помощью специальной компьютерной программы мог превратить любой текст в 32 непонятные цифры.

«Это называется хеш», — пояснил деду внук-программист.

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

К примеру, если ввести слово «дед», то в ответ получишь «7f8d998f7fg8d9ff9834d5f4gl28b51c», но если ввести то же слово, но с лишним пробелом, то выходило «gd6389df7jf8367h4fkr904s857jnj».

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

Записи в дневнике обрели следующий вид:

0000 (начальный хеш, используем лишь четыре знака для простоты)

1.Насчитал 37 голов свиней5687 (Хеш от 0000 и «Насчитал 37 голов свиней»)

2. Насчитал 4 свиньи у Никодима6794 (Хеш от 5687 и «Насчитал 4 свиньи у Никодима»)

3. Завез 4 тюка сена8365 (Хеш от 6794ти «Завез 4 тюка сена») и т.д.

Теперь, если кто-то пожелает заменить, допустим, строчку 1, то изменится и хэш этой строчки (будет не 5678, а какой-то другой), а это в свою очередь поменяет и хеш строчки 2. «Насчитал 4 свиньи у Никодима» (будет не 6794, а чем-то другим) – и так до самой последней записи дневника.

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

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

Афанасий выкупил пришедшее в негодность хозяйство Никодима с дальнейшими планами расширения бизнеса.

Однако, Никодим, давно завидовавший успехам соседа, нанял на вырученные деньги 10 человек, которые пробрались в офис Афанасия, нашли дневник и заменили запись «2673. Купил у Никодима ферму за 1 миллион» на «2673. Купил у Никодима ферму за 10 миллионов», а затем общими силами поменяли все хеши до последней записи дневника.

А наутро к Афанасию ворвался Никодим и потребовал еще 9 миллионов за свое хозяйство. Афанасий понял, что была совершена подмена, но ничего не смог поделать – пришлось отдать деньги мошеннику.

Естественно, после этого фермер с внуком начали думать, как сделать записи в дневнике еще более надежными. Саше пришло в голову добавлять к записи какое-либо число в скобках («нонс»), а подбирать такое число так, чтобы каждый хеш заканчивался на два нуля. Есть лишь один способ это осуществить – просто перебирать числа, пока не найдется необходимый хеш:

0000 (начальный хеш, используем лишь четыре знака для простоты)

1.Насчитал 37 голов свиней (17)5200 (Хеш от 0000 и «Насчитал 37 голов свиней(17)», где 17 подобрано, чтобы хеш кончался на два нуля

2. Насчитал 4 свиньи у Никодима (32)6700 (Хеш от 5200 и «Насчитал 4 свиньи у Никодима (32)»)

3. Завез 4 тюка сена (34)7200 (Хеш от 6700 и «Завез 4 тюка сена (34)»)

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

Со временем у Афанасия появился деловой партнер, который также стал вносить записи в дневник. Для каждой новой записи оба партнера одновременно начинали подбирать нонс, и кто первый находил подходящий, тот и вносил запись.

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

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

Заключение

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

Комментарии:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *