+7 777 619 2222

Блокчейн: просто о сложном

Список, который нельзя изменить 

Блокчейн был описан в статье Сатоши Накамото 
«Bitcoin: А Рееr-tо-Рееr Electronic Cash System». 

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

Итак, блокчейн — это цепочка блоков или другими словами связный список. В таком списке каждая следующая запись ссылается на одну предыдущую и так по цепочке до самой первой. Как вагоны поезда, каждый тащит за собой следующий Далее мы максимально простым языком опишем суть данной технологии. для этого мы будем использовать вымышленного персонажа по имени Олег. Друзья Олега постоянно занимают у него деньги. Олег добр, но крайне забывчив. Через неделю он уже не помнит кто не вернул ему долг, но стесняется всех об этом расспрашивать. Потому однажды он решил положить этому конец, заведя у себя дома на доске список друзей, которым он занимал денег.

 
Теперь Олег всегда может подойти к доске и убедиться, что Макс всё вернул, а вот Ваня не отдает уже 700 рублей. Однажды Олег приглашает Ваню выпить к себе домой. Пока Олег отходит в туалет, Ваня стирает запись «Занял Ване 200 рублей» и вписывает вместо неё «Ваня отдал 500 рублей». 
Доверявший своему списку Олег забывает про долг и теряет 700 рублей. Он решает как-то с этим бороться. В прошлом году Олег ходил на курсы по программированию, где ему рассказали про хеширование. Он помнит, что любую строку можно превратить в однозначный набор символов — хеш, и изменение любого символа строки полностью изменит его: 

Добавление точки в конце изменило итоговый хеш до неузнаваемости — этим можно воспользоваться. Олег берет общеизвестный хеш SНА-256 и хеширует им каждую запись, дописывая результат в конце. Теперь Олег может удостовериться, что его записи никто не изменял, захешировав и сравнив с зелёным: 

Но злой Иван тоже умеет в SНА-256 и легко может 
изменить запись вместе с её хешем. Особенно, если хеш написан прямо рядом на доске. 
Потому для большей безопасности Олег решает хешировать не саму только запись, а складывать её вместе с хешем от прошлой записи. 
Теперь все следующие записи зависят от предыдущих. Если изменить хотя бы одну строчку, то придется пересчитать хеши всех остальных ниже по списку: 


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

Олег решает усложнить ему жизнь. Теперь для добав-ления новой записи в список, Олег будет решать связанное с ней сложное математическое уравнение. Ответ он будет добавлять в итоговый хеш. Олег силен в математике, но даже у него на добавление записи уходит по десять минут. Несмотря на это, потраченное время того стоит, ведь если Иван опять захочет что-то изменить, ему придется заново решать уравнения для каждой строки, а их могут быть десятки. На это уйдет куча времени, ведь уравнения каждый раз уникальны и связаны с конкретной записью. 
Зато проверить список всё так же просто: сначала нужно как раньше сравнить хеши, а потом проверить решения уравнений простой подстановкой. Если всё сходится — список не изменен. В реальности же с уравнениями не всё так хорошо: компьютеры слишком хорошо их решают, да и где хранить столько уникальных уравнений.

Потому авторы блокчейна придумали более красивую задачу: нужно найти такое число, чтобы итоговый хеш всей записи начинался на 10 нулей. Такое число тяжело найти, зато результат всегда можно проверить глазами. Теперь Олег сверяет все хеши и дополнительно убеждается, чтобы каждый начинался на оговоренное количество нулей. 
Хитрый Иван, даже вооружившись мощным ноутбуком, не успеет за ночь пересчитать все хеши так, чтобы они удовлетворяли условию — не хватит времени. Такой список по сути и есть домашний блокчейн на коленке. Его безопасность гарантирована математиками, которые доказали, что эти хеши нельзя вычислить как-то быстрее, кроме как перебором. Такой перебор хешей к каждой записи и есть майнинг, о котором мы рассказывали в одном из прошлых постов. С помощью него компьютеры и специальные устройства (асики) добывают майнерам криптовалюты.

Заключение

Блокчейн — не строго определенный набор алгоритмов. Это структура построения неподделываемой сети между участниками, где никто никому не может доверять. Некоторые разработчики поняли, что можно создать свои блокчейны и сделать что-то полезное, адаптировать его под свои специфические задачи. Не криптовалютами же едиными, хотя их тоже развелось немало. Преимущества, которые дает использование блокчейна, раскрываются при решении широкого спектра задач, возникающих в реальной жизни: документооборот, отправка валюты хранение файлов, децентрализованная торговля и многие другие. 

Надеемся, что данная статья была полезной для вас. Обсудить ее или задать вопросы вы всегда можете в комментариях под этим постом.
 
Подписывайтесь на наш telegram-канал: t.me/blockchainkz_info

Комментарии