Автор статьи — Алексей Маланов, эксперт отдела развития антивирусных технологий «Лаборатории Касперского».

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

Давайте разбираться.

Предупреждаю сразу, статья философская с пространными рассуждениями и демагогией. Хотите конкретики, читайте другую. Хотите разобраться — читайте третью.


Иллюстрация из книги Мелани Свон «Блокчейн. Схема новой экономики»

Блокчейн с точки зрения максималистов


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

Что входит в понятие криптовалют, отходит на второй план. Чтобы не отвлекаться, для простоты мы будем считать, что криптовалюты — это валюты из списка https://coinmarketcap.com/currencies/.


Топ криптовалют по капитализации (Источник)

С одной стороны, такое определение удобно, потому что позволяет делать любые заявления. Например:


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

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

С другой же стороны, такое максималистское определение позволяет многое утверждать про блокчейн, но не позволяет вести предметный разговор и утверждать что-то конкретное. Посмотрите на примеры:

  • Решения на блокчейне не масштабируются.
  • Решения на блокчейне медленнее централизованных аналогов.
  • Решения на блокчейне не требуют доверия между участниками.
  • Решения на блокчейне открыты и валидируемы.
  • Блокчейн представляет собой цепочку блоков.

Все они становятся ложными. Ведь мало ли что придумают? Например, в криптовалюте IOTA уже придуманы и используются направленные ациклические графы для организации транзакций — никакой цепочки блоков там нет. Или, например, когда-нибудь, вероятно, заработает Plasma, и тогда блокчейн станет масштабируемым.

Блокчейн с точки зрения минималистов


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

Это определение удобно тем, что на таком блокчейне действительно работают все известные мне криптовалюты.

Но такое определение еще более абсурдно и бесполезно, чем предыдущее. Более того, такой «блокчейн» известен лет 100 и называется стеком.

Базовая комплектация


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

Блокчейн предполагает, что:

1. Данные оформлены блоками, что бы из себя эти блоки ни представляли.
2. Блок либо является genesis-блоком, либо ссылается на предыдущий.
a. Блоки дописываются в конец.
b. Выкидывать блоки в рамках нормальной работы запрещено.
3. Блоки летают в коммуникационной среде независимо — можно загрузить произвольный блок.
4. Блокчейн читается как минимум двумя участниками.
5. В блокчейн пишет как минимум один участник.
6. Все пишущие достигают консенсуса — блоки соответствуют единому набору правил.
a. Очевидное следствие — блокчейн един для всех участников после достижения консенсуса.
b. Если в сети наблюдается софт-форк, то «едиными» правилами, очевидно, являются более жесткие.


Шпаргалка по понятию софт-форка. Источник

Есть что добавить?

А теперь посмотрим, что осталось за бортом такого определения.

  1. В понятие «блокчейн» не входят принципы достижения консенсуса: Proof-of-Work, Proof-of-Stake, Proof-of-Authority и другие. А ведь в Proof-of-Work как раз заключается львиная доля инновационности биткойна, родоначальника блокчейна.
  2. В понятие «блокчейн» не входит принцип децентрализованности. В вырожденном случае выходит, что есть сервер, он пишет в базу, один. Остальные могут читать и проверять, а могут и не проверять.
  3. В понятие «блокчейн» не входит принцип открытости: он не обязан быть доступным на чтение широкому кругу лиц, тем более на запись.
  4. В понятие «блокчейн» не входит принцип распределения доверия: участники могут быть исключительно доверенными.
  5. В понятие «блокчейн» не входит защита от злонамеренных участников: ее может и не быть.
  6. В понятие «блокчейн» никак не включена криптография. Вряд ли без нее удастся обойтись, но на каком этапе и в каком виде она будет применяться, не определено.

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

Кстати, такая конфетка называется частным блокчейном (private/permissioned), и именно на такие блокчейны сейчас делают ставку некоторые компании (и даже госструктуры). Это частный случай давно известных распределенных реестров (не путать с распределенной базой данных), но не каждый распределенный реестр, очевидно, является блокчейном.

Продвинутая комплектация — «настоящий» блокчейн


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

Сначала определим свойства «настоящего» блокчейна:

  • Децентрализованный. Это дает неблокируемость/устойчивость, но заодно забирает эффективность (пропускная способность на единицу железа) и масштабируемость (рост пропускной способности с ростом количества железа).
  • Открытый на чтение. Это дает валидируемость, но заодно и забирает конфиденциальность (которую можно прикрутить сверху обратно).
  • Открытый на запись. Это дает доступность, но и делает запись платной. Как правило, плата символическая, но этого хватает, чтобы резко ограничить список пишущих.
  • Неизменяемый. Это дает защиту от фальсификации, но и приводит к замусоренности (чего только не пишут в публичные блокчейны).
  • С валютой. Это восхитительное свойство особенно ценится в блокчейн-решениях. Оно дает финансовые возможности, но взамен вносит неопределенность в правовой статус проекта. А заодно открывает и риски кибербезопасности.
  • Доверяемый. Не требует репутации участников.

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

Для получения описанных свойств дополнительно включим в состав «настоящего» блокчейна следующее:

  1. Каждый блок, кроме начального, содержит криптографический хеш предыдущего, а не просто ссылается, как в базовой комплектации.
  2. Консенсус между участниками достигается таким способом, чтобы минимизировать риск переписывания базы меньшинством, как правило, Proof-of-Work или вариации Proof-of-Stake. И это, на мой взгляд, самое важное. Понятие меньшинства определяется выбранным способом.
  3. Либо используется одноранговая сеть, либо право стать мастер-нодой формально есть у каждого желающего.
  4. За участие в обеспечении бесперебойной работы сети (формирование корректных блоков) полагается награда в каком-то виде. И поэтому, вероятно, в каждом открытом блокчейне есть свои «койны».
  5. Каждый участник обладает парой ключей и в том или ином виде удостоверяет свои намерения по записи в блокчейн.

