Объясняем на пальцах: гид по блокчейну

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

Ирина Фролова

Ведущий специалист

    У древних жителей Микронезии не было кредитных карт, счетов в банке и даже мелочи в карманах. В такой безвыходной ситуации смышлёные островитяне положили основы блокчейна. Конечно, называли они это иначе — камни Раи.

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

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

    Как мне заплатить за свой кофе, используя блокчейн?

    С древних времен в отношении оформления транзакций мало что изменилось. Мы все еще объявляем о своих намерениях, но теперь уже на весь интернет: «Я хочу отдать одну монетку Ване». Такие сообщения поступают в общий контейнер и дожидаются своей очереди на исполнение. Это называется пул транзакций.

    Сейчас таких сообщений стало так много, что быстрее будут обработаны следующие данные: «Я хочу отдать одну монетку Ване, а за обработку дам еще полмонетки».

    Как система понимает, что это сообщение мое, и никто не распоряжается деньгами от моего имени?

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

    Мне обещали, что не будет никаких банкиров и бухгалтерии. Кто в таком случае обрабатывает транзакции?

    Представьте себе поезд. К нему бесконечно можно подцеплять вагоны, и он будет двигаться дальше.

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

    Но что, если кто‐то захочет перецепить блоки, поменять номера местами и продвинуть свою транзакцию вперед? Или вставить блок, используя поддельные транзакции? Это может нарушить целостность состава.

    Для этого придумано правило: помимо транзакций в последующий блок помещают содержание предыдущего блока. Блок принимает вид «информация о транзакциях + информация о предыдущем блоке». Блоки связываются друг с другом и образуют цепь. Отсюда и название – блокчейн.

    Блок, попавший в цепь, считается обработанным, платеж совершен, информация сохранена и отправлена на все компьютеры сети.

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

    В математике существует такое понятие, как хэш‐функция. Она намного сложнее, чем функции, которые изучают в школе. Но у нее есть несколько важных преимуществ: ее алгоритм очень быстро работает, и нам совершенно не обязательно понимать, как именно.

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

    Например, если подать на вход 128‐битной хэш‐функции первый том романа «Война и мир», то у вас немного подвиснет браузер, и на выходе мы увидим что‐то вроде d6454fc9acc6c2c8f93c5e58b5366b0f.

    Можно вводить одинаковые символы: функция преобразует их в один и тот же хэш несколько раз. Но если что‐то изменить в строке, то изменится и хэш. Причем кардинально. Вот хэш фразы «Я хочу отдать одну монетку Ване»:
    08f661486f50b4b110eae8d6937ab5bf

    А вот хэш этой же строчки, но с точкой в конце:
    9506abed858f33ca3d23363e2553373b

    Хэш‐функция похожа на мясорубку. Она получает мясо и вырабатывает фарш, который невозможно вернуть в первоначальное состояние. Обратную функцию никому придумать не удалось. Теперь наш блок принимает такой вид: «информация о транзакциях + хэш предыдущего блока».

    Кто решает, чей блок присоединять следующим?

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

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

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

    Подбор таких чисел называется майнинг. Компьютеры общими усилиями ищут такую комбинацию «транзакция + хэш предыдущей функции + магическое число», чтобы хэш на выходе удовлетворял всем условиям. Чем больше компьютеров в системе, тем они сложнее. Например, хэш блока биткоина начинаются уже с 18 нулей — хотя в начале нужно было всего 4.

    Все собранные блоки можно свободно посмотреть в сети вместе с транзакциями внутри. Например, блоков биткоина уже 526 414.

    Блоки, майнинг, хэш… Так откуда берутся деньги?

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

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

    Сам по себе блокчейн не может быть финансовой пирамидой: это всего лишь новая технология, которая исправно работает. Ее могут внедрять — как полезно, так и бесполезно — или же просто использовать в целях пиара и привлечения новых клиентов.

    6 июля 2018

    Комментарии:

    1. Аноним:

      Не ожидал, что можно получить понятное объяснение всей этой истерии. Спасибо ребята!

    Добавить комментарий

    Ваш e-mail не будет опубликован.