Научная статья на тему 'РАЗРАБОТКА САМОИСПОЛНЯЮЩИХСЯ СМАРТ-КОНТРАКТОВ НА ETHEREUM ДЛЯ КОНТЕЙНЕРНЫХ ПЕРЕВОЗОК В КИТАЕ'

РАЗРАБОТКА САМОИСПОЛНЯЮЩИХСЯ СМАРТ-КОНТРАКТОВ НА ETHEREUM ДЛЯ КОНТЕЙНЕРНЫХ ПЕРЕВОЗОК В КИТАЕ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
252
34
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГРУЗОВЫЕ ПЕРЕВОЗКИ / БЛОКЧЕЙН / ИНТЕЛЛЕКТУАЛЬНЫЕ ТРАНСПОРТНЫЕ СИСТЕМЫ / ИНТЕРНЕТ ВЕЩЕЙ / СМАРТ-КОНТРАКТ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Бинчжан Ли, Мамойко А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DEVELOPING SELF-EXECUTING SMART CONTRACTS ON ETHEREUM FOR CONTAINER SHIPPING IN CHINA

Blockchain is a revolutionary new technology that facilitates peer-to-peer transfer of value without the need for a centralized intermediary. It uses cryptographic hashing functions, consensus protocols and decentralised data storage to ensure security, decentralised trust, immutability and transparency of business transactions. Blockchain technology paired with smart contracts is a reliable method of automating business rules in an efficient and trustworthy mechanism. A smart contract is a self-executing piece of code that runs on a blockchain platform. Predefined rules between participating organisations are translated into smart contract functions to establish trust. Blockchain is undergoing rapid development and has revolutionary potential for application in Intelligent Transport Systems applications. Blockchain can be used to create a secure, reliable and decentralised autonomous system, creating the best use of legacy infrastructure and resources. One of the most important issues is security, caused by the evolution of ITS towards centralisation. Fast-growing technologies, including the Internet of Things (IoT) and cloud computing, allow most data processing, analysis and decision-making to be done by centralized systems. The distinguishing factor of Ethereum is that it is programmed according to user requirements, rather than providing users with a set of predefined transactions, such as Bitcoin transactions. As a result, it could theoretically be used to automatically and securely execute any transaction involving trust, security or persistence. Although Ethereum is a relatively new implementation of blockchain, it has sparked reaction because of its potential to change the way many businesses operate.

Текст научной работы на тему «РАЗРАБОТКА САМОИСПОЛНЯЮЩИХСЯ СМАРТ-КОНТРАКТОВ НА ETHEREUM ДЛЯ КОНТЕЙНЕРНЫХ ПЕРЕВОЗОК В КИТАЕ»

РАЗРАБОТКА САМОИСПОЛНЯЮЩИХСЯ СМАРТ-КОНТРАКТОВ НА ETHEREUM ДЛЯ КОНТЕЙНЕРНЫХ

ПЕРЕВОЗОК В КИТАЕ

DOI: 10.36724/2072-8735-2022-16-8-38-45

Manuscript received 02 June 2022; Accepted 10 July 2022

Ли Бинчжан,

Донской государственный технический университет, г. Ростов-на-Дону, Россия, runa666.6@mail.ru

Ключевые слова: грузовые перевозки, Антон Мамойк^ блокчейн, интеллектуальные транспортные

Донской государственный технический университет, системы, Интернет вещей, смарт-контракт

г. Ростов-на-Дону, Россия, ericozz@yandex.ru

Блокчейн - это новая революционная технология, которая облегчает одноранговую передачу ценностей без необходимости в централизованном посреднике. В ней используются криптографические функции хеширования, протоколы консенсуса, децентрализованное хранение данных для обеспечения безопасности, децентрализованного доверия, неизменности и прозрачности деловых операций. Технология блокчейн в паре со смарт-контрактами - это надежный метод автоматизации бизнес-правил в эффективном и доверительном механизме. Смарт-контракт - это самоисполняющийся фрагмент кода, который работает на платформе блокчейн. Предопределенные правила между участвующими организациями переводятся в функции смарт-контракта для установления доверия. Блокчейн переживает бурное развитие и обладает революционным потенциалом применения в приложениях Интеллектуальных Транспортных Системах. Блок-чейн можно использовать для создания защищенной, надежной и децентрализованной автономной системы, создавая наилучшее использование унаследованной инфраструктуры и ресурсов. Одним из важнейших вопросов являются вопросы безопасности, вызванные эволюцией ИТС в сторону централизации. Быстрорастущие технологии, включая Интернет вещей (1оТ) и облачные вычисления, позволяют обрабатывать большую часть данных, проводить анализ и принимать решения централизованными системами. Отличительным фактором Е^егеит является то, что он программируется в соответствии с требованиями пользователей, а не предоставляет пользователям набор заранее определенных операций, таких как транзакции Биткойн. В результате его теоретически можно использовать для автоматического и надежного выполнения любой транзакции, связанной с доверием, безопасностью или постоянством. Несмотря на то, что Е^егеит является относительно новой реализацией блокчейн, он вызвал реакцию из-за своего потенциала изменить методы работы многих предприятий.

