# Implementation and Security Test of Zero-Knowledge Protocols on SSI Blockchain
## 4 Test Environment Development  
The work method followed was one typical of the application development workflow: firstly, the specific objectives and use cases were defined. From these, the final requirements for the application were extracted and the classes to be implemented were defined in a UML diagram. Figure 1 shows the development process. Finally, the implementation stage of the workflow was reached, which will be further explained below. Once the algorithms were studied in the background section, the steps described had to be translated into executable code. With the aim of making the application executable on the main operating systems, it has been decided to work with Python due to its versatility as an open-source multi-platform language. It also offers a solution for the development of the user interface with the ktinter package, which is easy to install. To mimic the Verifier and Prover roles, the two sides of the protocols' logic will be implemented in two separate \begin{table}
\begin{tabular}{p{113.8 pt} p{113.8 pt} p{113.8 pt} p{113.8 pt}} \hline
**Reference** & **Proposed** & **Finding** & **Limitation** \\ \hline
[13] & NoKnow: A python library for implementation of Schnorr protocol & Intuitive API & Too high level for first approach to ZKP \\
[15] & Weakness analysis of NTFR protocol against MITM & Step-by-step theoretical explanation & No practical example that helps understanding \\
[17] & Implementation of Feige-Fiat-Shamir protocol & Proposal for use in the implementation of an alternative SSH authentication scheme & No weakness analysis \\
[19] & Analysis on the benefits of SSI vs. Spanish system Cléve & In-depth analysis of necessary changes needed to abide with EU regulations & Legally focused, lacking a practical proposal \\
[23] & Study of SSI in industrial environment & Arguments in favor of IoT device networks managed with an SSI system which would bring economic benefits & Their work only benefits private sector; tech is not accessible to all. \\
[24] & High-efficiency Quantum Digital Signature & The protocol proposed is \(10^{8}\) times more efficient than previous QDS protocols & Limitations of the proposed protocol need to be explored further \\ \hline \end{tabular}
\end{table} 
Table 4: Related Work. Figure 1: App Development. processes that will communicate over a TCP connection so that the final application may resemble a real-life situation. Once these design decisions have been made, an incremental sequential work method is proposed which consists of the following steps:  
1. Use cases and requirements definition. 2. Development environment configuration: This involves the installation of the latest version of Python (Python 3) and the Visual Studio Code source code editor, as well as the necessary packages for application development (tkinter, socket). 3. Development of the Verifier and Prover processes: Firstly, it is necessary to establish the TCP connection between both processes before encoding the logic of the protocols in each one of them. 4. Implementation of the ZKP protocols: The implementation of each of the three ZKP methods is independent of the rest, so they can be performed in parallel. However, it is necessary to develop the logic on the side of the Prover and the Verifier synchronously in order to verify the communication between them and the correct operation of the protocol. 5. ZKP protocol tests: Ensure the correct authentication of the Prover with each of the methods when changing in the input parameters established by the user. 6. Implementation of brute-force attacks: Once the correct operation of the protocols has been verified, it is a matter of implementing a third actor, the impostor, who tries to pass the Verifier test with only the information about the public key of the Prover, and not their private key. 7.