Артем Калихов, Web3 Tech: Сегодня мы создаем рынок корпоративных блокчейн-решений
Блокчейн — до сих пор перспективная технология, от которой ожидается многое, вплоть до радикальных преобразований госсектора и изменений во взаимоотношениях государства с бизнесом. О том, как выглядит сегодня этот сегмент российского рынка, TAdviser рассказал Артем Калихов, генеральный директор компании Web3 Tech.
О российском рынке решений блокчейн
Артем, по Вашим оценкам, блокчейн-решения в России – это уже состоявшийся рынок?
Артем Калихов: Скажу так — то, что сегодня происходит с блокчейном в России, уже очень похоже на рынок, если мы говорим о применении технологии блокчейн в государственном или коммерческом секторе. Путь его становления начался приблизительно в 2018 г. — тогда первые пилоты прошли в различных организациях. Многие крупные компании, в том числе, интеграторы открыли собственные блокчейн-лаборатории и бизнес-направления, занимающиеся технологиями распределенных реестров. Это было время энтузиазма, поиска рыночных ниш для внедрений — финансы, логистика, несколько позже к ним присоединилась область государственного управления.
За прошедшие годы рынок изменился. Большое количество пилотных проектов не получило продолжения, почти все интеграторы закрыли свои направления распределенных реестров.
Почему так?
Артем Калихов: Внедрение блокчейн-технологий — это довольно тяжелый и специфичный бизнес. Тяжелый, в первую очередь, потому, что рынок приходится создавать с нуля. Это совсем не похоже на традиционные сегменты ИТ, где уже есть рынок с определенной емкостью, и мы стараемся занять некоторую долю этого рынка. Мы и сегодня делаем это каждый день — создаем рынок корпоративных блокчейн-технологий. И основная конкуренция происходит не с другими поставщиками, а с подходом заказчиков работать по старинке и не двигаться в сторону новых технологий.
Выделю два основных драйвера этого формирующегося рынка. Первый — это движение государства в сторону блокчейн, которое началось с принятием госпрограммы «Цифровая экономика» и стало заметным, пожалуй, в 2020 г., когда стали выполняться блокчейн-проекты для госструктур различного уровня: федерального, регионального, муниципального. Второй драйвер — финтех-проекты, которые реализуют различные финансовые инструменты: управление ликвидностью, банковские гарантии, цифровые финансовые активы и т.д. Федеральный закон «О цифровых финансовых активах, цифровой валюте» №259 от 31.07.2020 дал существенный толчок для появления операторов, выпускающих свои активы в цифровом формате на различных блокчейн-платформах. Кроме того, развивается проект цифрового рубля. Это еще одно крупное направление развития технологии блокчейн в России. Есть также различные идеи по организации трансграничных расчетов в условиях текущей геополитической ситуации: технология блокчейн способна помочь компаниям и странам работать друг с другом, не опираясь на ту инфраструктуру, которая настроена мешать этим взаимодействиям.
Блокчейн для дистанционного электронного голосования и ФНС
Конечно, цифровой рубль является знаковым проектом. Можете привести другие примеры масштабных задач подобного уровня, реализуемых на блокчейне?
Артем Калихов: Примеры проектов государственного масштаба есть у нашей компании. В первую очередь, надо сказать о проекте дистанционного электронного голосования (ДЭГ), который мы выполняем совместно с «Ростелекомом» по заказу Центральной избирательной комиссии. Там используется наша блокчейн-платформа и криптографический протокол дистанционного голосования, который тоже является разработкой нашей компании. Он собран из различных алгоритмов и криптографических примитивов, которые пока не входят в государственные стандарты, но активно используются мировым сообществом и подробно описаны в различных работах. Фактически этот проект дал толчок развитию отечественной криптографии: регулятор стал системно исследовать эти алгоритмы и заниматься вопросами сертификации таких криптографических средств. А ЦИК России (а вместе с ним и все граждане страны) получила систему электронного голосования, которая не только не уступает по своим свойствам традиционному очному голосованию, но и имеет явные преимущества с точки зрения удобства, стоимости организации голосования и т.д. Здесь Россия точно впереди планеты всей - ни одна страна в мире не смогла внедрить блокчейн на таком уровне Уже несколько лет в рамках Единого дня голосования сотни тысяч россиян пользуется электронным голосованием на блокчейне.
Еще один масштабный государственный проект мы выполнили для Федеральной налоговой службы. Платформу распределенных реестров ФНС наши специалисты создали в 2020 г. и с тех пор ее постоянно развивают. По нашим оценкам, это самая крупная государственно-корпоративная блокчейн-сеть не только в России, но и за рубежом, хотя, может быть, мы о чем-то не знаем. В любом случае цифровая платформа распределенного реестра ФНС находится на уровне лучших мировых проектов распределенных государственных информационных систем, либо превышает его.
Какие новые возможности получило ведомство с появлением блокчейна?
Артем Калихов: Была поставлена задача — объединить большое количество финансовых организаций (на первом этапе это были банки) для того чтобы обмениваться информацией по выдаче беспроцентных льготных кредитов. Это был 2020 год, и правительство решило оказать поддержку бизнесу, пострадавшему в пандемию. Нужно было сделать систему, которая объединила бы банки и Налоговую службу в единую систему обмена информацией, чтобы исключить для недобросовестных предпринимателей возможность получения нескольких льготных кредитов в разных банках. Технология блокчейн отлично подходит для этой задачи — информация о заявке, поступившая от определенного юрлица, мгновенно распространяется по всем участникам сети.
Как работает этот процесс?
Артем Калихов: Когда заемщик приходит в банк и подает заявку на льготный кредит, финансовая организация создает заявку во внутренней системе и собственный узел блокчейн-платформы. Туда передается информация о поступившей заявке и распространяется адресатам — всем банкам, а также Налоговой службе, которая помогает провести скоринг заемщика и возвращает результат в банк — выдать кредит или нет. Такие итерации за счет применения технологии блокчейн и созданного с ее помощью единого информационного пространства происходят очень быстро.
На настоящий момент в блокчейн-сеть ФНС включает около 150 узлов: приблизительно 70 банков, 20 операторов электронного документооборота, самая ФНС, Минэкономразвития и др. И вот что важно — на этой готовой инфраструктуре можно легко создавать новые приложения, реализовывать новые бизнес-процессы. Для этого фактически нужно лишь написать смарт-контракт, который опишет логику действий в виде кода, и приложение – по сути, это пользовательский интерфейс для участников взаимодействия. И все. То есть для того чтобы запустить, скажем, систему поддержки очередного постановления Правительства РФ, где предусмотрена другая логика, этого будет достаточно. Выполнять повторно работы по интеграции всех со всеми больше не нужно. В этих условиях запуск нового сервиса может занимать от силы пару месяцев, что несравнимо по срокам выполнения ИТ-проекта с другими подходами.
Например, на этой же сети ФНС запущен проект по машиночитаемым доверенностям. Он вообще не связан с деньгами, и занимается этим другое управление ФНС. Но ведомство достаточно легко организовало процесс управления цифровыми доверенностями, которые организации дают своим сотрудникам. Им больше не надо держать в голове имена сотрудников, сроки действия доверенностей, отзывать в случае увольнения сотрудника и заново оформлять на другого сотрудника. Теперь с помощью одного приложения можно просто загрузить в систему доверенность, подготовленную в определенном машиночитаемом формате и подписанную электронной подписью руководителя. И после этого доверенность сразу появляется во всех организациях и ведомствах, которые подключены к данной сети.
В этом году проект выходит на стадию пилота, по сути, становится обязательным для каждого юридического лица. К этому моменту вовсю готовятся операторы юридически значимого электронного документооборота: они уже создали разделы для работы с машиночитаемой доверенностью, и эти личные кабинеты интегрированы в блокчейн-сеть ФНС.
Платформа распределенных реестров ФНС — это один из флагманских проектов ведомства, у руководства есть много идей, как использовать эту инфраструктуру для того, чтобы предложить российскому бизнесу новые полезные цифровые услуги.
О возможностях тиражирования государственных блокчейн-систем
Что можно сказать о перспективах тиражирования опыта ФНС на другие российские ведомства?
Артем Калихов: Это непростой вопрос. С одной стороны, конечно, реальный успешный опыт можно и нужно переиспользовать. Ведь принципы построения блокчейн-сети очень простые и понятные, а специфика процессов проявляется в виде нюансов: кто и какую информацию передает. И эта специфика легко настраивается в описаниях смарт-контрактов. Другое дело, что отношения коммерческих организаций и государства — это очень тонкая материя. Всегда речь идет о том, что ведомство в той или иной форме определяет условия для коммерческих организаций. Те же банки присоединились к ЦПРР ФНС потому что такими стали «правила игры». Исполнение проекта было на контроле у премьер-министра РФ, и он докладывал об опыте цифровизации ФНС Президенту РФ.
Так что для блокчейн-проектов в госсекторе есть два ключевых момента. Первый — это ответ на вопрос: а зачем это нужно? Нужно ли вообще городить «распределенный огород»? И второй — наличие той самой воли к реализации проекта. Поэтому блокчейн-проекты в наших ведомствах — это пока уникальные штучные проекты. Я бы, скорее, рассматривал вопрос тиражирования в разрезе внедрений в других странах.
Мне кажется, это очень перспективно для развития блокчейн-компаний — тиражировать свой опыт в дружественные страны. Мы, например, сейчас активно работаем в этом направлении: СНГ, страны Африки, арабский мир.
О блокчейн-проектах в российских банках
С государственным уровнем понятно. А коммерческие организации, например, в финансовом секторе, более подвижны в том, чтобы принимать новые технологии и использовать их?
Артем Калихов: С коммерческими организациями, с одной стороны, проще: если бизнес видит очевидную выгоду от создания какой-то ИТ-системы, то без проблем находятся и инвестиции, и воля, и партнеры. Другое дело, что в случае с блокчейном эта выгода не всегда очевидна… На настоящий момент еще не накоплено «критической массы» очень успешных коммерческих кейсов с применением технологии, которые очевидно показывают, как компания может на этом заработать. Эти проекты еще находятся в состоянии развития. Поэтому мы сами проводим бизнес-исследования для разных потенциальных заказчиков и целых отраслей типа ритейла, исследуем, где есть выгода в тех или иных коммерческих проектах, и выходим на переговоры с расчетами и финансовыми моделями.
Флагман внедрения инноваций — это, конечно, финтех. Отличительная особенность крупных банков заключается в том, что бизнес-фокус у них в последние годы размывается — из классической финансовых организаций они превращаются мультисервисные технологические компании. Конечно, лидер в размытии фокуса — это Сбер, но и другие банки также стремятся к инновациям. В частности, Альфа-Банк — наш традиционный партнер, с которым мы много проектов выполнили, — в плане применения блокчейна, думаю, и Сбер переплюнул. Так, банк использует блокчейн-платформу для выпуска цифровых финансовых активов (ЦФА). Этот бизнес фактически стартовал в России в прошлом году и сейчас набирает обороты: все больше и больше игроков заходят на рынок, и как операторы выпуска, и как эмитенты, и как инвесторы, есть позитивные ожидания от развития этого рынка.
Альфа-банк также создал на базе блокчейн-платформы решение для управления ликвидностью. Пилотный проект выполнен для родственной структуры Х5 Retail Group — там система помогает управлять ликвидностью на счетах огромного количества предприятий этого крупного холдинга. Раньше у корпоративного казначейства была большая головная боль — работа по сбору дочерних счетов на материнских счетах, по настройке разнообразных лимитов использования средств на дочерних счетах, например, лимитов овернайт и т.д. По сути, это большая рутинная казначейская работа. И мы ее вынесли на блокчейн, реализовали на смарт-контрактах, что позволило существенно сократить время отклика и взаимодействия между клиентом и банком. Эту платформу можно масштабировать далее на большее количество участников, чтобы один банк мог работать с большим количеством клиентов, а один клиент — с большим количеством банков. По сути, получается платформа нового поколения «Мультибанк — Мультиклиент». Это решение находится в стадии создания.
Вместе с компанией Gaskar Group «Альфа-Банк» создал первую в России блокчейн-платформу для расчетов в строительной отрасли. Заметьте: сделали ее самостоятельно, взяли нашу платформу и вместе с партнером, разработчиком ПО создали маркетплейс. Для нас этот проект имеем особое значение: мы меняем статус интегратора, внедряющего решения на своей платформе, на вендора ПО с собственной партнерской сетью.
О перспективных нишах для применения блокчейн-технологий
Вы сказали, что в бизнесе работают прагматики, которые запускают внедрение инноваций только при условии очевидной выгоды. Можно ли предположить, что реализация тех или иных бизнес-решений на блокчейн-платформе дает принципиально новые возможности? Таких, которых на традиционных технологиях достичь вообще невозможно?
Артем Калихов: Безусловно! Я бы даже сказал, что это основной подход при запуске блокчейн-проектов – заказчик, в первую очередь, ищет новые возможности, нежели замену каких-то имеющихся систем. Ведь если у него есть нормально работающая централизованная система, переходить на блокчейн, скорее всего, большого смысла нет.
Это очень специфическая технология и применять ее надо крайне внимательно. Тем более, что блокчейн — не всегда дешевое решение в силу специфики технологий. Они могут давать очень большой экономический эффект в сетях и проектах масштаба ФНС с огромным количеством участников и множеством информационных систем: их нужно только один раз интегрировать с сетью ФНС, и дальше можно запускать любые приложения, любую бизнес-логику и больше не тратить ресурсы на интеграцию.
Если попытаться дать общее описание ситуации, благоприятной для внедрения блокчейн, можно сказать так: это такие истории, когда необходимо выполнение некоторой логики (проверка документа, проведение платежа, построение реестра скорингового заемщика и т.д.), причем, в условиях, когда участники взаимодействия, априори не доверяющие друг другу, могут доверять программе, работающей в децентрализованной среде. В этом случае имеет смысл использовать блокчейн и получить принципиально новое качество ИТ-решения. Именно это произошло в системе ДЭГ: можно проголосовать, сидя дома на диване, и быть уверенным, что голос будет правильно учтен. Такой уверенности личное посещение избирательного участка не дает.
Тоже самое — с цифровыми финансовыми активами. По сути, это традиционные инструменты, но после переноса их в цифровую форму блокчейн, они обретают большое количество дополнительных возможностей, которых вообще не существуют в их традиционном виде. Блокчейн-решение дает дополнительные гарантии защиты эмитентам для привлечения ликвидности — той, которую они ранее не могли привлечь, поскольку не было площадки для того, чтобы быстро и просто выпустить активы под некоторые свои обязательства и привлечь под эти активы инвесторов на эту же платформу. В нынешней ситуации, когда банк выступает такой площадкой, у него уже есть клиентская база, свои инвестиционные приложения и брокерские подразделения. Эмитент, а это крупная компания или корпорация, по сути, получает непосредственный доступ к этой клиентской базе со своими традиционными инструментами.
О реализации внутренней логики смарт-контрактов
Существенный элемент блокчейн-системы — смарт-контракты. Все ли блокчейн-платформы способны поддерживать сложную бизнес-логику, или есть отличия в этой части?
Артем Калихов: Отличия есть. Разные платформы реализуют бизнес-логику смарт-контрактов по-разному. Это зависит от того, как реализована конкретная блокчейн-платформа, какие архитектурные подходы в нее заложены. Например, наша платформа позволяет реализовать вообще любую логику на любом языке программирования. И это ее свойство мы всегда позиционируем как наше серьезное преимущество.
Смарт-контракт представляет собой программу, которая загружена в программный контейнер, размещаемый на виртуальной машине или сервере рядом с узлом блокчейн, с которым они взаимодействуют, обмениваются информацией по низкоуровневому протоколу. То есть узел получает на вход транзакцию с вызовом смарт-контракта с определенными параметрами и взаимодействует с этим контейнером. Внутри контейнера запускается программа, она использует переданные параметры и возвращается обратно в узел, записывая в узел блокчейн-транзакцию. И это происходит на нескольких узлах одновременно таким образом, что достигается консенсус между узлами сети, что есть результат выполнения — один и тот же на всех узлах.
Так вот, в нашей системе внутри контейнера может быть любая программа: на Java, JavaScript, Си, Python или любом другом. Потому что контейнер представляет собой миниатюрную виртуальную машину со своей операционной системой и средой исполнения, которая позволяет исполнять этот код. Плюс реализованы различные средства защиты, которые не позволяют подделать код или подделать образ этого контейнера, и контролируют, что результаты правильно сохранились в правильной последовательности.
Для того чтобы продемонстрировать доступный уровень сложности смарт-контракта, приведу пример. В одном нашем внутреннем исследовании мы поместили внутрь смарт-контракта целую нейросеть, которая распознавала изображения. Как это работало в конкретном бизнес-процессе? Допустим, на входе на объект установлена видеокамера. Человек проходит в помещение, камера его фотографирует, передает его изображение в смарт-контракт блокчейн-узла. Смарт-контракт осуществляет интеллектуальное сравнение изображения с данными из базы сотрудников и записывает в блокчейн информацию: кто, где, в какое время вошел на объект.
Об ограничениях смарт-контрактов публичных блокчейн-решений
А как обстоит дело со сложными смарт-контрактами у публичных блокчейн-платформ?
Артем Калихов: Там всегда есть ограничения. Например, у платформы Ethereum, часто используемой, как в публичных, так и корпоративных блокчейн-проектах, имеются очень серьезные ограничения на сложность исполнения смарт-контрактов. Дело здесь вот в чем. В публичном блокчейне за исполнение смарт-контрактов нужно платить внутреннюю валюту. Ведь, по сути, любой вызов смарт-контракта выполняется сразу на всей сети, а их у Ethereum - десятки тысяч узлов, и всем им нужно оплатить работу. Понятно, что положить нейросеть в такой смарт-контракт невозможно, потому что это будет, запредельно дорого и долго. Поэтому введены ограничения — поддерживается свой собственный язык программирования для создания смарт-контрактов, который строго ограничен небольшим набором доступных операций. И эти операции созданы с учетом тех бизнес-процессов, для которых Ethereum изначально создавался, а именно сервисов децентрализованных финансов (DeFi). То есть, в основном, это финансовые смарт-контакты с всевозможными условиями, расчетами и т.д. Другая бизнес-логика там сильно ограничена. Соответственно, корпоративные системы, которые построены на базе Ethereum, наследуют эти ограничения.
Есть реализации смарт-контрактов, созданных под конкретную виртуальную машину, которая умеет работать с одним-двумя языками программирования, Есть подход реализации на базе WebAssembly (WASM) — внутренней виртуальной машины, которая встраивается в код и позволяет работать с несколькими языками программирования. Там с ограничениями логики меньше проблем, но тоже есть нюансы.
По сути, сегодня Web3 Tech — единственная компания, которая разрабатывает свою собственную российскую блокчейн-платформу, которая реально работает, как в корпоративном, так и государственном секторе. Другие платформы, которые сейчас используются, в основном, созданы на базе открытого исходного кода. Есть и разработчики отечественных платформ, но они пока, к сожалению, не вышли на уровень качественных коммерческих продуктов, производительных, простых в использовании и при этом надежных и отказоустойчивых. А это очень нужно для того, чтобы российские платформы импортозамещали платформы зарубежного производства.
О необходимости импортозамещения у российских заказчиков блокчейн-платформ на базе open source
Почему нужно замещать блокчейн-решения на базе open source?
Артем Калихов: Во-первых, использование открытого кода не позволяет нашим блокчейн-разработчикам работать с блокчейном на самом низком уровне ИТ, откуда, собственно, и растут все архитектурные нюансы, все проблемы и возможности. Во-вторых, это опасно.
Цифровой рубль построен разве не на open source?
Артем Калихов: Да, у нас даже цифровой рубль использует открытый исходный код. Но это проект Банка России. Специально для него создан большой центр компетенций, специалисты, работающие там, конечно, внимательно исследовали код, и риски информационной безопасности детально проверяют. Но ведь это прецедент, то есть пример для других компаний! Это у Банка России есть ресурсы для проведения соответствующих мероприятий и уверенность в безопасности кода и отсутствии каких-либо недокументированных возможностей в ней. Чего нельзя сказать об организациях попроще, у которых такой возможности нет, но есть привычка брать ПО из открытых репозиториев на GitHub. А ведь после 24 февраля прошлого года зарубежные разработчики open source начали намеренно встраивать туда вредоносный код, который в самом лучшем случае пишет на экране призыв «Нет войне!», что-то такое. Никто не мешает этим владельцам открытого кода встраивать в него и более опасные вещи, который имеет шанс попасть на компьютер в банке или государственном органе РФ.
Вы, кстати, знаете, что самые популярные сегодня варианты блокчейна разрабатываются в IBM? В компании, которая является крупнейшим подрядчиком Минобороны США и, по сути, полностью подконтрольна госорганам США либо крупнейшим американским банкам, которые в этой истории недалеко ушли от госсферы. Поэтому я призываю к тому, чтобы в нашей стране использовались блокчейн-платформы отечественной разработки. Пусть их будет больше! Потому что чем больше, тем безопаснее.
Об информационной безопасности блокчейн-систем
Данные, которые циркулируют в блокчейн-сети, могут содержать информацию, относящуюся к коммерческой тайне, или более секретную, если речь идет о государственных информационных системах. Расскажите, пожалуйста, как сегодня решаются вопросы информационной безопасности данных, противодействия утечкам данных в информационных системах, использующих блокчейн?
Артем Калихов: В принципе, подход к защите блокчейна не сильно отличается от классического подхода к информационной безопасности. В целом система защиты строится, исходя из модели угроз и анализа обрабатываемых данных: критичные или не критичные, конфиденциальные, персональные данные и т.д. Единственное важное отличие заключается в том, что информационная система в классическом исполнении находится в зоне ответственности одной организации, а блокчейн-узлы принадлежат компаниям-участникам сети. И ни одна компания из их числа не может целиком и полностью самостоятельно отвечать за безопасность информации.
Каждая компания, в контуре которой устанавливается узел блокчейн, должна принимать собственные меры по обеспечению безопасности информации. Что, кстати, зачастую затрудняет внедрение. Порой для классического проекта в одной компании непросто согласовать действия со службой безопасности, а делать это для n-го количества участников, скажем, банков или промышленных компаний предприятий, еще сложнее.
Наш блокчейн умеет передавать данные по зашифрованным каналам по протоколу TLS (Transport Layer Security, протокол защиты транспортного уровня) с использованием российских средств криптографической защиты информации. Собственно, это классический подход при передаче информации между двумя точками.
А если на обработку в смарт-контракт поступают конфиденциальные данные, которые не должны быть доступны всем участникам сети?
Артем Калихов: Для таких случаев у нас есть дополнительный вариант защиты, который позволяет гибко работать с конфиденциальными данными внутри общей блокчейн-сети. Возьмите сеть ФНС, о которой мы говорили ранее. Когда клиент подает заявку на кредит, то в системе эта заявка делится на две части. Одна часть — открытая - распространяется по всему блокчейну, и прочитав ее, другие банки смотрят, не приходил ли их заемщик за льготным кредитом еще и в другой банк. А есть закрытая часть заявки, которую другие банки в силу ее конфиденциальности получать не должны. Для реализации этой возможности используется механизм хеширования данных: прочитать всю информацию может только тот участник, которому это разрешил отправитель.
Другой пример подобной ситуации — блокчейн-сеть для доставки грузов, в которой участвуют поставщики товаров, заказчики и транспортная компания. Детали конкретной сделки, которую заключили между собой конкретные компании, — это их коммерческая тайна, которая должна быть недоступна другим участникам этой логистической блокчейн-сети.
Вопросы обезличивания данных, например, персональных данных, передаваемых для обработки в некоторое приложение, например, смарт-контракт, имеют значение для блокчейн-решения?
Артем Калихов: Блокчейн здесь выступает в роли транспорта по передаче данных. Поэтому, полагаю, логика обезличивания должна быть реализована выше транспортного уровня. Например, в системе ДЭГ, где этому вопросу уделяется огромное внимание, разработан довольно сложный протокол обеспечения анонимности для избирателей. Изначально они должны зарегистрироваться через портал госуслуг для голосования, и после этого появляется возможность отдать полностью анонимный голос. То есть создается достаточно сложная система поверх блокчейна, а сама сеть блокчейн помогает как бы «склеить» все воедино таким образом, чтобы вообще не было возможности произвести вброс данных, принадлежащим обезличенным и никому не известным избирателям. Блокчейн «склеивается» воедино за счет того, что все информационные взаимодействия отражаются в смарт-контракте голосования. Он, по сути, является этакой неизменяемой «избирательной урной».
В целом, есть много подходов к обезличиванию данных. Например, есть технологии, которые позволяют проводить операции над зашифрованными данными без их расшифрования. Там используется математика гомоморфной криптографии. В частности, гомоморфное шифрование используется в системе голосования для того, чтобы можно было получить результат выборов, не расшифровывая каждый конкретный бюллетень.
Это делается следующим образом. На устройстве пользователя транзакция с выбором зашифровывается, отправляется в смарт-контракт, а дальше в смарт-контракте бюллетени складываются между собой. Фактически в формате бюллетеня каждому кандидату соответствует конкретный шифротекст (цифры), и в смарт-контракте мы покандидатно складываем все зашифрованные цифры и получаем на выходе также некоторое зашифрованное число. Таким образом, при подведении итогов не расшифровывается каждый бюллетень каждого избирателя, а есть итоговое число, которое поддается расшифровке. Это один из способов обеспечения анонимности в голосовании, в котором блокчейн используется как транспорт, обеспечивая хранение, надежность, прозрачность операций, а смарт-контракт умеет выполнять сложные криптографические операции.
О том, как считать производительность сети блокчейн
Производительность блокчейн-решения тоже, наверное, зависит от реализации платформы?
Артем Калихов: Да, зависит. Причем, измерение производительности блокчейн-сети — это вопрос, по которому постоянно ломаются копья. Например, один производитель заявляет о производительности на уровне миллионов операций в секунду, в другой — на уровне сотен операций. При этом второй подразумевает, что можно 100 раз в секунду сохранять 1 Мб данных на 100 узлов по всей сети. А в первом случае имеется в виду один узел, который сохраняет миллион операций на SSD-диск. По сути, производительность одного узла считается производительностью блокчейн-платформы. Подходов к расчету производительности много. Я считаю, что производительность блокчейна — это количество транзакций, то есть атомарных операций, которые блокчейн-сеть может сохранить и подтвердить (имеются в виду окончательно финализированные операции) в единицу времени (секунду).
При этом понятно, что сеть, состоящая из одного узла, и сеть из сотни узлов имеют совершенно различную производительность, потому что на одном узле сохранить операции гораздо быстрее и проще, чем на сотне узлов, которые еще должны между собой обменяться информацией, чтобы согласовать цепочку блоков. Поэтому, когда мы оцениваем производительность, важно понимать, насколько производителен сам узел, и насколько быстро там работают смарт-контракты. Ведь одно дело, когда записывается простая транзакция, в которой указано, что пользователь А перевел пользователю Б 100 токенов, и эта транзакция занимает 150 байт. А можно сохранять и обрабатывать бюллетени на выборах. Это тоже одна транзакция, но по факту передается много зашифрованного текста, который разбирается смарт-контрактом: проверяются форматы, проводятся криптографические операции, проверяется подпись и т.д. И распознавание лица в вышеприведенном примере — это тоже одна транзакция.
Поэтому, если кто-то будет вам рассказывать, что на блокчейн-сети выполняется миллиард операций в секунду, надо сразу спросить: а что вы, собственно, измеряете?
Конкретный алгоритм консенсуса блоков тоже влияет на производительность?
Артем Калихов: Конечно. С точки зрения производительности блокчейна важно, насколько быстро согласовывается цепочка блоков внутри блокчейн-сети. А это напрямую зависит от алгоритма консенсуса и от сетевого протокола.
Алгоритм консенсуса описывает, каким образом узлы должны придти к согласию, какой блок и какую цепочку блоков считать верной. Есть алгоритм консенсуса proof-of-work, который требует выполнения работы по поиску правильного значения некоторой хеш-функции, и это занимает какое-то время. А после того, как оно будет найдено, результат должен распространиться по сети. По сути, блок создаст тот, кто первым корректно распространит хеш со своей подписью по большему количеству участников сети. Все это вызывает некоторые сетевые взаимодействия: отправить всем, принять, проверить.
Консенсус BFT (Byzantine Fault Tolerance), построенный по мотивам задачи византийских генералов, подразумевает поэтапный опрос узлов, согласны ли они с этим блоком. Есть proof-of-stake консенсус, где вероятность генерации блока зависит от наличия баланса: чем больше у тебя баланс токенов в сети на момент генерации блока, тем больше вероятность, что именно ты создашь этот блок.
При этом каждый алгоритм консенсуса по-разному себя ведет в сетях различного масштаба. Например, консенсус BFT плохо работает в больших сетях. Скажем, на тысяче узлов накладные расходы и время на сетевое взаимодействие всех со всеми будут настолько велики, что производительность блокчейна деградирует до неприемлемого уровня.
И, конечно, очень важен сетевой протокол. Он определяет, насколько эффективно данные распространяются по сети, принимаются, проверяются на узлах. Мы проделали огромную работу, доводя наш сетевой протокол до нынешнего состояния: оптимизировали смарт-контракты, учили их работать параллельно, чтобы один и тот же контейнер мог выполнять 100 операций и 100 транзакций параллельно, а не создавать очередь на обработку. Действительно, если один бюллетень с другим не связан, почему бы смарт-контракту не обработать тысячу бюллетеней одновременно и не записать в правильно порядке в блокчейн? А потом пришла новая идея: а почему бы не сделать так, чтобы это можно было проделывать на связанных операциях? Давайте сделаем взаимозависимые транзакции тоже параллельными, и внутри блоков научим их структурировать. И мы это сделали.
Вывод из всего этого таков: с производительностью блокчейна может быть много нюансы, и если вы никогда не пытались создавать блокчейн в высоконагруженных сценариях, то первый блин точно будет комом.
Про отказоустойчивость блокчейн-сети
Артем, а что скажете об отказоустойчивости блокчейн-сети? Там тоже есть нюансы?
Артем Калихов: Что касается отказоустойчивости, то в этой части блокчейн хорош тем, что это децентрализованная система. Она, согласно теореме о согласованности данных, является, по сути, частично согласованной, и позволяет при выходе из строя одного узла никоим образом не утратить работоспособность сети. Иными словами, для создания отказоустойчивой системы хранения критичных данных не очень большого объема блокчейн отлично подходит, поскольку обеспечивает отказоустойчивость by design, то есть без каких-либо дополнительных инструментов, репликаций, синхронизации слепков баз данных и проч. По своей природе изначально он умеет хорошо работать практически на любом количестве узлов. Ну, и, конечно, к самим узлам нужно применять классические средства обеспечения отказоустойчивости, например, ставить резервный узел на случай, если основной выйдет из строя.
Вы видите, что внедрение блокчейн — это очень непростая задача, которая требует специфических компетенций. Как я сказал в начале разговора, мы решили переходить от интеграторских проектов к модели продуктового развития. Поэтому стараемся наращивать партнерскую сеть и вкладываем усилия в развитие партнеров, в частности, проводим обучение. Коллеги из «Альфа-Банка» именно таким образом приобрели компетенции в блокчейне. Создание развитой партнерской сети в области блокчейна — дело небыстрое. Но мы видим позитивные сигналы и предпосылки на рынке, включая государственную поддержку отечественных разработок и импортозамещение, и полагаем, что на горизонте нескольких лет количество партнерских проектов уверенно превысит количество тех, в которых мы сами внедряем блокчейн-систему. Рассчитываем, что все будет идти в режиме поступательного развития.