Почему так сложно применить блокчейн

Перевод заметки блокчейн-разработчика и специалиста в области биткоина Джимми Сонга.

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

  1. Победит имущественное неравенство
  2. Навсегда обезопасит всю информацию.
  3. Сделает эффективным и надёжным всё вокруг.
  4. Спасёт умирающих детишек.

Но что же такое блокчейн? И насколько он действительно может быть полезен? Может ли он привнести что-то новое в такие сложные отрасли, как здравоохранение, финансы, снабжение или авторское право?

И правда ли, что если вы поддерживаете Биткоин, то автоматически топите за блокчейн? Можно ли быть «за» Биткоин и критиковать технологию, на основе которой он создан?

В этой статье я попытаюсь найти ответы на многие из этих вопросов, разобравшись в том, что же такое блокчейн и, самое главное, чем он не является.

Что такое блокчейн

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

Почему так сложно применить блокчейн

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

Главное отличие блокчейна от обычной базы данных — строгие правила внесения данных в эту базу. Добавляемые данные не могут «спорить» с информацией, уже содержащейся в таблице (согласованность). Данные можно записать, но нельзя удалить или заменить (неизменность). Данные могут быть закреплены за владельцем (возможность владения), но при этом остаются копируемыми и общедоступными. И, наконец, все пользователи должны согласиться с порядком вещей в базе данных (каноничность) без участия управляющего центра, наделённого полномочиями (децентрализация).

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

Цена Блокчейна

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

Разработка медленнее, требования строже

Создание доказуемо непротиворечивой системы — задача сама по себе очень непростая. Малейшая ошибка может испортить всю базу данных или создать несоответствия, которые могут привести к расколу. Естественно, что «битая» или «расколовшаяся» база данных уже не может гарантировать отсутствия противоречий. Более того, все такие системы изначально должны создаваться непротиворечивыми. С блокчейном уже не сработает шапкозакидательство и “move fast and break things” (Двигайся быстро, сокрушая всё на своём пути — мантра, приписываемая Марку Цукербергу, создателю Facebook — прим. перев.). Проламывая путь, можно испортить данные и потерять непротиворечивость, а вместе с ней и всю ценность вашего блокчейна.

Почему так сложно применить блокчейн

Здесь у читателя может возникнуть вопрос: почему же не починить систему, не поправить данные и не продолжить как ни в чём не бывало? Это было бы довольно просто сделать в обычной централизованной системе, но в децентрализованной всё во много раз сложнее. Для любых изменений базы данных вам нужен консенсус, согласие всех участников. Блокчейн — это общественный ресурс, контроль над которым не может быть сосредоточен в чьих-то одних руках (децентрализованная, помните?), иначе всё ваше предприятие превращается в невероятно дорогой способ создать пугающе медленную централизованную систему.

Создавать системы поощрения очень сложно

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

Почему так сложно применить блокчейн

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

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

Обслуживание очень затратно

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

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

Пользователи наделены властью

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

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

Все обновления добровольны

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

Почему так сложно применить блокчейн

Вместо этого все обновления должны обязательно быть обратно-совместимыми. Совершенно очевидно, что этого очень сложно добиться, особенно если вы хотите добавить новые функции. А если посмотреть с точки зрения тестировщика, то ещё сложнее. Каждое обновление будет увеличивать время тестирования и отодвигать всё дальше дату вашего релиза.

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

Масштабирование очень затратно

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

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

Централизация гораздо проще

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

Почему так сложно применить блокчейн

Во-первых, множество отраслей, которые тратят сейчас деньги на блокчейн, уже давно нуждаются в обновлениях IT-инфраструктуры. В том же здравоохранении зачастую пользуются совершенно жутким программным обеспечением. Финансовые расчёты порой ведут в древних программах из 70-х. Снабженческие системы очень сложны как в использовании, так и в развёртывании. Большинство компаний в этих отраслях сопротивляются обновлениям, так как они всегда связаны с риском. На апгрейды инфраструктуры тратятся сотни миллионов и их часто приходится откатывать назад. Блокчейн в этом случае — просто способ продать IT-обновления под новым, более аппетитным соусом.

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

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

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

Так для чего же нужен блокчейн?

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

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

Почему так сложно применить блокчейн

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

Но есть и исключение: деньги. Отличие в том, что стабильность и отсутствие изменений деньгам только на пользу. Вот почему блокчейну нашлось и успешное применение — Биткойн.

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

Заключение

Блокчейн — очень раскрученное слово, и, к сожалению, пресловутый мем “blockchain not Bitcoin” никуда в ближайшее время не денется. Если я — централизованный сервис, то блокчейн вряд ли позволит мне делать что-то, чего я не могу сделать в тысячу раз дешевле с помощью централизованной базы данных. Если я — децентрализованный сервис, то, скорее всего я обманываю себя, не замечая единых точек отказа, существующих в моей системе. Да и вообще никакого «я» в по-настоящему децентрализованном сервисе не должно быть по определению.

В начале двухтысячных многие топ-менеджеры IT отрасли активно продвигали Java и XML. Не смотря на то, что это инструменты а не продукты, топ-менеджеры настаивали на их использовании, наплевав подходят они под задачу или нет. Так же и с блокчейном. Если вы сосредоточитесь на проблемах, которые вы пытаетесь решить, нужные инструменты сами прыгнут к вам в руки. Зациклитесь на инструментах — и у вас получатся бесполезные машины Руби Голдберга.

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

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

Автор статьи: Джимми Сонг (Jimmy Song)

Оригинал статьи на английском вы можете прочитать по этой ссылке.

Автор передаёт свою признательность Дэвиду Хардингу и Майклу Флаксману.

Фёдор Гетманов перевёл статью на русский, а Андрей Паршин отредактировал.

44
1 комментарий

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

1