## 3 Results
### A Generic Blockchain-Based Traceability System  
Each time a traceable operation is performed, a data structure is generated (i.e., a batch in the terminology of Section 2.1) to record all relevant details. The generation of that batch is notarised by means of a blockchain transaction, generating a chain of notarisations that maps to the trace nodes and thus guarantees traceability. Each time a product in the value chain changes hands along the supply chain, it would also be possible to notarise such a transaction on the blockchain. This would ensure the integrity of the chain of custody and provide full traceability. Regarding the data handled in traceability processes, we can establish the following classifications according to their relevance:  
* Relevant data for traceability, such as fabrication licenses, certification information, verification of origin, CO2 balance, batch owner, or contributing batches to produce the current batch. These data should be notarised to ensure traceability from origin to final product. * Data that are not critical to traceability, such as company and product data not required to be traced, or complementary batch data that may be dynamic and change over time,such as quality records, real-time inventory data, marketing details, transportation and logistics information, etc. The combination of smart contracts on the blockchain to keep track of transformations made along the supply chain, along with a traditional backend to manage the data efficiently and provide intuitive user interfaces, can offer a comprehensive and scalable solution for tracking and traceability. In addition, hash keys, also called cryptographic digests, will play a relevant role in reducing the amount of information stored in smart contracts in the proposed traceability model. By using hash keys, it is possible to maintain an immutable and transparent transaction record while minimising data storage on the blockchain [49]. Instead of fully storing all critical data for each batch on the blockchain that requires immutable storage to ensure traceability, hash keys can be computed from relevant data to serve as a digest or fingerprint of the original data, so that any modification would invalidate that fingerprint. Similarly, by comparing the stored digest with a hash key computed at any later point in time, we can undoubtedly tell whether the original information was modified or tampered with. This significantly reduces the storage space needed on the blockchain, as hash keys are much smaller in size compared to original data. In a nutshell, when the authenticity or integrity of the data needs to be verified, hash keys can be recalculated from the original data stored off-chain and compared to the hash keys stored on-chain. If the cryptographic summaries match, it can be guaranteed that the original data were not altered, and that the trace is therefore valid. By reducing the amount of data stored on the blockchain, privacy can also be enhanced by minimising the exposure of potentially sensitive information. Only the hash keys, rather than the complete data, would be shared and recorded on the blockchain, which reduces the risks of unwanted information disclosure. In addition, this approach improves storage efficiency, transaction times, scalability, and operational costs. Taking all the above into consideration, we can establish a new classification for the data in a new node in a traceability step (cf. Figure 3):  
1. Traceability-relevant data. These data will be used to calculate the cryptographic digest or hash key to be stored in the blockchain, along with the traceability-critical data below. These data are immutable by nature and will be stored off-chain (e.g., relational back-end, decentralised file storage, cloud storage,...)
2. Traceability-critical data. These data will be stored along with the cryptographic digest of the traceability-relevant data in the blockchain (i.e., the hash key of traceability-relevant data is considered as part of the traceability-critical data).