Информация об авторах:

Ли Бинчжан, аспирант, Донской государственный технический университет, г. Ростов-на-Дону, Россия. Антон Мамойко, доцент, Донской государственный технический университет, г. Ростов-на-Дону, Россия.

Для цитирования:

Ли Бинчжан, Антон Мамойко. Разработка самоисполняющихся смарт-контрактов на Ethereum для контейнерных перевозок в Китае // T-Comm: Телекоммуникации и транспорт. 2022. Том 16. №8. С. 38-45.

For citation:

Lee Bingzhang, Anton Mamoiko. Developing self-executing smart contracts on Ethereum for container shipping in China. T-Comm, vol. 16, no. 8, pр. 38-45. (in Russian)

В силу характера международной торговли экспортный бизнес в сфере перевозок с меньшей загрузкой контейнеров (LCL - Less Than Container Load) сильно фрагментирован, что создает возможность для создания платформы обмена информацией с возможностями совместной работы на основе сотрудничества между участниками [1]. Это, несомненно, станет значительным улучшением по сравнению с существующим централизованным методом, предполагающим принятие решений одним лицом, координирующим управленческую деятельность каждого узла в цепи поставок LCL [2].

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

Кроме того, на основе данной платформы возможно предоставить набор дополнительной информации в онлайн-доступе, например, информацию о котировках LCL и графике доставки грузов, что удобно экспедиторским агентствам для размещения заказов NVOCC (Non Vessel Operating Common Carrier) - перевозчик, не владеющий тоннажем и не работающий на судне [3]. В рамках платформы, NVOCC могут обмениваться дополнительными условиями инкассации для оптимизации загрузки и повышения эффективности цепочки поставок LCL. Кроме того, предоставляя предприятиям услуги по обработке данных о торговле, движении денежных средств и кредитах, можно сократить операционные расходы платформы.

На рисунке 1 показаны реорганизованные бизнес-процессы с включенным в них интеллектом [4].

Рис. 1. Реорганизованный процесс международного экспорта ЬСЬ

Сначала грузоотправители размещают заказы непосредственно на платформе или через экспедиторские агентства. Платформа осуществляет поиск подходящих МУОСС на основе графика поставок грузоотправителя. После того как подходящий вариант найден, ]ЧУОСС выделяют складские помещения для грузов и загружают информацию о грузах (номер накладной, пункт приема, вес, объем, т.д.) на платформу. Используя информацию о заказе, платформа информирует перевозчиков об отправке транспортных средств с определенными маршрутами для доставки в конкретные места хранения LCL. После транспортировки грузов на склад LCL пере-

возчик оформляет документацию и получает оплату. С помощью платформы NVOCC подтверждают прибытие грузов с указанием их фактических размеров и веса на складах LCL.

На основании планов, склады LCL отправляют фактические упаковочные листы NVOCC, которые могут использовать эту информацию для оптимизации своих погрузочных площадей. Таким образом, склады LCL могут скорректировать план набивки для каждого контейнера и заполнить отгрузочные документы. После отправки полных контейнеров со складов LCL в указанные порты перевозчики передают платформе оригиналы док-квитанций (D/R) и получают оплату за оказанные услуги. Наконец, платформа ежемесячно рассчитывается со складами LCL, NVOCC и перевозчиками.

Ниже, нами приведена техническая основа нового процесса, включающего склады LCL, транспортные средства доставки и информацию о грузах:

• Склады LCL назначаются NVOCC в соответствии с маршрутами перевозок и информацией о грузе и обновляются в платформе;

• Маршруты движения транспортных средств предоставляются автоперевозчиками и отслеживаются с помощью системы GPS в рамках платформы LEP;

