## 3 Literature Review
### Blockchain-Based IDMSs  
In [13], the authors presented a new IDM approach based on a private blockchain, which aims to provide an efficient and simple protocol that meets all the needs of Internet of Things (IOT) organizations. Researchers implemented a Hyper-ledger Fabric for the smart homes model and wrote the chain codes using Golang language. The main functions of the IDM systems are split into three phases to allow simultaneous execution: identity registration, identity verification, and identity revocation; the three phases employed smart contracts to interact with the blockchain. The author discussed how this approach would enhance IOT entities communications by including a consortium membership service and identity management protocol. The author chose to use a private blockchain in the model to achieve more security and better scalability; however, in terms of characteristics, it was more like centralization than decentralization, and that increased the risk of SPOF and central authority issues. The authors in [49] developed a decentralized IDM system prototype using the Hyperledger Indy blockchain as a proof-of-concept in the public transportation sector, based on self-sovereign identity principles. The proposed system can reduce the need for using multiple travel cards for the people who travel frequently and who use several modes of transportation within multiple jurisdictions. The system aims to give the users full identity control by creating a direct identity layer based on the principles of decentralization using a blockchain-based IDM system to provide a Single European Transport for users. The proposed system will provide the ability to create many decentralized identifiers for any person, in addition to creating a key pair for each user so they can securely share the data. In [45], researchers proposed a blockchain-based decentralized IDM system for the public sector in South Korea by providing a mobile application by which to create electronic identity cards, issued and managed by a national central authority. The user stores their driver licenses on their device and verifies their identity through the app by using a one-time QR code. The client server in the system is developed by using Hyper-ledger Fabric V1.0 to increase the privacy level. Amazon web service (AWS) is used in the system to provide a faster process and increase efficiency. Data for any identity in the system is linked to a central government agency in South Korea to complete the identification process. User data is stored in a database in the form of keys and values paired on a hash map, in addition to the chain code. The developer also used a modern user interface to make users feel more comfortable using the system. The application is very effective in using blockchain, but it appears to be centralized, even with blockchain, as the national central authority is the data manager, and license requirement in the verification process might be a disadvantage because such an application is not appropriate for many e-commerce systems or for obtaining online services as there will be licenses or other types of formal document involvement. Authors of [46] used a smart contract to design a cross-domain self-sovereign identity management system. The system contains three types of smart contracts; each one built to perform a specific function. The services smart contract SSC is the first contract and the basis contract in the system which controls the publishing of a user identity contract, and it is created and published when the SP joins the system. The second is the identity smart contract ISC, which is requested by the user from the SP after they have been identified and verified, and their address is recorded in the SSC. The ISC is controlled by the user after it is published. The Recovery Smart Contract (RSC) is also created at the same time. The RSC is automatically created for each ISC to give the user the ability to recover their lost password from a list of friends.