Не криптовалютами едиными: наша блокчейн-платформа для факторинга



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

    Пара слов о факторинге


    Что такое факторинг?

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

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

    Эта схема и называется факторингом. Мы активно используем факторинг, по этой схеме с нами работает несколько сотен поставщиков. Партнёр обращается в одну из факторинговых компаний, — их называют «факторами», — и та выделяет средства на оплату товара здесь и сейчас. Но главным условием является наличие информации о том, что «М.Видео» принял этот товар и заплатит за него через некоторое время. Например, поставщик приносит кучу накладных и говорит: «Профинансируйте 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 формируется хеш. В смарт-контракт записывается:

    • хеш поставки;
    • все суммы в валюте документа для данного хеша;
    • даты проводки, соответствующие суммам.

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

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

    Быстрее, выше, сильнее


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

    И нам было просто приятно найти и внедрить для себя новое, элегантное, простое, экономически эффективное, безопасное и не заезженное бизнес-применение перспективной технологии. У нас появилось еще несколько идей по применению блокчейн в других сферах ритейла — будем тестировать и изучать потенциал.
    М.Видео
    65.45
    Company
    Share post

    Comments 29

      –2
      Пардон за глупый вопрос — есть ли вознаграждение майнерам, или это их служебная обязанность?
        +1

        Обязанность, да, служебная

          0
          А как реализована защита от атаки 50%? Можно ли, вырастив цепочку длиннее, чем на нодах других участников, подменить историю, и остаться незамеченным?
            +1
            никак. задачу нужно было решать приватным чейном на PoA. но тогда смысла в бч и нет)
              +1
              Там же написано, это приватный чейн, к нему не может кто угодно присоединиться.
                0
                А я и не говорю « кто угодно». Мой вопрос в том, может ли допущенный к системе участник сделать такую атаку.
                  0
                  атаке 51% процент в общем случае возможно, но тут она не за счет вычислительной мощности, а за счет сговора участи участников. Основная защита это привлечь в систему максимально больше независимых участников что бы у них не было ни возможности, ни повода сговориться.
                    +1
                    а… то есть, одному участнику запрещено майнить быстрее, чем остальным? Что будет, если 100 участников выставят по 1 машинке с майнингом на CPU (все равно ведь тут цель не меряться оружием), а один, законно подключившись в ту же сеть, запустит GPU ферму, чтобы совершить атаку? Его хеши будут игнорироваться, или все майнеры майнят строго по очереди?
                      0
                      Не то что бы запрещено, может и манить быстрее, но зачем это ему в подобной системе? Ну сможет он отклонять транзакции других участников, но это быстро обнаруживается и решается. Вознаграждение за майнинг не начисляется.
          0
          Интересная публикация, но хочется дополнительных деталей.

          Как я понял — платформа открытая — где можно посмотреть документацию для разработчиков по интеграции с системой?

          Какая роль майнеров, и где они установлены? Любой желающий может подключиться к сети в роли майнера? Какой интерес подключаться — что он за это может получить?

          Если же система на самом деле закрытая — то какой смысл в blockchain?
            0
            Сеть построена на базе Ethereum, развернули приватную сетку. Доступ в сеть действительно закрытый.
            смысл в blockchain следующий:
            — ни кто не хочет за свой счет строить и поддерживать централизованную систему, а остальные не готовы за нее платить. в итоге все пользуются e-mail и телефон для сверок и это занимает до 2-х недель
            — общая версия правды, быстро можно поднять историю сделать аудит и арбитраж
            — по сути Ethereum играет роль транспорта для доверенной передачи и хранения фактов. Теоретически можно было сделать поверх традиционного e-mail, но смысл, будет явно сложнее и не эффективно
            — система реально p2p, тк на рынке очень много ритейлеров (типа Мвидео), поставщиков и факторов, причем они все связаны однорангово, практически каждый с каждым. Получаем некий торрент или e-mail сеть, где все имеют возможность общаться со всеми.
            — система дешовая и надежная, если будет 20-30 узлов, то практически не убиваемая и всегда доступная. можно использовать без резервирования. Сдох сервер — перезапустили и получили состояние из сети, работаем дальше
            — очень дешево поддерживать, цена поддержки ноды на уровне поддержки e-mail сервера, в рамках крупной компании практически ноль. Порддерживать и развивать проприарную систему от вендора — платить устанешь.
            — много вариантов для развития, например, можно в системе запустить платежную систему, распределенную, не крипта!, но просто токенизированный рубль, типа Яндекс.Деньги, если это сделать, то смарт контракт и платить сможет (повторю, это не крипта, а законные рубли заведенные в систему и выводимые из нее по типу Киви и ЯД)

            Майнеры — участники системы, которые заинтересованы в ее поддержки, ретейл, факторы и тп. Интерес манера — сокращение своих затрат на процессы. Цель маневр — поддерживать систему, процедить транзакции. Тоже аналогия с традиционным e-mail. Кто e-mail «майнит» (читай запускает mail сервера)? Зачем это тем кто включает mail сервера? ну тут примерно тоже самое.

            Со временем может появиться монетизация, пока несколько преждевременно это обсуждать.
            +1
            Так как, вы говорите, подключить свою ноду? Суммы и даты поставок всех участников очень интересны, раз не захешированы.
              –3
              Самое смешное это то, что привели в пример оборот в 55 млрд и при этом 1 млн им жалко… мда)
                0
                Из текста выходит, что от 1 миллиона стоила бы каждая интеграция, это не общая сумма расходов.
                0
                «Во-первых, банкам и факторам не нужно будет создавать или донастраивать своё ПО, чтобы обмениваться с нами данными. Они смогут воспользоваться готовыми инструментами, чтобы быстро создать у себя ноду-майнер и подключить её к своей информационной системе для обмена данными с общей сетью.»

                Что-то я не понял. На мой взгляд второе предложение противоречит первому. Вы предложили им формат передачи данных (смарт-контракты). У каждого банка или фактора данные хранятся в своём собственном формате, им их всё равно надо конвертировать в ваш стандарт (смарт-контракт). Почему нельзя было использовать централизованную базу данных со стандартизованными транзакциями (например, анлогично тому как медицинский факторинг сделан на HIPAA X12 EDI)?
                  0

                  Централизованная база данных вне контура компании нам не подходит.
                  Формат документа, хранящегося в собственных системах у участников, един: стандартные атрибуты накладной.

                    0
                    И какой объем на диске все это будет занимать через 1-5 лет?
                      0
                      Т.е. эфир подтянули просто как «распределенную субд»?
                      Интересненько. А самое главное — стильно, модно, молодёжно.
                      И да, а каким образом передаются данные, с которых хеш считается?
                    +1
                    А можете код смарт-контрактов показать? Хотя бы их сигнатуры или abi, без внутреннего мяса и логики. Хочется посмотреть, как в этой частной задаче взрослые дяди смарт-контракты приготовили.
                      +5
                      Но поскольку мы используем SAP, то для нас интегрироваться сложно и дорого.

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

                          А почему выбрали для приватного блокчейна форк Ethereum? Есть же более подходящие для этого решения.

                            0
                            Ну, собственно в тексте статьи об этом есть, что сами-то они не бум-бум, а ребята из сбера, научились собирать эфир и майнить на бубунте :-)
                            … вот и весь выбор! +это модно, начальники рады умным подчинённым которые в трэнде новых технологий и умных слов…

                            А по сути, хэши эти можно хоть публично доступными делать, практической нужды в распределённом, доверенном хранилище тут нет, на бизнес логику факторинга это не влияет никак и хорошего тут только в то, что лучше план плохой чем никакого, НО вы в этом ещё других факторов убедите, ведь именно они тут предоставляют услугу гаранта (и не только) и любят устанавливать свои правила. И я бы посмотреть, как они эту свою технологию предложат китайскому фактору :-)
                              0
                              Основной смысл в том, что разрабатываемый сейчас Ассоциацией Финансовых Технологий (АФТ, консорциум российских банков) Мастерчейн является фордом Ethereum, потом будет легче перенести сервис на более большую и привальную платформу.
                              0
                              решали похожую задачу, только для реестра и таким же наколеночным методом, у вас использование блокчейна оправдано, что удивительно
                              СУБД — лишний участник сети, почти всю логику при желании можно было бы реализовать в смарт-контракте.
                              А вообще эфир для данной задачи достаточно притянутая за уши технология, просто «нужно быстро и дешево», хочу похожие БП развернуть что чем-нибудь вроде гиперледжера фабрик
                                0
                                Многоуважаемый! Мне очень интересно, вы говорите, что не меняли алгоритм реализации etherium, а просто подняли частную сеть для ваших нужд. Означает ли это, что сложность выпуска новых блоков будет прогрессивно возврастать при длительном времени использования системы? Как вы решите проблему достаточно дорогого оборудования?
                                  0
                                  Нет, в случае закрытой сети сложность не растет, мы ее держим на относительно постоянным уровне. У нас нет задачи получения эфира в процессе майнинга, тк сеть закрытая, то мы можем напечатать его внутри сколько угодно. У нас другие цели. PoW оставили что бы не тратить лишнее время на разработку, сеть работает на виртуалках 4 ядра, 4Gb. Как вариант можно было взять форд Parity с Proof of Authority
                                  +1
                                  Начал читать, но не увидел обоснования зачем тут нужен блокчейн, похоже очередной приступ хайпа случился.
                                  Если вам нужно было чтобы кто-то что-то подтверждал удалённо, то надо было ему выдать цифровой ключ и высунуть API, а может даже электронную почту подписанную от них принимать, если деньги не автоматом переводятся (возможно оператор всё равно подтверждает платёж).
                                  Т.е. можно было не разрабатывать ничего — обойтись электронной почтой с каким-нибудь условным PGP.
                                    0
                                    Наша сеть технически не отличается от «классической» сети Ethereum, но её приватность позволяет контролировать сеть и быстро обновлять функциональность, а также менять логику записи данных и проведения сверки.

                                    А расскажете побольше про обновление функциональности и изменение логики данных? В контексте Ethereum очень интересно. Ну и текст смарт-контракта почитать хочется :)

                                    Only users with full accounts can post comments. Log in, please.