• Информация о грузах в основном предоставляется грузоотправителями, включая данные о грузе, место сбора, порт назначения.

Рис. 2. Процесс доставки и расположение узлов при доставке контейнера

На рисунке 2 показан весь процесс и схема расположения узлов для бизнеса LCL. Центральный распределительный центр (ЦРЦ) будет создан в ключевом порту, включая склады LCL для различных маршрутов доставки, а региональные распределительные центры (РРЦ) будут расположены в соответствующих внутренних городах КНР.

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

Для демонстрации работы платформы, нами были разработаны смарт-контракты на Ethereum, являющимся открытым блокчейн и используемого для создания децентрализованных приложений. Основа платформы состоит из трех различных смарт-контрактов: Origins, TrackandTrans и Reputation.

Смарт-контракты написаны на Solidity, который является объектно-ориентированным языком программирования, широко используемым для написания смарт-контрактов. Его синтаксис похож на синтаксис JavaScript, и он разработан для виртуальной машины Ethereum (EVM) [5].

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

1) addManufacturer - позволяет производителям/поставщикам ввести свои данные и записать их в блокчейн. Solidity использует отображение для сопоставления публичного адреса производителя в Ethereum в структуру, содержащую его данные, такие как имя, номер телефона, город и страна происхождения, а также сертификацию происхождения. Таким образом, эти данные могут быть легко найдены впоследствии с помощью публичного адреса производителя.

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

3) findManufacturer - позволяет любой стороне отобразить информацию о производителе/поставщике путем введя их публичный адрес Ethereum. Потребители могут использовать эту функцию для проверки того, что производитель, поставляющий их груз, является законным и сертифицированным. Эта функция не требует затрат, поскольку не требует внесения каких-либо изменений в блокчейн.

4) certiiyManufacturer - позволяет администратору контракта сертифицировать конкретного производителя/поставщика. Сертификация статус будет записан в блокчейн и отображен вместе с другими данными. Доступ администратора необходим для обеспечения дополнительного уровня верификации.

5) addProduct - позволяет производителю/поставщику записывать в блокчейн каждый раз, когда его каждый раз, когда их продукт маркируется в месте происхождения. При интеграции с интеллектуальным датчиком он может автоматически записывать местоположение продукта. После записи в блокчейн, публичный адрес производителя и временная метка блока также записываются в блокчейн, адрес производителя и временная метка блока также автоматически записываются. Сопоставление используется для того, чтобы связать серийный номер/метку продукта с его данными.

6) removeProduct - позволяет администратору контракта удалить продукт из базы данных в случае каких-либо изменений. Доступ администратора необходим для предотвращения ненужного вмешательства.

7) findProduct - позволяет любой стороне отобразить информацию о продукте, введя его серийный номер. Он возвращает публичный адрес производителя, а также место, дату и время происхождения. Эта функция не требует затрат, поскольку не требует внесения каких-либо изменений в блокчейн. Потребители могут использовать эту функцию вместе с функцией findProducer для определения происхождения своей продукции.

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

1) веМТокеп - позволяет отправлять токены с одного счета ЕШегеит на другой путем указания соответствующего публичного адреса и количества токенов. Эта функция имеет встроенную логику для проверки наличия достаточного количества токенов на счете отправителя и автоматического обновления балансов обоих счетов после успешного завершения транзакции. Сообщения о событиях публикуются в блокчейн для оповещения сторон о транзакциях.

2) getBalance - позволяет любой стороне проверить баланс токенов на счете, введя публичный адрес ЕШегеит. Эта функция не требует затрат, так как не требует внесения каких-либо изменений в блокчейн. После развертывания контракта в блокчейн, количество начальных токенов может быть установлено, и все токены первоначально находятся у администратора. Для согласования стоимости токенов и распределение начальных токенов.

3) гесоуегТокеп - позволяет администратору контракта восстановить токены с любого счета. Это форма проверки и баланса для предотвращения злоупотребления сторонами функцией веМТокеп. Аналогично функции веМТокеп, встроена логика для проверки достаточного баланса и автоматического обновления баланса.

4) вйСоШгайРагатйеге - позволяет администратору контракта заранее определить условия, которые должны быть выполнены, прежде чем отгрузка будет успешной и оплата будет произведена. Он включает в себя детали для времени доставки время, пункт назначения и сумму платежа (в виде токенов).

