Курьерская служба (NDA)

Проект: Разработка системы гарантирования доставки для курьерской службы

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

Данный механизм был ненадежен, так как:

  1. Курьер мог оказаться недобросовестным и вручить груз не получателю, а третьему лицу с просьбой передать получателю — например оставить на проходной охраннику. Причем это могло выясниться только позже, при возникновении спорных ситуаций.
  2. Получатель расписывался за получение на бумажном носителе, который мог быть впоследствии утерян или подменен.
  3. Курьерской службе необходимо было информировать отправителя о вручении груза.В идеале — передать документ, подтверждающий получение с подписью получателя, но тогда у курьерской службы не оставалось бы никаких документов.

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

  1. Однозначно гарантировать выполнение этапов контракта (например, вручение груза получателю).
  2. Информировать всех участников контракта об изменении статуса груза.
  3. Гарантировать неизменность данных контракта и выполнение его этапов.
  4. Получение данных о сделке в любой момент времени всеми участниками контракта.
  5. Ограничивать доступ к данным о контракте только участникам сделки.

Технология blockchain позволяет решить проблему неизменности данных.

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

Формирование записей в blockchain, подписанных идентифицированными пользователями, позволит гарантировать выполнение этапов контракта.

Все участники контракта могут иметь доступ к blockchain, а значит могут получить данные о контракте и его состоянии в любой момент времени.

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

Результаты:

Мы выполняем разработку собственного решения с использованием технологии blockchain, которое решает проблемы курьерской службы:

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

Технологии: Java SE, Spring, RocksDB, Protobuf, Android, iOS.

У вас похожий проект?