*4.3. Authentication Protocol*

In the proposed system, blockchain is used to confirm the authenticity of the members, i.e., EVs and HCSs. All of them are required to be registered physically before getting services from the system. They receive a pair of keys after the registration, and later all the communications will take place with their public keys. Before generating any request of charging, the system checks the membership status of the EVs, and similarly, before suggesting nearby HCSs, the system checks the authenticity of the HCSs. Moreover, to ensure the authenticity of a particular EV or HCS, any of the members can send a request for authentication information of another component by sending a message to the server by using *reqAuthInfo()*. Then, the server will reply with the authenticity of the requested components. In this way, the authenticity of the components is ensured so that both parties can initiate a safe and secure connection. Moreover, using the public keys instead of real identities will protect their original identities and privacy.