5) веМЗЫртеШ: - позволяет отправителю записать детали отправления в блокчейн после его отправки. Для сопоставления номера отслеживания/метки отправления с такими деталями, как артикул и количество, используется связка. Интеллектуальный датчик может быть интегрирован для получения данных о местоположении в режиме реального времени. После записи в блокчейн также фиксируется время отправки и адрес отправителя. Запускается событие, информирующее стороны о том, что товар что товар был отправлен.

6) гесегуе8ЫртеШ: - позволяет получателю записать данные о грузе в блокчейн после его прибытия (рис. 3). В этой функции заложены два уровня логики. Первый проверяет, что полученный товар и количество совпадают с товаром и количество отправленного товара. Если они совпадают, запускается событие, регистрирующее, что товар был успешно получен. Затем следующий уровень логики проверяет, соблюдены ли заранее установленные время доставки и место назначения были соблюдены. Если да, то автоматически запускается функция веМТокеп для отправки платежа стороне, осуществляющей доставку. В противном случае регистрируются события, чтобы зафиксировать ошибки.

T-Comm Том 16. #8-2022

Рис. 3. Логическая блок-схема для функции receiveShipment

7) deleteShipment - позволяет администратору контракта удалить груз из базы данных в случае каких-либо изменений. Доступ администратора необходим для предотвращения ненужного вмешательства.

8) checkShipment - позволяет любой стороне отобразить информацию о грузе, введя свой номер отслеживания. Он возвращает данные о товаре, количестве, местоположении, временную метку доставки и отправителя. Эта функция не требует затрат, так как не требует внесения каких-либо изменений в блокчейн (оговорка: она не будет незатратной, если используются данные о местоположении в реальном времени).

9) checkSuccess - позволяет любой стороне проверить количество успешных поставок, осуществленных стороной в цепочке поставок, а также общее количество совершенных ими поставок. Успешные поставки определяются как те, которые соответствуют заранее определенным критериям, установленным в контракте. Эта функция не требует затрат, поскольку она не требует внесения каких-либо изменений в блокчейн.

10) calculateReputation - позволяет любой стороне рассчитать репутационный балл партнера по цепи поставок. Репута-ционный балл определяется путем взятия количества успешных поставок в процентах от общего числа поставок, осуществленных конкретной стороной, и выражается целым числом от 0 до 100. Если сторона не осуществила ни одной поставки, то ее показатель репутации по умолчанию равен 0. Эта функция не требует затрат, поскольку не требует внесения каких-либо изменений в блокчейн. Она необходима для правильного функционирования репутации смарт-контракта.

Смарт-контракт «Reputatio» поддерживает открытую базу данных поставщиков/сторон в цепочке поставок, доступ к которой могут получить все. Помимо данных о поставщиках, он также отслеживает репутацию каждой стороны. Это делается

путем вызова смарт-контракта ТгаскаМТгапв, развернутого на блокчейне, и получения доступа к рассчитанной в нем оценке репутации. Чтобы было удобнее просматривать список поставщиков, были созданы функции для фильтрации по типу товаров и репутации. Смарт-контракт состоит из следующих функций код смарт-контракта:

1) addSupplier - позволяет поставщикам/партнерам ввести свои данные и записать их в блокчейн. Для сопоставления публичного адреса поставщика в ЕШегеит используется связка со структурой, содержащей его данные, такие как имя, номер телефона, город, страна происхождения, тип товаров, на которых он специализируется, а также репутацию. Таким образом, эти данные, а также публичный адрес поставщика, могут быть легко найдены. Адрес также помещается в массив, содержащий все адреса сторон.

2) гетоуе8иррИег - позволяет администратору контракта удалить поставщика/партию из базы данных в случае возникновения каких-либо проблем. Его публичный адрес также удаляется из массива консолидированных адресов. Доступ администратора необходим для предотвращения ненужного вмешательства.

3) А^БиррИег - позволяет любой стороне отобразить информацию о поставщике/партии путем ввода их публичный адрес ЕШегеит. Стороны могут использовать эту функцию для поиска подходящих и предпочитаемых поставщиков, поскольку доступна такая информация, как тип товаров и репутация. Этот функция не требует затрат, так как не требует внесения изменений в блокчейн.

4) аПЗиррИеге - позволяет любой стороне отобразить полный список поставщиков/партнеров. Возвращается массив, содержащий список публичных адресов ЕШегеит возвращается массив, который стороны могут использовать для получения более подробной информации. Эта функция не требует затрат, поскольку она не требует внесения каких-либо изменений в блокчейн.

