Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Прошу прощения, но по–моему это какое–то бестолковое объяснение, которое ничего не объясняет. Даже стыдно за биткоин стало как–то.
- Чтобы исправить ситуацию и не критиковать голословно, давайте я напишу объяснение, которое по–моему что–нибудь да объяснит.
- Коля решил вести дневник. Для этого он завел тетрадку, и начал писать там строчки вроде.
- 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 (хеш от 4234 и "Трахал Люду")
- ...
- Если теперь какой–нибудь Вася захочет изменить строчку 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 монеток". Соответственно, первая запись в дневничке, где будет предоставлено решение может автоматически считаться получателем монеток. Вокруг этой и схожих идей строятся т.н. "контракты".
- Но тем не менее стоит помнить, то блокчейн — это не более чем надёжный распределённый дневничок. Никаких мировых проблем, помимо тех, которые можно решить дневничком, блокчейн нам не решит. А те проблемы, которые он решит, он решит ценой гигаватт энергии, которые сейчас тратятся на подбор "нонсов", по большому счету впустую.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement