С чем у вас в первую очередь ассоциируется слово «блокчейн»? Правильно, с криптовалютами и Германом Оскаровичем. И хотя для специалистов мы не откроем Америку, но для большинства людей, не столь искушённых в блокчейнах, может быть откровением, что эта технология применима в самых разных сферах, а вовсе не только для учёта транзакций биткоинов, эфириумов и прочих виртуальных монет. Например, блокчейн прекрасно подошёл для использования в сфере факторинга. В начале года мы завершили разработку совместного со Сбербанком проекта по созданию факторинговой платформы на основе блокчейна, открытой для всех желающих. Что это за платформа, зачем нужна и как устроена — наш рассказ под катом.
Пара слов о факторинге
Что такое факторинг?
Выражаясь высоким финансовым штилем, факторинг — это один из инструментов финансирования оборотного капитала. Основная часть нашего оборотного капитала — это товары, которые находятся на складах и в магазинах и ожидают своего нового обладателя.
Представьте себе схему: есть банк, поставщик товара и продавец. Поставщик отгружает продавцу товар, банк с ним за это расплачивается, а продавец потом расплачиваемся с банком. Чтобы банк заплатил за поставку, ему нужно получить от продавца подтверждение, что он действительно получили товар в полном объёме и должного качества.
Эта схема и называется факторингом. Мы активно используем факторинг, по этой схеме с нами работает несколько сотен поставщиков. Партнёр обращается в одну из факторинговых компаний, — их называют «факторами», — и та выделяет средства на оплату товара здесь и сейчас. Но главным условием является наличие информации о том, что «М.Видео» принял этот товар и заплатит за него через некоторое время. Например, поставщик приносит кучу накладных и говорит: «Профинансируйте 10 млн». Им отвечают: «Мы бы рады, но нам важно сначала узнать, что эти поставки действительно были». За этой информацией факторы обращаются к нам.
Раньше все операции подтверждения поставок у нас делались «вручную»: после получения товара от поставщика специально обученные сотрудники проверяли поставку и загружали в нашу систему данные. Затем банк обращался в бухгалтерию и спрашивал, получили ли мы такую-то партию. Запрос отправлялся либо на почту, либо по телефону. Наши эксперты уточняли информацию внутри компании и отвечали банку, что всё в порядке, можно платить. Получалось достаточно долго, к тому же слишком большое количество ручного труда и участников процесса не способствовало конфиденциальности.
Блокчейн на горизонте
Мы никак не ограничиваем своих поставщиков в выборе банка или фактора. Поэтому сегодня с нами по факторингу работает 12 финансовых организаций, совокупная величина открытых лимитов под контракты с М.Видео составляет около 50-55 млрд рублей. И у каждой из них используется своё IT-решение для верификации поставок.
Поэтому к нам регулярно обращались с предложением провести интеграцию нашей системы с IT-системой какого-нибудь банка или фактора. Но поскольку мы используем SAP, то для нас интегрироваться сложно и дорого. По нашим оценкам, каждая из интеграций обошлась бы нам от одного миллиона рублей. А ведь потом ещё нужно поддерживать каждую систему, поскольку они развиваются и обновляются.
Нас давно интересовала возможность как-то упростить процедуру факторинга. И когда в IT-среде всё активнее начали говорить о блокчейне, возникла идея попробовать эту технологию для проведения факторинговых операций. Она безопасна, проста и открыта для всех участников. По ней можно проследить от начала до конца всю цепочку операций. Не нужно передавать конфиденциальные данные в стороннее дорогое хранилище, потому что в каждый момент времени у каждого участника есть локальная база всех операций: у поставщиков — что они отгрузили, у нас — какой товар приняли, у банков — кому и сколько заплачено. Нужно лишь наладить информационный обмен между этими реестрами. При этом для нас крайне остро стоял вопрос информационной безопасности.
Итак, появилась идея: прикрутить блокчейн к факторингу. Оставалось дело за «малым» — реализовать. Но в «М.Видео» не было специалистов по блокчейну. Зато они были в Сбербанке. У него был ресурс, у нас была идея, и в результате возник совместный проект по созданию факторинговой блокчейн-платформы.
Факторинговая блокчейн-платформа
Главные преимущества, которые легли в основу проекта: просто, дёшево, конфиденциально, масштабируемо. Платформой может воспользоваться любой банк, фактор или поставщик, желающий работать с нами по факторингу.
В основу платформы легли смарт-контракты Ethereum. В рамках этой технологии для каждой транзакции можно указать различную информацию. Именно это мы и используем: наша разработка не имеет никакого отношения к платежам, это средство фиксации информации о товарно-денежных транзакциях между участниками факторинговой схемы.
Ethereum, как open source-платформа, позволяет построить «свой блокчейн»: без ограничения доступа к смарт-контрактам и записям данных по транзакциям. Мы решили строить приватную сеть, потому что она даёт ряд преимуществ. Во-первых, транзакции записываются в цепочку, никак не связанную с публичной сетью Ethereum. Во-вторых, создавать блоки транзакций (записей в децентрализованном реестре) и получать данные из реестра может ограниченное число участников.
Наша сеть технически не отличается от «классической» сети Ethereum, но её приватность позволяет контролировать сеть и быстро обновлять функциональность, а также менять логику записи данных и проведения сверки. К тому же приватная сеть позволяет снизить стоимость транзакций, поскольку они проверяются на валидность доверенными и высокопроизводительными узлами.
Платформа представляет собой сеть, состоящую из нод-майнеров — серверов, стоящих у каждого участника сети. В любое время в сеть могут быть добавлены новые майнеры, то есть к платформе свободно могут присоединяться новые компании-участники.
Майнеры — это клиенты сети Ethereum, на которых запущен майнинг. Они участвуют в процедуре подтверждения поступающих транзакций и добавления их в новые блоки.
В нашей сети используется «классический» Ethereum. Мы не меняли ни алгоритмы хеширования, ни записи блоков транзакций. Нам важно было, чтобы участники могли создавать и публиковать свои смарт-контракты — классы, который описывают правила записи данных в блокчейн, — и получать данные других участников. Алгоритмы Ethereum обеспечивают децентрализованное хранение данных и исполнение смарт-контракта. Хэширование выполняется локально, публичными становятся уже захэшированные данные, это сделано ради повышения безопасности сети.
На майнерах рекомендуется ставить Ubuntu. Каждая нода содержит копию базы данных и информацию для подключения к другим нодам — публичный ключ, IP адрес и порт. Нода состоит из шлюза и клиентской части. Шлюз — это клиент Ethereum без запущенного майнинга, расположенный на сервере в зоне DMZ. Через него идут данные между клиентской частью и всей сетью. Помимо клиента Ethereum на сервере развёртывается веб-сервис системы для загрузки и сверки документов, который представляет собой Node.js сервис и СУБД PostgreSQL. Веб-клиент запущенного сервиса доступен только во внутренней подсети.
СУБД никак не привязана к блокчейн-технологии и проводимым операциям. Ее основные задачи — разграничение прав пользователей в веб-клиенте и хранение истории загрузки файлов с поставками. С этим может справиться любая система управления. Мы выбрали PostgreSQL, потому что он достаточно простой, и наши разработчики уже работали с ним.
Загружаемые в сеть смарт-контракты используют на входе бухгалтерские документы в виде Excel-файлов. Формат данных гармонизирован: мы договорились, что у нас будет столько-то полей, такие-то разделители, можно использовать такие-то символы, и так далее. По каждой поставке товара на основе ключевых полей с помощью алгоритма SHA-3 формируется хеш. В смарт-контракт записывается:
- хеш поставки;
- все суммы в валюте документа для данного хеша;
- даты проводки, соответствующие суммам.
Если мы и фактор захешировали один и тот же документ, и получившиеся хеши совпали, то это подтверждение успешной поставки товара. У банка появляется запись о подтверждении, и после этого он может оплатить поставщику необходимую сумму.
Изредка накладные у поставщиков и у нас не совпадают по суммам — следствие опечаток при заполнении документов, пресловутый человеческий фактор. В платформе предусмотрен механизм обработки таких ситуаций: смарт-контракт сначала хеширует только реквизиты документа, а сумму оставляет открытой. Если у нас и у поставщика хеши атрибутов совпали, то открывается доступ к сумме. Если у поставщика она меньше, то банку меньше платить, для него риск ниже. Если же сумма у поставщика оказывается существенно больше, то банк может дополнительно с нами связаться и уточнить информацию. Такое бывает редко, за полгода два-три раза.
Быстрее, выше, сильнее
Блокчейн-платформа позволит нам в дальнейшем избавиться от целого ряда недостатков, свойственных привычной схеме взаимодействия с факторами. Во-первых, банкам и факторам не нужно будет создавать или донастраивать своё ПО, чтобы обмениваться с нами данными. Они смогут воспользоваться готовыми инструментами, чтобы быстро создать у себя ноду-майнер и подключить её к своей информационной системе для обмена данными с общей сетью. Мы планируем уже в этом году постепенно присоединить к нашей блокчейн-платформе большинство банков-факторов. Кроме того, платформа исключает из факторинговых операций ряд посредников и различные «ручные» операции, так что обмен данными между участниками идёт быстрее, а главное — куда безопаснее.
И нам было просто приятно найти и внедрить для себя новое, элегантное, простое, экономически эффективное, безопасное и не заезженное бизнес-применение перспективной технологии. У нас появилось еще несколько идей по применению блокчейн в других сферах ритейла — будем тестировать и изучать потенциал.
Автор: mvideo