5) filterByGoodsType - позволяет любой стороне искать поставщиков по типу товаров, на которых они специализируются. В памяти создается массив той же длины, что и полный массив поставщиков. Логика используется для итерации по всему массиву поставщиков и поиска тех, у которых тип товара совпадает с указанным в запросе. Найденные совпадения возвращаются в новый массив. Эта функция не требует затрат, так как не требует внесения никаких изменений в блок-чейн.

6) filterByReputation - аналогично предыдущей функции, позволяет любой стороне искать поставщиков по поставщиков по их репутации. В памяти создается массив той же длины, как и полный массив поставщиков. Логика используется для итерации по всему массиву поставщиков и поиска тех, чья оценка репутации равна или выше, чем оценка, указанная в запросе. Соответствия затем возвращаются в новый массив. Эта функция не требует затрат, поскольку она не требует внесения изменений в блокчейн.

7) checkReputation - позволяет любой стороне отобразить оценку репутации указанного поставщика/партии, введя их публичный адрес в Ethereum. Это работает путем вызова развернутого Track and Trans contract и запуска функции calculateReputation. Поскольку обе функции не требуют внесения изменений в блокчейн, они не требуют затрат.

8) updateReputations - позволяет администратору контракта получить последние обновленные оценки репутации всех сторон и обновить их в блокчейне. Поскольку оценки репутации сохраняются, когда стороны добавляют свои данные через функцию addSupplier они могут устаревать со временем по мере осуществления новых поставок. Следовательно, администратор может использовать эту функцию для периодического обновления репутации. Она выполняет итерации по

всему массиву поставщиков и для каждого публичного адреса обновляет репутацию используя функцию calculateReputation из контракта Track and Trans. Краткое описание ключевых компонентов каждого контракта и их взаимодействие показано на рисунке 4.

Remix, браузерный компилятор Solidity и интегрированная среда разработки (IDE), используется для предварительной проверки концепции. Она моделирует EVM, содержащий все инструменты, необходимые для создания, компиляции, развертывания и тестирования смарт-контрактов, как это было бы сделано как это делается в реальной сети Ethereum, но фактически не подключается к реальной сети. Поскольку развертывание контрактов и выполнение транзакций на реальном блокчейне Ethereum влечет за собой расходы в виде эфира, Remix обеспечивает удобную для разработчиков среду для итераций, тестирования и отладки контрактов без фактического осуществления реальных транзакций. Его интуитивно понятный веб-интерфейс также позволяет быстро проводить тестирование. Контракты могут быть развернуты, а результаты и затраты отображаются соответствующим образом. Также доступны пять тестовых счетов, что позволяет моделировать различные стороны при тестировании контрактов.

Для проверки смарт-контракта Provenance один из тестовых счетов используется для имитации производитель/поставщик. Он может добавить свои данные с помощью функции addManufacturer, а также добавить один из своих продуктов, А00001, с помощью функции addProduct. Поскольку интеграция с интеллектуальными датчиками, для определения местоположения используются произвольные данные широты и долготы. Когда та же учетная запись используется для попытки заставить производителя сертифицировать себя, появляется ошибка (рис. 5).

Запись данных о пользователе в блокчейн. Сертифицировать производителей Получение данных о производителе Запись сведений о происхождении продукта Доступность для партнеров по цепочке поставок и потребителей

I

аз

I

и пз

* Установить заранее определенные критерии для выполнения контракта

* Запись данных об отправке груза в блокчейн

* Запись данных о прибытии груза в блокчейн

* Автоматическое выполнение платежа в токенах за выполненные поставки

* Получение информации о грузе для обновления статуса

* Рассчитать репутационный балл

* Доступность для партнеров по цепочке поставок

• Запись информации о поставщиках в блокчейн

• Получение информации о поставщике

• Получение списка всех поставщиков

• Получение оценки репутации

• Обновление оценок репутации

• Поиск поставщиков по типу товаров

• Поиск поставщиков по репутации

• Доступность для партнеров по цепочке поставок

Рис. 4. Краткое описание компонентов смарт-контракта и интерактивности

T-Comm Том 16. #8-2022

Рис. 5. Сообщение об ошибке при попытке выполнить функцию, доступную только администратору

Это обеспечивает дополнительный уровень проверки, поскольку только учетная запись администратора (та, которая используется для развертывания контракта) может быть использована для сертификации производителя.

