# Blockchain-Based Decentralised Authentication in Closed Environments
## 3 System Model and Methods
### Proposed Protocol  
This section describes a blockchain-based decentralised authentication protocol for private or closed networks. Several assumptions are made. The first assumption is that all validator nodes are already part of the blockchain network. Second, because the protocol  
Figure 1: Overview of the proposed authentication process. operates in a closed environment, we assume that the nodes or entities are already registered with the network. Therefore, authentication credentials exist in the blockchain and are held by the validator nodes. With this assumption, although nodes or entities are already registered, when they leave and want to re-enter, an authentication process still needs to be performed. This process is described later. In addition, by specifying that the nodes or entities are registered, the third assumption is that a group key is already established among the validator nodes and other entities. A group key for a closed network can be established using a Diffie-Hellman-based algorithm, such as [18; 19], or an elliptic curve cryptography-based algorithm, such as [20]. These group key establishment protocols can compute a new key at any time, including when a new node joins or leaves the network. In closed environments, such as those found in an organisation or a controlled setting, it is feasible to assume and manage the registration of validator nodes effectively. The assumption that validator nodes are pre-registered allows us to focus on the actual authentication process and its security and efficiency. In closed environments, a limited number of trusted validator nodes can actually be identified and registered prior to deployment. This ensures that all validator nodes are known and verified. This design and assumption actually reflects the operations of closed environments, where nodes and access can be controlled and monitored. Moreover, by assuming validator node pre-registration, we eliminate potential complexities associated with node registration in open environments. This would allow a more straightforward implementation of our proposed decentralised authentication protocol. In addition, the use of group key establishment methods such as [18; 19; 20] ensures that communications among nodes are secure. From the assumptions stated above, the proposed authentication protocol operates as follows. 1. Entity \(A\) (where \(A\) is an entity to be authenticated) wanting to enter the system or network broadcasts an authentication request containing their credential information, such as username, password, or even biometric information. This authentication request is encrypted using symmetric cryptography such as AES-128 or AES-256 (where AES stands for Advanced Encryption Standard, which is a block cipher algorithm) with the group key \(K\) established among the nodes of a closed network, thus ensuring confidentiality. Moreover, to ensure message integrity, the message authentication code (MAC) is computed by using either the CBC-MAC (Cipher Block Chaining Message Authentication Code) or HMAC (Hash-Based Message Authentication Code) algorithm. When an authentication request is initiated, the message is encrypted using the established group key before transmission. This ensures that only authorised validator nodes, which also possess the shared group key, can decrypt and access the contents of the message. The group key is not only used to protect sensitive information in the message, it is also used in the computation of CBC-MAC or HMAC, which complement encryption. That is, by computing and appending a message authentication code (MAC) to the encrypted message, any modifications made during message transmission can be detected by the recipients or the validator nodes in this case. 2. When the validator nodes \(V_{i}\) receive the authentication request, they check the integrity of the message and decrypt it using the group key \(K\). The decrypted credential information is then verified by \(V_{i}\) using the information stored in the blockchain.