## 3 Related Work  
Prior research works in security provisioning of the IoT environment that perform authentication and ABAC schemes using blockchain are investigated. In [30], the authors have developed a lightweight and secure architecture that uses a one-way hash function, an elliptic curve cryptography (ECC) and an XOR operation. The unique identity and password were converted into hash at the registration phase and submitted to a trusted server. Then the trusted server computes the challenges and stores it in a database. During the authentication phase, the challenge was computed and delivered to a server. Then the server checks the first challenge; then it computes the second challenge. After verifying the challenge, a session key was generated, and then a communication channel was established between the server and the device. The security credentials were shared using the ECC algorithm. The issue in this work was lack of sufficient security due to the consideration of simpler credentials for authentication which can be guessed easily. In addition, the selection of a weak curve in the ECC tends to produce poor generation of keys for encryption and decryption. The incorporated ECC algorithm was composed of multiple complex computations, and it is not sufficient in providing confidentiality. A blockchain-based architecture was designed to perform authentication using the position and identity of the user in accordance with the determined trust level [31]. The trust level of each user depends on interactions. This work was called in short the Secure Path. The users create multi-signatures and check one after the other; then it connects to the blockchain for validation of the trust value which was dynamically determined. A decentralized security management system was proposed in this work that uses blockchain technology [32]. The conventional design of a blockchain using a Merkle hash tree was  
Figure 1: The Ledger in HLF blockchains. involved for authentication. The gateway was responsible to check an IoT device, and the entities used for authentication were signature, metadata and Merkle tree proof. The smart contracts in the blockchain were presented for registration. According to the registered devices, the blockchain authenticates each device. In this work, multi-signatures are used; thus, there is a need to verify them one after the other which consumes time. In [33], a blockchain-based authentication was proposed that uses a token mechanism. Initially, the registration was handled by the identity and address information as the user credentials. The signature generation was based on the elliptic curve digital signature function and hashing by SHA 256. According to this work, a token was generated with the hash identity and address. If the credentials are true, the token is granted, otherwise, it is denied. SHA 256 is a well performing hashing algorithm; however, it is comparatively poor with lightweight hashing. user credentials were commonly not secured during the registration process. To increase the efficiency of authentication, a decentralized blockchain-based authentication (DBA) protocol was proposed that takes into account multiple factors [34; 35]. The multiple factors in DBA were identity, password and location. For the purpose of security, the lightweight SALSA algorithm was used. The issue of this work is the absence of security provisioning during registration of the user credentials. A decentralized secure access control for the IoT was proposed in this paper that incorporates blockchain [36]. A hierarchical structure was developed that is composed of four blockchain managers as cloud, core fog, fog and local. The signature plays a vital role for verification of a user in blockchain. An authentication agent shares the secret key in a secure way with the Diffie-Hellman key exchange algorithm. After verification of identity by the authentication agent, the policy was checked by the authorization agent; later, the data was hashed and updated in the blockchain.