Затем другая учетная запись используется для имитации потребителя, который может получить подробную информацию о своем продукта, А00001, используя функцию findProduct. Он может увидеть публичный адрес производителя, место происхождения продукта, а также временную метку, когда продукт был записан в блокчейн (временная метка отображается в формате Unix epoch time, который можно легко преобразовать в дату и время, читаемые человеком). Имея публичный адрес производителя, он может затем использовать функцию findProducer для получения подробной информации о производителе. Учитывая полученную информацию, он так же может связаться с производителем для получения дальнейших разъяснений (рисунок 38, где показаны результаты работы обеих функций).

Для проверки смарт-контракта Track and Trans был смоделирован сценарий, аналогичный описанному на рисунке 6. Сначала контракт выполняется, при этом администратору инициализируется 1000 токенов. На сайте администратор устанавливает параметры контракта для отправки груза от поставщика А поставщику В. Когда поставщик А отправляет груз, он записывает детали в блокчейн. Когда поставщик В получает груз, он тоже записывает информацию в блокчейн.

с количеством, записанным поставщиком А, то включается сигнал тревоги, чтобы можно было провести необходимые проверки (рис. 7).

Events

Success [

"Item shipped", "D OOOOl ", "658254, 855478", "1281785865",

"0x3b0c44298fclcl49afbf4c8996fb92427ae41e"

Failure [

"Error in item/quantity"

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

!

Рис. 7. Оповещение срабатывает, когда товар и/или количество не совпадают

Теперь предположим, что груз цел, и что позиции и количество совпадают. Однако товар доставлялся дольше, чем изначально было установлено администратором (на основе блокчейн временной метки). В этом случае, несмотря на то что товар был успешно получен, платеж не срабатывает, поскольку заранее установленные критерии не были выполнены (рис. 8).

Events

Success [

"Item shipped", "D00001 ", "658254, 855478", "1281785865",

"0x3 b 0 c44298fc 1 с 149a f b f4 c8996f b92427a e41 e"

findManufacturer

"D00001"

Value: "ОкОООХШШХШШШХШШШШ! f2cf3fcclcJecbb01b8s9c37tc8ab5f9c48020»7" Transaction cost: 28647 gas. Execution coit: ?176gas. Decoded:

1. address:" 0*3 b0c44298f rtc 149af Ы 4tS996f Ь92 42 7ae4le"

2. uint2 56[]: 6582 54,855478

3. uint256:1281785865

Launch debugger

findManufacturer

"0x3b0c44298fclcl49afbf4c8996fb92427ae41e"

Value: "ОхОООООООШООООООООЮаЮОШОООО^ 336S Г

Transaction cost: 23874gas Execution cost: 3475 gas. Decoded:

1.string; China Trade

2.uint256; 5472215518

3. string: Shandong

4. string: China

5. tool: True

Рис. 6. Выходы функций findProduct и findProducer

Предположим, что некоторые товары пропали в процессе отгрузки, то количество, записанное поставщиком Б, не совпадает с количеством, записанным поставщиком В, совпадает

Success[ "Item received" "D00001

" 578247, 879524", "1281786357",

"0x70d5f85a7b976419014e3087bc0bd2d83af8b"

Failure [

"Payment not triggered as criteria not met"

]

Рис. 8. Предупреждение, срабатывающее при несоблюдении заранее определенных критериев контракта

Только когда оба уровня логики удовлетворены, платеж выполняется (т.е. товар и количество совпадают, предопределенные критерии выполнены). Заранее определенная сумма токенов (50 токенов, в данном случае) автоматически отправляется со счета администратора на счет поставщика А. Проверка с помощью функции getBalance подтверждает это (рис. 9).

Тип«« »on «Hi 2i?24 (И. ExeiirtJon wit: 687 gas-

1 umtJ56J»fc!w:950

Launch debugger

éxkuhoti «ít:

учетная ипнсьи [реркч*»^пыю юсотовенов!

Учццди Hmnçb Погтишюч 1 [перянчнмыч 0 wh]

'llem ThipeftT,

-мюош".

]

> W-'. I

"Иртгкчнн!" ■MJOOÛl-

■1281Т»35ГГ

TMM5iSiiHp}iMHJmjt«ibtchJîijî3iiSf

Две функции фильтрации также можно протестировать. Фильтруя по типу товара, мы видим, что на выходе отображаются публичные адреса. Фильтрация по репутации для любого значения больше или равно 75, мы видим, что на выходе отображаются публичные адреса. Таким образом, обе функции фильтрации работают, как и ожидалось (рис. 12).

filterBy Reputation

75

'¡М51ВЙЫ90ИМ№1КЧ lÊHdïtW TJMJfW, "О. .х:.U9ilblHÍ.W6lb91417*t4 If. "SO"

Рис. 9. Подтверждение оплаты токена при выполнении всех условий

Тот же сценарий применяется для подтверждения смарт-контракта Reputation. Он вызывает тот же самый отслеживающий контракт, который был развернут в предыдущем тесте. Учитывая, что поставщик А сделал одну отгрузку и она была успешно получена, его оценка репутации теперь равна 100 (1 из 1). После добавив другие данные поставщика А с помощью функции addSupplier и отобразив их с помощью функции findSupplier, мы видим, что оценка репутации была включена успешно (рис. 10). Это также показывает, что контракты способны взаимодействовать друг с другом, пока развернуты на блокчейне.

findVendor

"Ох ЗЬ0с442 9 8ft It 149а f Ь f4t8996f Ь 9 242 7а е41е"

value: "iMWooooooooaoooooaaaxxx»^^

Transaction cost: 25497 gas. Execution cost: 4721 gas. Decoded:

1. string: China Trade

2. ui (11256; 5472215518

3.string: Shandong

4. string: China

5. string: Smartphone

6. uint256:100 ——~

оценка репунцни гтостанщинл 1

Рис. 10. Репутационный контракт, выводящий репутационный балл из контракта отслеживания

Используя функцию updateReputations, мы видим, что репутация поставщика А была обновлена соответствующим образом (рис. 11).

Рис. 11. Обновленная репутация после вызова функции updateReputations

Value: "ОкСЮООООООСЮОООаХХКЮОООО^^ 7"

Тга nsatticn cost: 2 4846 gas. Execution cost: 3995 gas. Decoded:

l.Midraiss[|:Q*3bOc4429&fclcia9aFbi4<:8996Fb92427;ie41er 0*0.QKdb45el0I47a;iffid79tcW2S7(Ka7diai9iFm

1_._I I_._I

China Trade

I

UTT Company

filterByGood slype

S m art phone

Vaj ut : "смсюскюшоаюоооахххюахюооо^^ r

Tra nsactfon cost : 2877 7 gas. Execution cost: 5J&4 gas. Decoded:

1.3<idr(íss[|:0x3b0£4429&F<lclí&3Fhí4<:S996FbM427ae41er CwD. Q*681Se7ce ?6ddcFd&392e24b6Sld93í7a9SSad

I-,-1 I_,_I

China Trade

-(-

VCT Company

Рис. 12. Выходы функций filterByReputation и filterByGoodsType

Все три смарт-контракта были всесторонне протестированы с помощью Remix, и все их функции работают так, как было задумано. Дальнейшая проверка может быть выполнена с помощью узла testrpc вместе с Truffle, что позволило бы провести тестирование на большем количестве аккаунтов (десять вместо пяти). В качестве альтернативы контракты могут быть протестированы в частной тестовой сети или развернуты в публичной тестовой сети Ethereum, Ropsten. Эти сети функционируют точно так же, как и реальная, но используют "тестовый" Ethereum, который можно добывать бесплатно, а не настоящий Ethereum.

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

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

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

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

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

Несмотря на то что пробный вариант концепции был тщательно протестирован с использованием Remix для моделирования EVM, он она не была протестирована на реальной сети Ethereum. Это было бы логичным следующим шагом ва-лидации, где время и стоимость транзакций станут более важным фактором. Если определенные транзакции требуют значительного количества Ethereum, они могут оказаться слишком дорогими для частого выполнения. В этом случае, более эффективный с вычислительной точки зрения способ кодирования функций может оказаться необходимым.

Еще одним усовершенствованием является разработка пользовательского интерфейса (UI), который позволяет сторонам легко взаимодействовать с развернутыми смарт-кон-трактами. Это может быть мобильное приложение или веб-браузер, использующий интерфейс программирования приложений Web3 JavaScript интерфейс прикладного программирования (API).

Литература

1. Зырянов В.В., Еремина Л.В. Оценка эффективности функционирования контрагентов в логистической системе транспортного предприятия [Электронный ресурс] II Инженерный вестник Дона. 2012. №1. Режим доступа: http://www.ivdon.ru/magazine/archive/nly2012/728.

2. Еремина Л.В. Организация международных автомобиль-ныхперевозок: учеб. Пособие. Ростов н/Д.: ДГТУ, 2017. 240 с.

3. Badzar A. Blockchain for Securing Sustainable Transport Contracts and Supply Chain Transparency. Master's Thesis, Lund University, Helsingborg, Sweden, 2016.

4. Dickson B. Blockchain has the potential to revolutionize the supply chain. Tech Crunch. 25 November 2016. Available online: https://techcrunch.com/2016/ll/24/blockchain-has-the-potential-to-rev-olutionize-the- supply-chain (accessed onl7 June 2020).

5. Casey M., Wong P. Global supply chains are about to get better, thanks to blockchain. Harvard Business Review. 13 March 2017. Available online: https://hbr.org/2017/03/global-supply-chains-are-about-to-get- better-thanks-to-blockchain (accessed onl7 June 2020).

6. Iansiti M., Lakhani K.R. The truth about blockchain. Harvard Business Review. 2017. Available online: https://enterpriserspro-ject.com/sites/default/files/the_truth_about_blockchain.pdf. (accessed on 11 May 2021).

DEVELOPING SELF-EXECUTING SMART CONTRACTS ON ETHEREUM FOR CONTAINER SHIPPING IN CHINA

Lee Bingzhang, Don State Technical University, Rostov on Don, Russia, runa666.6@mail.ru Abstract Anton Mamoiko, Don State Technical University, Rostov on Don, Russia, ericozz@yandex.ru

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Blockchain is a revolutionary new technology that facilitates peer-to-peer transfer of value without the need for a centralised intermediary. It uses cryptographic hashing functions, consensus protocols and decentralised data storage to ensure security, decentralised trust, immutability and transparency of business transactions. Blockchain technology paired with smart contracts is a reliable method of automating business rules in an efficient and trustworthy mechanism. A smart contract is a self-executing piece of code that runs on a blockchain platform. Predefined rules between participating organisations are translated into smart contract functions to establish trust. Blockchain is undergoing rapid development and has revolutionary potential for application in Intelligent Transport Systems applications. Blockchain can be used to create a secure, reliable and decentralised autonomous system, creating the best use of legacy infrastructure and resources. One of the most important issues is security, caused by the evolution of ITS towards centralisation. Fast-growing technologies, including the Internet of Things (IoT) and cloud computing, allow most data processing, analysis and decision-making to be done by centralised systems. The distinguishing factor of Ethereum is that it is programmed according to user requirements, rather than providing users with a set of predefined transactions, such as Bitcoin transactions. As a result, it could theoretically be used to automatically and securely execute any transaction involving trust, security or persistence. Although Ethereum is a relatively new implementation of blockchain, it has sparked reaction because of its potential to change the way many businesses operate.

Keywords: freight transport; blockchain; intelligent transport systems; Internet of Things; smart contracting. References

1. Zyryanov V.V., Eremina L.V. (2012). Evaluation of the effectiveness of the functioning of counterparties in the logistics system of a transport enterprise [Electronic resource]. Engineering Bulletin of the Don. No. 1. Access mode: http://www.ivdon.ru/magazine/archive/n1y2012/728.

2. Eremina L.V. (2017). Organization of international road transport: textbook. Rostov n/D: DSTU. 240 p.

3. Badzar A. (2016). Blockchain for Securing Sustainable Transport Contracts and Supply Chain Transparency. Master's Thesis, Lund University, Helsingborg, Sweden.

4. Dickson B. (2016). Blockchain has the potential to revolutionize the supply chain. Tech Crunch. 25 November 2016. Available online: https://techcrunch.com/2016/11/24/blockchain-has-the-potential-to-revolutionize-the- supply-chain (accessed on 17 June 2020).

5. Casey M., Wong P. (20107). Global supply chains are about to get better, thanks to blockchain. Harvard Business Review. 13 March 2017. Available online: https://hbr.org/2017/03/global-supply-chains-are-about-to-get- better-thanks-to-blockchain (accessed on 17 June 2020).

6. Iansiti M., Lakhani K.R. (2017). The truth about blockchain. Harvard Business Review. Available online: https://enterprisersproject.com/sites/default/files/the_truth_about_blockchain.pdf. (accessed on 11 May 2021).

45

i Надоели баннеры? Вы всегда можете отключить рекламу.