Игорь Аксюта (101) wrote,
Игорь Аксюта
101

Category:

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



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




-------------------------------------
Коля решил вести дневник. Для этого он завел тетрадку, и начал писать там строчки вроде.
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














Tags: деньги, как это устроено
Subscribe

Posts from This Journal “деньги” Tag

  • А статьи за клевету на российскую банковскую систему, что, ещё нет? Недоработка

    Сын поступил в частную школу в США. Для оплаты обучения ребенка в школе я открыл себе счет в местном банке. Разумеется, уведомил российскую…

  • Счастье не в деньгах, а в неведении

    История эта не автобиографична, но абсолютно правдивая. Я позволил себе записать её, невзирая на то, что счастье и деньги шагают в ней парой,…

  • Современное искусство и легализация денег

    Помните кадр из фильма 1+1, где у чувака пошла кровь из носа и он просит за это миллион долларов? Сейчас я расскажу как это работает и почему…

  • Верьте в людей, но...

    Семь лет назад один мой близкий приятель, накопив аш три мульта (миллиона), решил стать пизнисменом. И у него даже получилось. Правда, через два…

  • Однажды в больнице

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

  • Успел...

    Это случилось со мной зимой 1991 года. В моей мастерской было уже немало написанных мною работ. Жил и писал я тогда свои картины в небольшом…

Buy for 100 tokens
Buy promo for minimal price.
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 7 comments