How We Built the Future of Shared Mobility Within Four Weeks

The emerging trend of Scooter Sharing

In the past few years, we have witnessed the strong growth of new mobility services in cities with ride-hailing like Uber, Didi or mytaxi, and carsharing like car2go, Maven and DriveNow. Just recently, an emerging new trend topped all growth statistics in Europe. Scooter sharing has been largely embraced by users in major cities all over Europe. Operators almost quadrupled their fleet sizes from 2,000 in 2016 to over 8,000 scooters in 2017[i]. It is expected that the scooter sharing market will soon outgrow the free floating carsharing market in terms of fleet size. Why is there such strong growth? With scooter sharing, users can be part of the electric revolution as more than 92% of shared scooters are electric today [ii]. Finding a parking spot is usually quick and easy. In short, shared scooters are environmentally friendly, convenient and easy to use, create less congestion, are cheap and fun to ride, while at the same time they present an attractive business opportunity for operators.

Seamless user-experience

Registration. The user experience typically starts with a registration process for the respective mobility service. A lot of progress has been made in this area including an all-digital verification process as opposed to visiting the operator’s office. However, it still takes a few minutes and a reliable data connection, which can be cumbersome for some users. Blockchain technology makes it possible to establish a secure digital identity online, which can include a driver’s license and can then be used securely and instantaneously across multiple services such as other mobility offerings.

High availability of scooters

For users to flock to such a shared scooter mobility service and to meet their expectations and needs, high availability must be maintained. Therefore, with more users, the fleet must grow accordingly. Blockchain technology can facilitate growth of fleets and reduce costs for operators.

Stable and always-on service

The highly distributed, decentralized architecture of blockchain technology eliminates single points of failure and contributes to an always-on mobility service. This leads to a shift in focus towards the devices connected to the blockchain and their data connection. Only with a proven and robust technology stack that scales to many scooters as well as users, one of the most important success criterions can be achieved: reliability! This is key for every shared mobility service. Users rely on mobility services in their everyday lives to go to work, run errands, visit friends and they will only adopt these services in the long term when their trust is not being disappointed. The service has to simply work.

The solid foundation for our vision: Shared Mobility OS

When thinking of a blockchain project that involves vehicles, whether it be for shared mobility services or anything else, the first question to ask is: How do you get a live copy of a physical object in the digital space? We call this copy “the digital twin”.

How was it done?

In the following parts we will discuss in detail how we adapted Shared Mobility OS in 4 weeks to run an entirely blockchain-based scooter sharing rental process. We focused on the scenario that a user has seen a scooter in the street and is now in front of it, ready to use it immediately.

  • Booking a scooter to start a rental
  • Returning a scooter and ending the rental
Figure 1: Beginning of the user dialogue
Figure 2: Available help for the user
Figure 3: Dialog for booking a scooter
Figure 4: Signing the payment transaction
Figure 5: Dialog for booking a scooter (continued)
Figure 6: Dialog for returning a scooter

How did we build it?

Figure 7 shows the architecture of the the ÐApp. The project consists of the following parts, which will be discussed in detail in the following subsections.

  • a frontend for users to booking and returning scooters
  • a wallet for administrators to manage accounts, funds and smart contracts
  • smart contracts for booking and returning scooters
  • transactions enabling the interaction between users and smart contracts
  • messages enabling the interaction between smart contracts
  • events (log entries) triggered by transactions
  • an app watching for events and sending requests to the scooter via Cloudboxx API as part of Shared Mobility OS
  • a scooter equipped with a Cloudboxx and integrated in Shared Mobility OS
Figure 7: Architecture of the ÐApp

Frontend

We used Status to provide a mobile ÐApp interface. The interface is described in detail in section “How does it look like?”. Status is the gateway to the Ethereum ecosystem for Android and iOS. Status combines a messenger and a browser. It acts as a platform for everyday smartphone users to begin using ÐApps, and a simple way for ÐApp developers to reach new users. In 2017, we are still only at the dawn of the Ethereum ecosystem. But given time, Status will evolve into a seamless way to interface with a full suite of decentralized applications and services.

Wallet

A wallet is a gateway to decentralized applications on the Ethereum blockchain. It allows a user to hold and secure Ether, as well as write, deploy and use smart contracts. Popular wallets are the Ethereum Wallet (www.ethereum.org) or Parity (www.ethereum.org). We used Parity for deploying the smart contracts in the project to

  • create accounts (addresses),
  • edit and compile smart contracts,
  • deploy smart contracts to the blockchain,
  • send transactions, and
  • inspect events.

Smart contracts

Smart contracts are programs written in the Solidity programming language[iii]. There are currently two smart contracts, Registry.sol to register users and EScooter.sol representing one escooter (see Figures 8–10):

