Ликбез №4. Как работает блокчейн, или разница между хэшем и хашем.

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

 *  *  *

Блокчейн кажется не таким уж сложным. Однако, все его объяснения и определения, которых есть множество в сети, мягко говоря, малопонятны. Особенно неподготовленному читателю, который часто не видит разницы между блокчейном и биткойном. Или думает, что блокчейн это лишь технологическая основа биткойна. Таки да, но далеко не только биткойна (или другой цифровой валюты, или криптовалюты, а им уже несть числа…). Более того, забегая вперёд, рискну сказать, что криптовалюта – ОТНЮДЬ не основное предназначение технологии «блокчейн», и даже, криптовалюта – лишь иллюстрация возможностей блокчейна его создателем (а это, как выяснилось, вовсе не японец, а австралиец).

Есть например, такое определение блокчейна:

«Блокчейн (англ. blockchain или block chain) — выстроенная по определённым правилам непрерывная последовательная цепочка блоков (связный список), содержащих информацию. Чаще всего копии цепочек блоков хранятся на множестве разных компьютеров независимо друг от друга»[1]. И приводится такая диаграмма:

1

Рис. 1. Принцип работы блокчейна из Википедии, или пример того, как можно затуманить простые понятия.

Понятно ли это определение человеку, даже разбирающему в информационных технологиях? Не думаю. Хотя все притворяются, что понятно.

Чтобы понять, что такое блокчейн, можно представить себе большую Excel-таблицу (надеюсь, что все читающие эту статью, в Excel умеют работать), которая скопирована во множестве экземпляров на многих компьютерах в сети. А теперь представим, что есть некая сетевая программа, которая копирует изменения в одном экземпляре таблицы во все остальные экземпляры, пусть не мгновенно. Причем, это копирование происходит только в том случае, если доказана легитимность изменений. Пусть Excel-лист заполнен, переходим на следующий. Лист Excel – то, что называется блоком. Каждый блок имеет связь (то есть посажен на цепь – chain) с предыдущим. Ввод информации в ячейку и её подтверждение – это транзакция.

Если Вам это понятно, то Вы понимаете, что такое блокчейн, пусть и немного упрощённо. Блокчейн ещё называют «распределённым реестром» (distributed ledger), из нижеизложенного станет понятно, почему…

Предположим, кто-то захотел незаконно изменить данные в какой-то ячейке (области ячеек) таблицы или ввести неподтверждённые данные. Один экземпляр таблицы он изменить сможет. Но остальные, связанные между собой блокчейн-протоколом, экземпляры, не дадут ему это сделать, если он не представит доказательства легитимности изменений в виде, вычисленного по специальному алгоритму, кода, который называется «хэш». Не путать с армянским блюдом «хаш».

2.png

Рис. 2. Армянское блюдо хаш (впрочем, и азербайджанский хаш тоже бывает).

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

На рисунке 3 показан алгоритм формирования цепочки транзакций в протоколе блокчейн.

5.PNG

Рис. 3 Алгоритм формирования цепочки транзакций в протоколе блокчейн.

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

На основании публичного ключа собственника 2 и результата транзакции 1 происходит вычисление хэша транзакции, который также участвует в верификации подписи собственника 1. Хэш и частный ключ шифрования подделать, теоретически можно, но практически сделать это весьма и весьма сложно. Надо на очень короткое время, меньше минуты, задействовать мощность примерно половины компьютеров планеты Земля. Хотя, с изобретением квантовых компьютеров, возможно ситуация изменится… однако, даже в этом случае, речь будет идти о доли вероятности взлома, а не о полной в этом уверенности (Это отдельная тема, возможно напишу статью).

После успешного завершения транзакции 1, процесс повторяется для транзакции 2 между собственником 2 и собственником 3. Одна транзакция может служить источником не одной, а многих транзакций.

Что же происходит при транзакции? Рассмотрим на простейшем примере — перевод некоторого количества криптовалюты (например, того же биткойна) от Джима к Мэри. Сразу заметим, что перевод валюты — это простейший пример, но возможны и более сложные транзакции нефинансового характера, например, подтверждение прав собственности на объект, или прохождение какого-либо теста, экзамена и многие многие другие возможности.

Работает это примерно так:

3.png

Рис. 4. Иллюстрация работы блокчейна на примере перевода виртуальных денег от Джима к Мэри.

  1. Джим хочет послать деньги Мэри.
  2. Транзакция представляется в сети блокчейн в виде блока данных с персональным хэшем Джима.
  3. Блок данных расходится по сети блокчейн.
  4. Сеть блокчейн, состоящая из верифицирующих компьютеров, подтверждают эту транзакцию, путём вычисления проверочного хэша по определённому алгоритму.
  5. Если хэш верен, то блок добавляется в цепочку блоков (block chain), образуя постоянную запись. Блоки связаны между собой хэшами (кодами), которые зависят от содержимого блоков. Эти хэши одинаковы во всех компьютерах сети блокчейн и они зависят от хешей предыдущих блоков (которые вычисляются на базе персонального кода, задаваемого инициатором транзакции, и проверочного хэша. На рисунке это фигурально показано в виде блоков конструктора Лего, которые подходят один к другому. Если хэш неверен, это может означать, например, что Джим хочет перевести деньги, которых у него в реальности нет, или Мэри хочет залезть в биткойн-кошелёк Джима и незаконно перевести себе какую-то сумму. Возможно, ей даже удастся это сделать. Но через несколько минут майнинга этой транзакции её нелегитимность будет обнаружена (блоки Лего не сойдутся вместе), и деньги вернуться в биткойн-кошелек Джима.
  6. После проверки легитимности, когда процесс майнинга завершен успешно, деньги переводятся Мэри, а физически это означает, что в сети блокчейн появилась запись, принадлежащая Джиму, и подтверждённая сетью, о том, что он послал деньги Мэри.

При чтении этого алгоритма, сразу же возникает вопрос – а какие это деньги (рубли, доллары, или монгольские тугрики?) Джим посылает Мэри, и как, и кто их переводит? Через банк? Нет они переводятся не через банк, а через ту же сеть блокчейн. И это не обычные (или, как говорят на языке финансистов, «фиатные») деньги, а деньги виртуальные, цифровые, «крипто-деньги». Для иллюстрации работы блокчейна, его создатели придумали для этих денег название «биткойн» (Bitcoin). В переводе с английского это означает просто «битовая монета», или «монет, состоящая из битов». Эта «цифровая валюта» является неким суррогатом реальных денег. Исходное предназначение этого суррогата было (для чего бы вы думали?) для оплаты работы верифицирующих компьютеров, для поощрения их работы. А это довольно большая работа. Поначалу, когда сеть блокчейна только появилась, и транзакций, через неё проходящих, было очень мало, было достаточно обычного «десктопа», который можно было оставить работающим на ночь, чтобы навычислять себе с десяток биткойнов, кои тогда всё равно было негде потратить. Сейчас же, когда спрос на биткойны вырос, а количество транзакций в блокчейне выросло на несколько порядков, для этого используются мощные «фермы серверов», которые не занимаются ничем иным, кроме как вычислением хэшей в сети блокчейн. Это процесс называется майнингом (mining — добыча полезных ископаемых).

На майнинг-компьютер, который первым вычислил верный хэш транзакции (например, когда Джим перевел Мэри деньги), в качестве вознаграждения начисляется некоторое количество биткойнов (вернее несколько частей биткойна, т. к. его цена сейчас достаточно высока). Многие делают бизнес на майнинге и небезуспешно, но как уже указывалось, сейчас это требует больших инвестиций и затрат на электропитание майнинг-серверов.

bitcoin-mine-740x3701-740x370

Рис. 5. Так может выглядеть серверная ферма для майнинга биткойнов.

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

Следует также отметить, что сейчас, когда сам майнинг стал видом бизнеса, появились и полу-мошенники, которые занимаются тем, что в России называется «разводка». Причём, ничего откровенно криминального они не совершают. Например, некая китайская компания строит недорогой дата-центр, похожий на тот, что на фото выше. А может и не строит, а просто арендует серверы по модели IaaS. А может даже и не арендует. И сдаёт мощности «майнинг-фермы» (реальной или вымышленной) в аренду тем, кто хочет «наварить» на майнинге. Таких предложений в сети — масса. В принципе, только таким способом и можно заработать на майнинге, если нет возможности построить собственную «ферму». На отдельных же серверах, пусть даже самых мощных, теперь не удается даже покрыть затраты на электричество.

Однако проблема в том, что проверить, стоит ли за таким поставщиков «майнинг-услуг» реальный, а не «нарисованный» дата-центр,очень сложно. И если даже он в реальности есть, практически невозможно проверить, сколько реально вам там выделили ресурсов, и как они используются. Это стоит иметь в виду желающим заработать на рынке майнинга. А он привлекателен, спору нет, если посмотреть на график ниже.

4
Рис. 6. Изменение рыночной стоимости биткойна по годам (сейчас она гораздо больше, чем в 2014 г.).

Первые несколько лет после создания биткойна в 2008 году, его рыночная стоимость составляла всего несколько долларов, и их мало кто покупал, разве что из интереса к «цифровой валюте», которая во многих странах, например, в России, была, фактически, вне закона. В 2013 году произошёл резкий рост стоимости биткойна (видимо, сработал многолетний хайп). И отношение публики и финансовых регуляторов к биткойну сразу резко изменилось, и в России в том числе.

После успеха биткойна, стали во множестве создаваться разные другие криптовалюты, основанные на том же протоколе блокчейн: лайткойн (Litecoin, упрощённый биткойн), альткойн (Altcoin), и многие, многие другие, иногда довольно экзотичные, например, «еврейская» криптовалюта под названием «биткоэн». Есть также знаменитый «эфириум» (Etherium), созданный российско-канадским подростком Виталиком Бутериным, который даже написал для него свою версию блокчейна. Впрочем, эфириум создавался Виталиком (да, его имя именно Виталик, а не Виталий, так записано в его канадском паспорте, поскольку именно так он назвался на паспортном контроле при эмиграции его родителей из России) не только как криптовалюта, а скорее как система «умных контрактов» (Smart Contract), которая позволяет фиксировать любые виды сделок и взаимодействий, причем, не только между людьми, но и между устройствами.

Общим между всеми этими «валютами» был всё тот же протокол распределённого реестра, то есть, наш любимый блокчейн.

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

Что касается финансовой сферы, то она пока является основным полем для применения технологии блокчейна. И он, возможно, станет её могильщиком.

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

В случае с блокчейном, происходит модификация только ОДНОЙ базы – распределённого реестра «блокчейн». И это делается автоматически.

Спрашивается тогда, зачем будут нужны банки?

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

Но об этом – в следующих статьях.

***

 

bubble-phases.jpg

 

[1] https://ru.wikipedia.org/wiki/Блокчейн

 

Об авторе Алексей Шалагинов

Независимый эксперт
Галерея | Запись опубликована в рубрике Ликбез, блокчейн с метками , . Добавьте в закладки постоянную ссылку.

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

w

Connecting to %s