# A Blockchain-Based Audit Trail Mechanism: Design and Implementation
## 6 Validation Experiment  
The correct operation of the proposed audit trail mechanism was validated through the level of compliance with the requirements defined in Section 2.3 for a Blockchain-based audit system that enhances the security and usability of current audit solutions. For this purpose, a controlled laboratory validation scenario was deployed as follows:  
* Blockchain network: Three Quorum Blockchain nodes were locally deployed as docker images for validation purposes (kylos_network_node1_1,kylos_network_node2_1 and kyklos_network_node3_1 in Figure 7); however, in real deployments, additional nodes managed by different owners are recommended to improve decentralization and governance of the Blockchain network. The implemented smart contracts with the functionalities described in Section 4 were registered (deployed) on the Blockchain network. * Blockchain monitor and Blockchain monitor client: One instance of each of the required services for the Blockchain monitor and Blockchain monitor client were locally deployed as docker images for validation purposes; in real deployments, at least the Blockchain monitor client must be publicly accessible. * Eventeum was deployed through the kyklos40_eventeum_1 docker image in Figure 7. The internal operation of Eventeum requires Mongo DB [51] (kyklos40_mongodb_1 in Figure 7). * Kafka was deployed through the kyklos40_kafka_1 docker image in Figure 7. The internal operation of Kafka requires Zookeeper [52] (kyklos40_zookeeper_1 in Figure 7). * Logstash, Elasticsearch, and Kibana, as part of the Elastic Stack, were deployed through the Logstash, Elasticsearch, and Kibana docker images in Figure 7, respectively. * Blockchain client: One Blockchain client instance was locally deployed as a Node.js application for validation purposes by means of the PM2 process manager [53] (KYKLOS_HTTP_SERVER in Figure 8); however, in real deployment, any component that is likely to provide audit information should deploy its own instance of Blockchain client. Figure 6: Audtit trail mechanism operation sequence diagram. Figure 8: Node:js application from the validation experiment. \begin{table}
\begin{tabular}{c c} \hline \hline
**Requirement Name** & **How It Was Addressed** \\ \hline \multirow{3}{*}{Inalterability (integrity)} & Blockchain owns inherent characteristic of integrity (the information recorded on the Blockchain cannot be modified/altered at all). \\  & Blockchain owns the inherent characteristic of long-term \\ \multirow{3}{*}{Long-term maintenance} & \multirow{3}{*}{
\begin{tabular}{c} Blockchain has the inherent feature of guarantee of origin (the information recorded on the Blockchain is always associated with a specific account on the Blockchain). \\ \end{tabular} } \\  & Each stakeholder providing or consuming information has its own Blockchain client instance, while the Blockchain transaction supports simultaneous write and read operations. \\ \multirow{3}{*}{Availability Confidentiality Access control} & Blockchain networks are distributed by design; thus, high \\  & availability is guaranteed. \\ \multirow{3}{*}{Access control} & SSL is used in all communications. \\  & The auditing system is designed in such a way that only the data source can update or retrieve its own data through the DApp, \\ \multirow{3}{*}{Access control} & while access through the Blockchain monitor client is authenticated; hence, a proper account is required to access the graphical information. Thus, data access control is guaranteed. \\ \multirow{3}{*}{Usability  Visibility & Graphical information (tables) is provided in the Blockchain monitor client. \\ \multirow{3}{*}{Multidomain} & The Blockchain monitor allows the recording of any kind of information thanks to the name-value pair in the data model (multisector, multidomain). \\ \cline{1-1}  & \\ \end{tabular}
\end{table} 
Table 3: Blockchain-based audit trail mechanism requirements coverage. Figure 7: Docker images deployed in the validation experiment.