Figure 8: Smart contracts (Screenshot from Parity)

Registry.sol

Figure 9: Registry contract (Screenshot from Parity)

EScooter.sol

Figure 10: EScooter contract (Screenshot from Parity)

Transactions

Transactions are signed data packages that store a message to be sent from an externally owned account (representing a human user, external actor) to another account on the blockchain (human user or smart contract).

Owner transactions

The contract owner (administrator) triggers transactions with a client like Parity. These transactions are calls to set the registry and register authorized users (see Figure 11, 12).

Figure 11: Set registry transaction (Screenshot from Parity)
Figure 12: Register user transaction (Screenshot from Parity)

User transactions

The user triggers transactions with the user interface. These transactions are calls to book and return a scooter (see Figure 13, 14).

Figure 13: Booking transaction (Screenshot from Parity)
Figure 14: Return transaction (Screenshot from Parity)

Messages

Smart contracts are able to send “messages” to other contracts. They can be conceived of as function calls. Essentially, a message is like a transaction, except it is produced by a contract and not an external actor. The scooter contract sends a message call to the registry contract to check if a user requesting to book a scooter is registered. The registry returns true, if the user is registered, false otherwise. Only if the user is registered booking is possible.

Events

If a user sends a transaction to book or return a scooter corresponding events are generated. Events are log entries generated by message calls (transactions) in the blockchain. Events are written as logs to the blockchain and are accessible to external services, but not to smart contracts.

Scanner app

An external service called the scanner app is watching for booking (“Booking”) or trip ending (“Return”) events. This app is written in node.js and uses the web3.js JavaScript API to access the blockchain. Each scooter is represented by mapping a QNR to the address of the smart contract belonging to the scooter. The QNR is an internal unique identifier for a vehicle interface, in this case the Cloudboxx API, in Shared Mobility OS.

Cloudboxx API

The scanner app provides an endpoint for unlocking and locking the scooter. A scooter is identified uniquely by a QNR. When the user finishes the trip, he uses the ÐApp to return the scooter and end the rental. This calls a function of the scooter contract and creates an event which triggers a lock request to INVERS Shared Mobility OS and eventually the Cloudboxx in the scooter.

Security considerations

The contracts are deployed to a public Ethereum blockchain testnet called Ropsten offering access to all smart contracts, transactions and events stored in this public blockchain. While there is no risk of theft of funds — which are provided for free in the testnet — it has to be prevented that unauthorized users obtain access to scooters and steal them.

  • smart contracts, owner and users are identified by addresses
  • no actions by adversaries are possible using these addresses without knowing the associated private key, which has to be kept secret
  • all events contain secure information about the source of the event to prevent generation of fake events by adversaries to get access to a scooter
  • access to sensible smart contract functions is restricted to the contract owner
  • no data to access the INVERS Cloudboxx is stored in the blockchain
  • addresses for authorized users can be registered
  • only transactions for registered addresses are accepted by the smart contract for renting a scooter
  • a whitelist containing the QNRs restricts access to scooters
  • the scanner app only accepts events generated by a smart contract belonging to a scooter

Conclusion

By now, it is indisputable that shared mobility services are here to stay. Some segments in shared mobility — like scooter sharing — are growing exponentially. And yet, the absolute size of the shared mobility market is still negligible compared to the ownership mobility market. Shared mobility technology has contributed to making these services more accessible, attractive and economical for both users and operators. At INVERS, we believe that we are still just at the beginning.

Remarks

Download the article as PDF file. If you like this article, we would be happy if you forward it to your colleagues or share it on social networks. If you are an expert in the field and want to criticize or endorse the article or some of its parts, feel free to leave a private note here or contextually and we will respond or address.

  • Blockchain knowledge: We wrote a Medium article on how to acquire the necessary blockchain knowledge within a workload of 10 working days.
  • Our two blockchain books: We have edited two books on how blockchain will change our society (Amazon link) in general and the everything related to finance (Amazon link) in particular. Both books are available in print and for Kindle — currently in German and soon in English. The authors have been more than 20 well-known blockchain experts in startups, corporations and the government from Germany, Austria, Switzerland and Liechtenstein — all contributing their expertise to these two books.
Our two books: the first one on blockchain and the society and the second one on blockchain and finance

Authors

Alexander Kirn is CEO of INVERS GmbH. You can contact him via LinkedIn (https://www.linkedin.com/in/alexanderkirn/) or by E-mail (alexander.kirn@invers.com).

Endnotes

[i] https://www.innoz.de/sites/default/files/
howebock_global_scootersharing_market_report_2017.pdf

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Philipp Sandner

Philipp Sandner

4.4K Followers

Professor | Lecturer | Author | Investor | Frankfurt School Blockchain Center