Project: Development of a guaranteed delivery system for courier service
Problem: The courier service often takes valuable goods delivery orders. At the same time, the client wants to be sure that the order has been received by a specific person. Earlier, the courier had to check the passport of the recipient and ask to sign for the receipt. This mechanism is unreliable for several reasons:
- The courier could be unscrupulous and hand the delivery to a third party with a request to transfer it to the recipient – for example, leave it to the security guard. And this could only be clarified later in case of controversial situations.
- The recipient can sign the receipt, which could be replaced or lost between delivery itself and delivery confirmation in service office.
- The courier service has to inform the sender about the delivery. Ideally – to send a document to confirm delivery with the signature of the recipient. However, in this case the courier service would not have any documents left.
Solution: Cargo delivery is the execution of a contract between the following parties: the sender, the courier service, the beneficiary. To solve the problems mentioned above, it was necessary to develop a solution that would meet the following requirements:
- Guaranteed fulfillment of the contract stages (for example, delivery of cargo to the recipient).
- Informing all contract participants about contract status changes.
- Guaranteed contract invariability during the implementation of its phases.
- Guaranteed transactions notifications of all contractors.
- Limited access to the contracts data(only contractors permission).
The blockchain technology allows us to solve the problem of contract invariability keeping.
The use of private keys allows to solve the problem of participants identifying.
Blockchain records signed by the identified users ensures the fulfillment of all the contract stages.
All contractors have an access to the blockchain, which means that they can get information about the contract and its status at any time.
Limited access can be implemented with the help of cryptography, so that only contract participants with private keys can decrypt the blockchain data about their contracts.
We develop the solution based on the blockchain technology, which contains:
- Implementation of a public blockchain that meets the requirements of the task
- Implementation of a mobile application for courier service customers.
Main features of the solution are:
- During the users registration the application generates a public and private key that is used to work with blockchain
- The sender can use the recipient’s public key as the recipient identification
- The delivery contract is registered in blockchain
- The courier transfers the cargo to the recipient and affirms the transfer of cargo in the blockchain. The transaction is signed with a private key of the recipient
Technologies: Java SE, Spring, RocksDB, Protobuf, Android, iOS.