# 3. Create cryptographic proof return zk_snark_proof
## 4 Use Case Study: OOM Metric Analyzer  
To address the issue of subjectivity and unauthorized manipulation of software metric results, the software solution OOM Metric Analyzer v1 was developed. This tool calculates the values of object-oriented metrics for applications written in the Python programming language and verifies them on the Ethereum blockchain. User access is granted only through a previously connected digital wallet, ensuring the security and correctness of the calculated results.  
On the user login interface (Figure 5), a button is provided to connect the application to the digital wallet, along with a message informing users that no personal data will be stored in the application. OOM Metric Analyzer uses the MetaMask digital wallet, though other solutions are also supported.  
Since verifications are conducted on the Ethereum blockchain, users must possess a certain amount of Ethereum cryptocurrency in their wallets to execute transactions. The transaction cost depends on the gas fee and the complexity of the data-writing operation.  
After the user connects their digital wallet, the software metric analysis and verification interface is displayed (Figure 6). Here, the user is provided with the following features:  
Choose Files: Select the software files to be analyzed.  
Analyze: Compute software metrics for the selected software.  
Reset: Clear the calculated metrics and reset the analysis.  
Verify: Verify the computed metrics by submitting them to the blockchain.  
In the first step of software metric analysis and verification, the user uploads the software to be analyzed. After the selection is made, a pop-up window appears (Figure 7), prompting the user to enter the name of the software.  
The next step in the analysis is initiated by clicking the \"Analyze\" button. As a result, the calculated metric values are displayed beneath the uploaded files (Figure 8). Metrics within the recommended range are highlighted in green. Metrics with values outside the recommended limits are marked with pulsating red circles to indicate potential issues.  
To provide users with insight into which parts of the software may contain potential issues, the system offers the option to view detailed information about specific classes or methods by clicking the 'i' button (Figure 9). Upon clicking this button, a table is displayed showing the following: the relevant classes or methods (depending on the specific metric),  
Figure 5: Login page of the software for computing software metrics.  
Figure 6: Software metric analysis and verification page.  
Upon obtaining the metric values, the user can verify them on the blockchain. This function is executed by clicking the \"Verify\" button, which then opens a pop-up window displaying the transaction details (Figure 10).  
To verify the results on the blockchain, the user must confirm the transaction. The user can view the history of all transactions and analyses by clicking the 'History' button in the side menu.  
For each verification (Figure 11), the following details are displayed: the project name, the verification date, a button to view all metrics associated with the verification, and the transaction hash value, which can be clicked to redirect the user to the Ethereum network, where the transaction can be independently verified.  
The following Table 2 and accompanying analysis summarize the validation outcome of the provided Python class metrics using the enhanced Blockchain-Based Metric Validation Scheme with zero-knowledge proofs (BMVS-ZKPs*). The evaluation compares current metric values against a predefined threshold profile designed to ensure maintainability, modularity, and structural soundness in Python-based systems.  
Figure 10: Pop-up window with transaction details.