Инвстр
Инвстр личный блог
20 октября 2017, 04:56

Что такое блокчейн. Доступным языком.

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

 

-------------------------------------
Коля решил вести дневник. Для этого он завел тетрадку, и начал писать там строчки вроде.
1. Купил хлеба.
2. Позвонил Геннадию.
...
132. Дал Васе в долг 100 рублей
133. Трахал Люду
134. Поел

...
Он очень старался вести дневник честно, и если у него с кем–то возникал спор о чем–то, что произошло раньше, он доставал его и тыкал всем носом в свои записи. Однажды Коля сильно поспорил с Васей на тему того, давал ли он Васе в долг 100 рублей или нет. В момент спора у Коли не было с собой дневника, но он обещал завтра же принести и всё показать Васе.
Вася решил не искушать судьбу, пробрался к Коле в дом, нашел дневник, долистал до строчки 132, и заменил её на «Трахал Олю». На следующий день Коля достал дневник, долго искал в нём запись про долг Васе, не нашёл, и пришел извиняться.
Прошел год, Васю замучала совесть, и он признался во всём Коле. Коля простил друга, но решил, на будущее, использовать какую–нибудь более надёжную систему записи, которую нельзя было бы так просто подделывать.
Придумал он следующее. У себя в операционной системе Линупс он нашел программу md5sum, которая брала любой текст и превращала его в хеш — 32 непонятные цифры. Как именно она это делала, Коля не понимал, но в целом казалось, что она выдавала полную белиберду. Например, если в программу ввести слово «привет», она в ответ выдаёт «8b4609d7e974702ff1451220c7ededcf». А если ввести, казалось бы, почти то же самое, но с лишним пробелом, то уже «69ab827825fdb876e709abd3d783dbb6».
Почесав тыковку, Коля придумал способ усложнить будущим Васям замену записей следующим образом: После каждой записи он вставлял хеш, который получался если скормить программе текст записи и прошлый хеш. Новый дневник получался таким:
0000 (начальный хеш, ограничимся для простоты четырьмя знаками)
1. Купил хлеба.
4178 (хеш от 0000 и «Купил хлеба»)
2. Позвонил Геннадию.
4234 (хеш от 4178 и «Позвонил Геннадию»)
...
4492
132. Дал Васе в долг 100 рублей
1010
133. Трахал Люду
8204 (хеш от 1010 и «Трахал Люду»)
...
Если теперь какой–нибудь Вася захочет изменить строчку 132, изменится и хеш этой строчки (он будет не 1010 а чем–то другим). Это, в свою очередь, повлияет на хеш строчки 133. Трахал Люду (он будет не 8204, а чем–то другим), и так далее до конца дневника. По сути ради одной записи Васе придется подменить весь дневник после неё, что сложно.
Прошло время, Коля открыл банк. Он всё так же писал в дневничок записи «дал в долг» и «взял в кредит», снабжая их хешами. Банк разросся и однажды он дал в долг (уже новому) Васе миллион. Следующей ночью десят нанятых Васей за полмиллиона таджиков пробрались в комнату Коле, заменили запись «143313. Дал в долг Новому Васе 1000000» на «143313. Дал в долг Новому Васе 10», и по–быстрому пересчитали все хеши вплоть до конца дневника.
Чудом Коля обнаружил подмену и, раз такое дело, решил усложнить способ подделки дневника. Теперь, решил Коля, я буду в конце каждой записи в скобочках добавлять какое–нибудь число («нонс»), и буду подбирать его так, чтобы каждый хеш заканчивался на два нуля. Единственный способ это сделать — тупо перебирать числа, пока не получится нужный хеш:
0000 (начальный хеш, ограничимся для простоты четырьмя знаками)
1. Купил хлеба (22)
4100 (хеш от 0000 и «Купил хлеба (22)», 22 было подобрано чтобы хеш кончался на 00)
2. Позвонил Геннадию (14)
3100 (хеш от 4100 и «Позвонил Геннадию (14)»)
...
1300
132. Дал Васе в долг 100 рублей (67)
9900
133. Трахал Люду (81)
8200 (хеш от 9900 и «Трахал Люду (81)»)
...
Для создания каждой записи Коле теперь в среднем нужно будет перебрать порядка 50 чисел, что трудозатратно. Соответственно, если запись кто–то подменит, подделка её и всех последующих будет тоже в 50 раз сложнее, а это значит что теперь Васе даже с таджиками не справиться.
Через какое–то время Коля взял себе партнёра и они стали оба вести дневничок, причем для каждой новой записи оба одновременно начинали подбирать нонс и тот, кому первому удавалось найти подходящий, вносил запись. Так как вдвоём подбирать нонсы быстрее, Коля усложнил задачу и требовал, чтобы все хеши кончались на три нуля.
Этот окончательный Колин дневничок и есть по сути Блокчейн, только Колю с другом надо заменить на кучу соединённых по сети компьютеров, и вычисления хешей усложнить, чтобы даже компьютерам было тяжко. То есть, блокчейн — это не более чем дневничок записей, который можно записывать совместно, и в котором де–факто невозможно подделать старые записи.
Имея такой клёвый дневничок, можно строить разные интересные системы. Например, Биткоин. Биткоин — это дневничок, где каждая запись выглядит в виде «Передать столько–то денег с кошелька Х на кошелек У». Так как дневничок нельзя подделать и в нём хранится вся история переводов, в любой момент из него можно вычислить количество денег на каждом «кошельке». Ну а чтобы в системе вообще были какие–то деньги, Биткоин сделан так, что каждая запись в дневничке заканчивается словами «произвести Z монет и перевести мне», где «мне» — это тот пользователь, кто первым «угадает» нонс, который обеспечит хеш с нужным количеством нулей в конце.
Поверх дневничка с некоторым количеством криптографии можно строить ещё некоторое количество интересных систем. Например, можно делать записи в духе «Кто решит уравнение f(x) = 14, тот получает 10 монеток». Соответственно, первая запись в дневничке, где будет предоставлено решение может автоматически считаться получателем монеток. Вокруг этой и схожих идей строятся т.н. «контракты».
Но тем не менее стоит помнить, то блокчейн — это не более чем надёжный распределённый дневничок. Никаких мировых проблем, помимо тех, которые можно решить дневничком, блокчейн нам не решит.
Отсюда.

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.

11 Комментариев
  • svanchik
    20 октября 2017, 06:16
    Просто… но годно
  • orbit
    20 октября 2017, 08:34
    Крипто -лудоманы негодуэ. Им запретили писать битокблокчейн слитно. ))
  • Лосс
    20 октября 2017, 09:11
    спасибо помогло))
  • дадашов  фархад
    20 октября 2017, 09:17
    Молодец. А то гуру восхваляют до небес обычную кодировку.А кто то умный еще и ммм решил на ней сделать.
    • Владимир Фокс
      20 октября 2017, 12:49
      дадашов фархад, да. при чем текущие ммм фиатные по сути те же яйца в профиль что и эти криптоблоки)) тока вас имеют иным инструментом — при этом более изощренно) каждый сам выбирает что лучше ему — верить центральным банкам с их монопольной властью или верить неподкупному не монополизированному «дневнику»
  • Анатолий Егоров
    20 октября 2017, 09:19
    как все просто… а чо такое хеш...? а во нашел… 32 непонятные цифирки… как все сложно…
  • Иван Иванов
    20 октября 2017, 09:50
    точно обычный распределенный по сети дневник с эл. подписью каждой операции… кто кому и сколько, каждый слушает сеть и пишет свою копию дневника, может его предъявить любому.
    Все просто и понятно, хоть имею дело с шифрованием и эцп, но объяснено действительно просто и доступно, зачет.
  • Фибофан
    20 октября 2017, 11:18
    Мне это напоминает бухгалтерский учёт и верещащих бухов, «вот тут надо откатить» )))
  • sgluhov
    20 октября 2017, 11:19
    шифровать на самом деле даже не обязательно. Главное чтобы большенство нодов были согласны с цепочкой предьявленной вами.
  • ABC
    20 октября 2017, 12:47
    Пятница — день годных постов просто. Уже 3 + поставил. Обычно столько за месяц набиралось…
  • Алексей_72
    21 октября 2017, 15:50
    Блокчейн вещь хорошая, но в его главном достоинстве и его главный касяк. 
    Если партия китая решит отключить на денёк весь китай от интернета, то битку приснится жопа!
    А они могут, про их фаирвол многие знают. 

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

    10 минут в битке идёт на 1 блок. За сутки в китае налепят в свой блкчейн 144 блоков. В блокчейне остального мира меньше сотни.  И там и там это больше, чем разработчики биткоин протокола рекомендуют ждать, чтоб окончательно убедиться в фиксации платежа. Поэтому и там и тут все будут уверены, что их платежи подтвержены. Все связанные с этим товары и услуги будут отправлены и оказаны. 

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

    Все платежи в остальном мире будут автоматически отменены. Либо придётся опять делить цепь как это было с биткоин кэш и эфир классик, но уже в паническом режиме.

    Вся эта хрень произойдёт не тока в биткоине, но и в Etherium, waves, dash и везде, где китайцев больше. А это не тока бабки, товары и услуги, но и ICO, токены и любая хрень на как бы «надёжной» блокчейн сети. 

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

    И я думаю здешним парням не надо объяснять какое цунами накроет криптобиржи и обменники и куда хлынут все эти крипто ярды капитализации)))

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн