## 4 Blockchain Group Authentication Scheme
### Authentication Stage  
Before the authentication phase starts, upload nodes of groups other than this group should be selected as authentication nodes to prevent collusion attacks. The authentication phase is divided into eight steps (Figure 7):  
1. After receiving the verification challenge, all devices of group X use PUF technology to upload their IDs to the verification node (the upload node of group Y is randomly selected). 2. After the verification node receives the ID Hash of the device in group X to be verified, it constructs the MHT to obtain the Root Hash (ROOTHASH(X')) of the group to be verified. \begin{table}
\begin{tabular}{l l} \hline \hline
**Parameter Name** & **Parameter Interpretation** \\ \hline CE & Client End \\ UN & Upload Node \\ VN & Verification Node \\ BLC & Blockchain \\ INPUT(x) & CE selects a Group to Be Authenticated(X) \\ RANDOM(x) & Select The UN Of Group(Y) As VN(Random) \\ VERIFY(x) & CE Sent to Group X To Authenticated \\ AUTHORIZE(x,y) & CE Sent Authentication to Node Y \\ PUF(ID,x,y) & ID of a Transmission Group Member \\ QUERY(x) & Query The ROOTHASH(X) Stored in The Blockchain \\ ROOTHASH(x) & ROOTHASH Conn From UN \\ ROOTHASH(x’) & ROOTHASH Come From VN \\ MHTupload [ID(x)] = ROOTHASH(x’) & UN Obtains ROOTHASH(X) By Building MHT \\ MHTlocal [ID(x)] = ROOTHASH(x’) & VN Obtains ROOTHASH(X’) By Building MHT \\ COMPARE(x,x’) & Compare ROOTHASH(X) With ROOTHASH(X’) \\ PUF(ID) & Use PUF Technology to Encrypt Device’s Ids \\ INITALZE(x) & Group X Is Initialized \\ INSETIROTHASH(x)] & Save Group’s Root hash(X) to the Blockchain \\ RETURN (A, B, Y/N) & The Result Message Sent by A To B \\ RETURN (A, B, Y) & The Knot Return Message Sent by A To B \\ ZKPV(x) & Zero-Knowledge Proof Algorithm \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Parameter annotation. \begin{table}
\begin{tabular}{l l l} \hline \hline \(CE\) & \(UN\) & \(BLG\) \\ \hline INITLALIZE(x) & \(\xrightarrow{\text{\tt\tt\text{\tt\text{\tt\text{\tt\text{\tt\text{\tt\text{\tt\text{\tt\text{\tt\text{\tt\text{\tt\text{\tt\text{\tt\text{\tt\text{\tttt\text{\tttt\text{\tttt\text{\texttext{\3. The verification node queries the Root Hash (ROOTHASH(X)) of the group to be verified from the blockchain. Compare ROOTHASH(X) and ROOTHASH(X\({}^{\prime}\)). If they are the same, the devices to be verified in this group are legal; if not, it is necessary to verify whether there is any illegal device in group X. 4. Upload the verification result to the client. 5. If the verification finds an illegal user, the client sends a challenge to the upload node of group X to be verified. 6. The upload node of group X performs zero-knowledge proof identity authentication for the devices in the group. 7. The group X upload node uploads the authentication result to the client. 8. Based on the information provided by group X, the client finds out the information uploaded by illegal nodes and deletes it. Table 3 provides a detailed flowchart of the verification phase. Figure 8 shows that the authentication of the system is initiated by the client. After the group receives the command, it will return a message to the client. If no return message is received within the set time, the client will resend the message to the group. The client first selects the group to be verified and the verification node. The group to be verified uses PUF technology to pass the device ID in its own group to the verification node. After the verification node receives the verification request, it uses the MHT algorithm to obtain ROOTHASH(X\({}^{\prime}\)). The verification node looks up the ROOTHASH(X) of the group to be verified from the blockchain and compares ROOTHASH(X) and ROOTHASH(X\({}^{\prime}\)). If they are the same, the devices in the group to be verified are legal; if not, there are illegal devices in the group to be verified. The verification node uploads the verification result to the client.