Блокчейны: raid для чистой правды

Алексей Панишев

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

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

Прощай, трение!

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

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

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

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

Причём отразилось не в безусловно позитивном ключе. Повальная компьютеризация, обещавшая удешевление и ускорение бизнес-процессов, на деле обернулась ещё и дополнительными расходами для всех участников деловых коммуникаций. Имеются в виду затраты на ИКТ-инфраструктуру, конечно же: если прежде делопроизводство нуждалось лишь в бумаге для пишущих машин, в копировальных и факсимильных аппаратах, то теперь даже не самым крупным компаниям стали вдруг необходимы и компьютеризованные рабочие места, и серверная инфраструктура (хотя бы простейшая), и средства резервирования/архивации данных.

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

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

Однако и это метафорическое трение, в точности как и его вполне реальный физический прототип, чрезвычайно коварно и просто так своих позиций не сдаёт. В частности, уходящие в облака потребители ИКТ-услуг стали в какой-то момент ощущать себя заложниками закрытых программ и форматов данных. Цены на ПО, создаваемое для бизнес-приложений, оставались астрономическими ещё со времён легендарной PDP-11 и современных ей мини-ЭВМ. Что было вполне приемлемо для крупных корпораций в эпоху экономического роста — но стало откровенно тяготить средний и мелкий бизнес во время и после наиболее острой фазы глобального экономического кризиса в конце первого десятилетия наступившего века.

Вот почему продолжающиеся теперь 2010-е многие ИКТ-аналитики (например, из крупнейшей консалтинговой компании PwC) считают эпохой GitHub. Не iPhone и уж тем более не дополненной реальности, а именно этого вот онлайнового репозитория и системы контроля версий ПО с открытым кодом. GitHub позволяет огромному множеству даже не знакомых друг с другом лично программистов совместно работать над проектами, клонировать их для последующей модификации под свои специфические нужды, обмениваться компетенциями, тестировать и обогащать функциональность своих программ — и всё это без какого бы то ни было централизованного контроля. Безо всякого преувеличения, рост популярности GitHub среди программистского сообщества самым существенным образом позволил снизить трение в области разработки ПО, в том числе прикладного и делового, и тем самым обеспечил ещё больше свободы для развития бизнеса в эпоху цифровых технологий.

И вот вскоре, как предрекают всё те же аналитики, а именно, в подступающих 2020-х, следует ожидать снижения силы противодействующего деловой активности трения в ещё одном важном смысле. Имеется в виду как раз повсеместная интеграция блокчейнов. Трение же, с которым те примутся бороться. обусловлено сложными и громоздкими (особенно при актуальных сегодня производственно-логистических цепочках) системами верификации и валидации деловых данных.

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

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

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

Англоязычный термин blockchain был образован слиянием двух слов, описывающих суть этой технологии: block chain — «цепочка блоков». Под блоком здесь подразумевают некую запись, которая содержит в целостном виде и значимую информацию, и служебную. Значимыми считают те данные, ради которых данный блокчейн и создавался: в случае криптовалюты это будет информация об актуальном владельце (точнее, о виртуальном кошельке) той или иной суммы.

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

Всё как в Византии

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

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

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

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

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

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

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

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

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

Устойчивость к атакам класса «византийских генералов» — Byzantine fault tolerance, BFT — в компьютерных системах может быть ещё более повышена при помощи дополнительных ухищрений. Например, практически ликвидировать вероятность подделки депеши позволяет использование стойкой криптографии, — однако шифрование и дешифровка требуют времени, да и предатель может попросту устранить гонца, скачущего от одного верного генерала к другому, вместо того чтобы перехватывать и подделывать доставляемую депешу (что в реальных приложениях будет соответствовать, например, выходу из строя одного из надёжно работавших прежде узлов).

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

Почему биткоин важнее блокчейна и что ждать от него в 2018-2019, — Степан Гершуни


Похожие статьи.

Понравилась статья? Поделиться с друзьями: