Что такое Blockchain «на пальцах»

Мне коллеги и друзья постонно задают три вопроса:

  1. Что такое биткоин?
  2. Что такое блокчейн?
  3. Есть ли смысл инвестировать в Bitcoin?

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

Что такое Blockchain?

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

  1. Купил гамбургер
  2. Позвонил Вове
  3. Дал Васе в долг 100 рублей
  4. Любил Машу
  5. Пил чай

Коля вел дневник честно, и если возникал спор о чём-то, что произошло раньше, он доставал дневник и показывал записи. Однажды Коля поспорил с Васей, давал ли он Васе в долг 100 рублей или нет. Но в этот момент у Коли не было с собой дневничка и он обещал завтра принести и доказать Васе.
Вася ночью пробрался к Коле в дом, нашёл дневничок, нашел строчку 5 и заменил её на «Обнимал Олю». Утром Коля достал дневник, не нашел в нем запись про долг Васе и пошел извиняться.

Через год, Васю замучила совесть, и он во всем признался Коле. Коля решил на будущее использовать какую-нибудь более надёжную систему записи, которую нельзя было бы так просто подделывать.

И придумал он следующее. Он нашёл программу md5sum, которая берет любой текст и считает его хеш функцию — 32 непонятные цифры. Например, если в программу ввести слово «привет», она в ответ выдаёт «8b4609d7e974702ff1451220c7ededcf». А если ввести, казалось бы, почти то же самое, но с лишним пробелом, то уже «69ab827825fdb876e709abd3d783dbb6».
Коля придумал способ усложнить замену записей следующим образом: после каждой записи он вставлял хеш, который получался, если скормить программе текст записи и прошлый хеш. Новый дневник получался таким:

  1. 0000 (начальный хеш, для простоты покажем четыре знака) Купил гамбургер
  2. 4178 (хеш от 0000 и «Купил гамбургер») Позвонил Вове
  3. 4234 (хеш от 4178 и «Позвонил Вове»)
  4. 4492 Дал Васе в долг 100 рублей
  5. 1010 Любил Машу
  6. 8204 (хеш от 1010 и «Любил Люду») Пил чай

Если теперь какой-нибудь Вася захочет изменить строчку 5, изменится и хеш этой строчки (он будет не 1010, а чем-то другим). Это, в свою очередь, повлияет на хеш строчки «6. Любил Люду» (он будет не 8204, а чем-то другим), и так далее до конца дневника. Теперь ради одной записи Васе придётся переписать весь дневник после неё, что сложно.

Прошло время, Коля открыл банк. Он всё так же писал в дневничок записи «дал в долг» и «взял в кредит», снабжая их хешами. Банк разросся, и однажды он дал в долг (уже новому) Васе миллион. Следующей ночью десять нанятых Васей за полмиллиона таджиков пробрались в комнату Коле, заменили запись «143313. Дал в долг Новому Васе 1000000» на «143313. Дал в долг Новому Васе 10» и по-быстрому пересчитали все хеши вплоть до конца дневника.

Чудом Коля обнаружил подмену и, раз такое дело, решил усложнить способ подделки дневника: «Теперь, — решил Коля, — я буду в конце каждой записи в скобочках добавлять какое–нибудь число („нонс“), а подбирать его буду так, чтобы каждый хеш заканчивался на два нуля». Единственный способ это сделать — тупо перебирать числа, пока не получится нужный хеш:

  1. 0000 (начальный хеш, для простоты опять покажем четыре знака) Купил гамбургер (22)
  2. 4100 (хеш от 0000 и «Купил гамбургер (22)», 22 было подобрано, чтобы хеш кончался на 00) Позвонил Вове (14)
  3. 3100 (хеш от 4100 и «Позвонил Вове (14)»)
  4. 1300 Дал Васе в долг 100 рублей (67)
  5. 9900 Любил Машу (81)
  6. 8200 (хеш от 9900 и «Любил Машу (81)») Пил чай

Для создания каждой записи Коле теперь в среднем нужно будет перебрать порядка 50 чисел, что трудозатратно. Соответственно, если запись кто-то подменит, подделка её и всех последующих будет тоже в 50 раз сложнее, а это значит, что теперь Васе даже с таджиками не справиться.

Через какое–то время Коля взял себе партнёра и они стали оба вести дневничок. Для каждой новой записи оба одновременно начинали подбирать нонс и тот, кому первому удавалось найти подходящий, вносил запись. Так как вдвоём подбирать нонсы быстрее, Коля усложнил задачу и требовал, чтобы все хеши кончались уже на три нуля, а не на два.

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

Блокчейн — это не более чем журнал записей, который можно записывать совместно, и в котором невозможно подделать старые записи.

Имея такой дневник, можно строить разные системы. Например, Bitcoin. Биткоин — это дневничок, где каждая запись имеет вид «Передать столько-то денег с кошелька Х на кошелёк У». Так как дневничок нельзя подделать и в нём хранится вся история переводов, в любой момент из него можно вычислить количество денег на каждом кошельке. Ну а чтобы в системе вообще были какие-то деньги, биткоин сделан так, что каждая запись в дневничке заканчивается словами «Произвести Z монет и перевести мне», где «мне» — это тот пользователь, кто первым «угадает» нонс, который обеспечит хеш с нужным количеством нулей в конце.

Blockchain — это книга учета транзакций в открытом виде хранящаяся в сотнях тысяч экземплярах

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

Но что было бы, если вы написали 5 тысяч расписок и вручили их 5 тысячам разных людей-свидетелей. При этом доступ к любой из этих 5 тысяч расписок имеют все пользователи Интернета без ограничения по времени и статусу. Полиция, суд, соседи и родственники могут открыть расписку и увидеть ее в том виде, в котором она была написана год назад. Будет ли в таком смысле отпираться ваш заемщик?

Чтобы скрыть 5 тысяч экземпляров, нужно взломать каждого из хранителей и удалить или исправить текст в расписке. Но экземпляров не 5 тысяч, а 2 миллиона? Задача превращается в маловероятную.

Как связан этот хитроумный заемщик, расписка о долге и блокчейн?

Блокчейн – это открытая книга учетных записей в электронном виде. При этом, книга установлена на устройствах сотен тысяч пользователей. Когда система добавляет в книгу новую запись, эта запись автоматически появляется у всех пользователей, подключенных к системе. Изменение записи не предусмотрено. Перевел пользователь А эквивалент 10 тысяч долларов пользователю Б: эта информация будет отображена у всех пользователей системы.

Все подключенные к системе пользователи становятся свидетелями передачи эквивалента 10 тысяч долларов от пользователя А к пользователю Б в определенный период времени.

Информация об одном подобном переводе добавляется в группу с подобной информацией – это называется хеш (если бы мы записывали информацию в блокнот). Группа хешей составляют общий хеш транзакций (если бы мы сдали блокнот за февраль в общий архив). Объем хешей за период (100 ящиков блокнотов за год) составляет блок. Все блоки, добавленные в определенную цепочку и называются «блокчейн». Грубо говоря, есть общий архив, в нем есть все хеши за определенный день, месяц, год: любой пользователь может в этом каталоге найти нужный хеш и нужную информацию о транзакции.

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

P.S. Пара полезных ссылок о Bitcoin в Украине
Биржи, BTC кошельки

Обменки BTC

Более подробно об условиях, возможностях, лимитах на обмен и идентификации можно прочитать в посте «Обмен и покупка Bitcoin в Украине»

Share
Send