Объяснение блокчейн для самых маленьких

Всяческий Бред - Идти на Главную Страницу >>>

Категории:

Полезные Сведенья
Кухонная Философия
Общество и его пороки
Новости
Еда и Питье
Техника
Разное
Личное
Природа
Фото/Видео
"Веселые" Картинки
Юмор


Пишите Письма



Реклама:

Реклама

February 21, 2017

Копирую из комментов без спроса, надеюсь автор не обидится, но очень уж мне понравилось это объяснение для чайников.
-------------------------

(с) некто sleep

Коля решил вести дневник. Для этого он завел тетрадку, и начал писать там строчки вроде.

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 монеток". Соответственно, первая запись в дневничке, где будет предоставлено решение может автоматически считаться получателем монеток. Вокруг этой и схожих идей строятся т.н. "контракты".

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

(с) некто sleep



Тэги: Разное Полезные сведенья

Темы, имеющие некоторое отношение к этой (русскоязычный поиск в mysql все же очень не совершенен):
Механика власти для самых маленьких November 1, 2016
Украинская политика для самых маленьких May 1, 2010
Объяснение денежного оборота для самых маленьких December 9, 2008
Небольшое размышление про блокчейн April 27, 2018
"Изм" для самых маленьких August 9, 2011

Комментировать:
пользователь: пароль:
регистрироваться  Залогинится под OpenID


Архив:

Jun2023   May2023   Apr2023   Mar2023   Feb2023   Jan2023   Dec2022   Nov2022   Oct2022   Sep2022   Aug2022   Jul2022   Jun2022   May2022   Apr2022   Mar2022   Feb2022   Jan2022   Dec2021   Nov2021   Oct2021   Sep2021   Aug2021   Jul2021   Jun2021   May2021   Apr2021   Mar2021   Feb2021   Jan2021   Dec2020   Nov2020   Oct2020   Sep2020   Aug2020   Jul2020   Jun2020   May2020   Apr2020   Mar2020   Feb2020   Jan2020   Dec2019   Nov2019   Oct2019   Sep2019   Aug2019   Jul2019   Jun2019   May2019   Apr2019   Mar2019   Feb2019   Jan2019   Dec2018   Nov2018   Oct2018   Sep2018   Aug2018   Jul2018   Jun2018   May2018   Apr2018   Mar2018   Feb2018   Jan2018   Dec2017   Nov2017   Oct2017   Sep2017   Aug2017   Jul2017   Jun2017   May2017   Apr2017   Mar2017   Feb2017   Jan2017   Dec2016   Nov2016   Oct2016   Sep2016   Aug2016   Jul2016   Jun2016   May2016   Apr2016   Mar2016   Feb2016   Jan2016   Dec2015   Nov2015   Oct2015   Sep2015   Aug2015   Jul2015   Jun2015   May2015   Apr2015   Mar2015   Feb2015   Jan2015   Dec2014   Nov2014   Oct2014   Sep2014   Aug2014   Jul2014   Jun2014   May2014   Apr2014   Mar2014   Feb2014   Jan2014   Dec2013   Nov2013   Oct2013   Sep2013   Aug2013   Jul2013   Jun2013   May2013   Apr2013   Mar2013   Feb2013   Jan2013   Dec2012   Nov2012   Oct2012   Sep2012   Aug2012   Jul2012   Jun2012   May2012   Apr2012   Mar2012   Feb2012   Jan2012   Dec2011   Nov2011   Oct2011   Sep2011   Aug2011   Jul2011   Jun2011   May2011   Apr2011   Mar2011   Feb2011   Jan2011   Dec2010   Nov2010   Oct2010   Sep2010   Aug2010   Jul2010   Jun2010   May2010   Apr2010   Mar2010   Feb2010   Jan2010   Dec2009   Nov2009   Oct2009   Sep2009   Aug2009   Jul2009   Jun2009   May2009   Apr2009   Mar2009   Feb2009   Jan2009   Dec2008   Nov2008   Oct2008   Sep2008   Aug2008   Jul2008   Jun2008   May2008   Apr2008   Mar2008   Feb2008   Jan2008   Dec2007   Nov2007   Oct2007   Sep2007   Aug2007   Jul2007   Jun2007   May2007   Apr2007   Mar2007   Feb2007   Jan2007   Dec2006   Nov2006   Oct2006   Sep2006   Aug2006   Jul2006   Jun2006   May2006