Пара свойств (не требований):

  1. За валидацию корректности базы награда не полагается. Участники делают это ради собственной безопасности либо не делают.
  2. Каждый участник имеет право послать в сеть транзакцию, удовлетворяющую правилам сети, и рассчитывать, что транзакция будет включена в блокчейн за разумное время при разумной оплате.

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

Дополнительные опции


Есть еще такое удобное понятие — «блокчейн-технологии». Это те технологии, которые блокчейном вовсе не являются, но имеют к нему непосредственное отношение — либо являются надстройками, либо улучшениями обычного блокчейна (в любом его определении). Половина из них вполне может использоваться и без блокчейна, просто потребности такой не возникает.

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

Другой пример — миксер. Отмывка «грязных» денег посредством смешивания с «чистыми» известна давно, но применительно к криптовалютам преобразилась и стала отдельной технологией с разными вариантами реализации.

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

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

Заключение


Мы попытались определить, что же входит в понятие «блокчейн», а что — нет. Рассмотрели несколько вариантов, от абсурдных до вполне годных. Описали те свойства, которые вытекают из разных границ технологии или, наоборот, которые определяют эти границы.
Осталось дело за малым — просто четко понимать, а что же имеется в виду в каждом конкретном случае использования.

Комментарии (12)


  1. a_shats
    20.09.2017 12:42
    +6

    Можно ли использовать блокчейн для написания статей? Кому нужна распределенная 1С? Есть ли жизнь на Марсе, и можно ли использовать блокчейн для получения информации об этом? На эти и многие другие вопросы мы так и будем получать ответы ежедневно, пока хайп от блокчейна не сдуется, я полагаю.


  1. IvanGeso
    20.09.2017 13:08

    Вопрос может быть немножко не по теме, но все же: можно ли свести к минимуму время формирования нового блока в блокчейне? Скажем, до 1 секунды. Если это возможно, не навредит ли это безопасности блокчейна? Речь не о каких-то существующих блокчейнах, просто есть идея создать свой, но нужно быстродействие.


    1. AlexeyVanilov
      20.09.2017 15:20

      Можно, но есть пара оговорок.
      1. За эту одну секунду хорошо бы распространить новый блок по всем нодам, а если их больше десятка в локальной сети, то это вряд ли удастся. Если не будете успевать, будут постоянно ветвления и долгое достижение консенсуса.
      2. За эту одну секунду надо проверить корректность всех транзакций, причем, на каждом узле. Если транзакций много, но банально мощности ноды не хватит.
      3. Механизм консенсуса придется брать PoA, чтобы все всем доверяли, иначе ноды не успеют договориться, кому же верить. Для PoW вообще нереально.

      У Ethereum время между блоками — 15 секунд, работает очень даже неплохо. В итоге получается порядка 200 исполнений смарт-контрактов в минуту. Но у них пока PoW.


  1. bm13kk
    20.09.2017 13:37
    +1

    Блокчейн уже из хайпа уверено переходит в истерику.


    И почему касперский так усердно трудится над этой темой?


  1. gro
    20.09.2017 13:43
    +7

    В блокчейн входят два понятия — «блок» и «чейн».


    1. AlexeyVanilov
      20.09.2017 18:01

      Определение супер. Но тогда непонятно, в чем инновация.

      Удобно то, что каждый может заявить: «Я отлично разбираюсь в блокчейнах! И в блоках, и в чейнах.»


      1. gro
        20.09.2017 18:09
        +1

        Инновация здесь ни в чём. Чейны блоков использовались для организации данных задолго до криптовалют.
        Это если мы хотим заняться демогогией и докопаться до истоков.


        1. AlexeyVanilov
          21.09.2017 10:51

          Понятно. Но об этом как раз написано в разделе «Блокчейн с точки зрения минималистов».


  1. PapaBubaDiop
    20.09.2017 15:35

    Уважаемый Касперский, подскажите — при транзакции номинал биткойна можно только дробить. Не нашел механизма объединения. Это правда, про не совсем про блокчейн,


    1. Kaspersky_Lab Автор
      20.09.2017 16:53

      Конкретно в Биткойн можно дробить и объединять. Транзакция включает список непотраченных выходов от уже совершенных транзакций и список новых выходов. Очень хорошо описано тут habrahabr.ru/post/319860.


      1. PapaBubaDiop
        20.09.2017 17:42

        Да, я читал этот цикл, но пропустил число output — ов. Оказывается оно ограничено размером транзакции (не более 100 kB). Теперь все ясно, спасибо, атака миллиардом output — ов не удалась))


  1. AlexeyVPolunin
    22.09.2017 16:00

    Вы упомянули, что блокчейн это частный случай давно известных распределенных реестров. Согласен, но вот вопрос: как давно известных? У меня сложилось впечатление, что этот термин попал в обиход уже после публикации концепции биткоинов в 2008 году.
    Попытка поиска в Гугле ранних упоминаний о Distributed Ledger не увенчалась успехом. основная масса ранних источников датируется 2012-2013 годами. Активно этот термин начинается употребляться в 2015-2016 годах. Но не настаиваю, возможно, плохо искал.