Smart Contracts for Managing the Chain-of-Custody of Digital Evidence: A Practical Case of Study †
Abstract
:1. Introduction
- Three technological architectures for the CoC process of digital evidences are designed: distributed, centralized and multi-blockchain, as well as a set of design principles are proposed to minimize the limitations found in the literature. A review of these gaps is also detailed in this work. Specifically, our proposal has as a starting point the work [13], expanding and adapting it according to our defined principles;
- A real prototype to manage the CoC process of digital evidences was developed. This prototype is based on the designed distributed architecture by following the proposed model for the CoC process. The prototype also satisfies most of the requirements detailed in the design principles. Moreover, our solution is open-source and compatible with the current top languages used in the Blockchain landscape;
- A smart contract associated with the prototype was implemented under Quorum, a version of Ethereum oriented to private business environments. The Zero-Knowledge Proof (ZKP) protocol [14] has been employed for this purpose. This protocol allows it to have consensus on transactions and blocks while maintaining data privacy. As a result, entities can see the Blockchain network as reliable since their data are also protected when transmitted through the network without third parties knowing their content.
2. Literature Review
2.1. Blockchain Evolution
2.2. The CoC Background
3. Proposed Process Model
3.1. The CoC Process
- Acquisition. The chain of custody begins at the evidence acquisition phase. Once collected, the process of creating the evidence must be instantiated in the chain of custody;
- Analysis. It invokes the process of analyzing the evidence access by the corresponding participants;
- Report. It invokes the process of reporting the evidence access by the corresponding participants;
- Destruction. In case the destruction is requested, invoking the method destruction of evidence will be needed.
3.2. Evidence Services
- Create evidence. The person responsible for acquiring the evidence signs the record with all the circumstances related to the acquisition process. Then, these data are used to generate the corresponding record in the Blockchain network. Therefore, the person who is responsible for the act of acquisition is the one who must create the CoC evidence;
- Invalidate evidence. If necessary, who, when, how and why the destruction of the evidence was authorized must be recorded;
- Obtain evidence. The registration of all participants requesting access to the evidence;
- Transfer evidence. It is necessary to delegate the management of the evidence participants may transfer that responsibility to another competitor;
- Show the register evidence. Report on all entries in the log about a particular piece of evidence.
4. Technological Solution
4.1. Design Principles
- A smart contract that implements the logic of a secure, simple and standard process of CoC. An example of a smart contract can be found in [31]. It is imperative to reuse verified code, such as Open Zepellin [32] libraries. Programming language can be vulnerable [33,34], and they are specialized in generating safe libraries for Solidity contracts. A smart contract must be open-source and standardized where they gain the endorsement and scrutiny of the entire community.
- The data related to the CoC are only accessed through the smart contract. The architecture in these networks are layers and interactions with the contract, but it should never maintain or manage the chain information without invoking a smart contract function. The rest of the architecture must facilitate access but also guarantee the independence of CoC validation for third parties, if needed, with the appropriate permissions through the interfaces of the Blockchain network itself.
- Deployment of the contract in one or more consortium of Blockchain. Our developments must be technologically prepared for this deployment.
- Permissive technologies with ZKP consensus support. That is, the participation of public or private consortiums that guarantee independence from the third parties. On the other hand, a licensed technology is essential to allow, if necessary, privacy and confidentiality without losing the network’s consensus on the validity of the transactions.
- Custody of the evidence in a separated way from the evidence in the CoC record. The size of the evidence makes it unfeasible to use the Blockchain itself as a secure custody repository. However, the fingerprint of the evidence is stored in the Blockchain registry. This way, any tampering with the evidence would be detected. As a consequence, the resulting architecture is more complex.
- Robust identity management and authentication method. The NIST Guide Digital Identity Guidelines 800-636 [35] is the main reference for this property. Having the maximum certainty of a virtual correspondence to the real identity of the participant is essential for reliability purposes. The distributed architecture achieves this with wallets that store credentials based on public key cryptography. Private key custody is essential to avoid losing virtual currencies, and mechanisms have been designed (software, hardware, storage) that allow users to be the only ones who physically have it. Like others based on multiple authentication factors, this mechanism is sufficient to authenticate. There is no concept of identity; the person who has the private key is the owner. That is, there is only one authentication identifier. Regarding the custody process, it is also necessary to validate that the digital identity corresponds to the real identity of the participant. This way, the appropriate processes for managing the identities associated with these accounts and private keys must be defined.
- The use of safe, reliable, durable and low-cost warehousing. Any evidence must be available during the open judicial period, lasting even years. Traditionally, the solution has been to make copies of the evidence on various magnetic disks, encrypt them with keys and physically store different copies (by the entity, a judicial authority, or a third party). However, there is no guarantee that these copies will be accessible in the future, in addition, to managing the custody of the encryption keys. The cloud is another option for having the capacity of security, reliability and redundancy without having to maintain the infrastructure for large volumes that are occasionally recovered. Again, however, this is not a suitable option for frequent access.
- Electronic evidence format following an open standard. Since there is no consensus, we will focus more on the process of generating the trace than on imposing a standard evidence format. Our proposal leaves the CoC format open. Moreover, it is very important to know how the fingerprint is generated, leaving open to any kind of electronic evidence with a standard fingerprint, such as SHA-256 or SHA-512. We also cover in this work SHA-1 and MD5 for backwards compatibility. It is mandatory to generate a minimum footprint based on SHA-256. On the other hand, due to changes in forensic techniques over time and the availability of forensic tools, the evidence acquisition record must be included in the record. This record includes all the details and the reproducible property of the evidence. It is good practice to include in the evidence file or an attachment the artifacts in source code or object mode of the tools used to generate it.
- Periodic accreditation of external security audits. Our technological solution is robust to be audited periodically by third parties with applicable normative and regulatory requirements.
4.2. Architectures
- Safe Storage. This artifact is a safe storage of evidences, protected and only accessible to legitimate CoC participants. User tracking is also considered for monitoring. Activity logs must also be recorded in the evidence registry for monitoring.
- Identity Node. There is an identity node per participant in a Blockchain network. Each participant must have their own node, if desired, to privately deploy a smart contract, and the rest of the nodes validate the transactions, but without knowing specific details.
- Smart Contract. This contract implements the CoC management processes and traces all events related to the digital evidence.
- Blockchain Consortium. Networks where the smart contract is deployed to generate consensus and chain of blocks (such as Alastria, R3, etc.), to guarantee the integrity and immutability of each evidence during the whole CoC process.
- Identity Manager. It manages the authentication and authorization processes in order to guarantee that each participant has access and permission to carry out the actions which correspond to their accreditation. All accounts and accreditation of identity are recognized as a person.
- Gateway Safe Storage. It is an interface for the uploading, downloading and additional controls for the evidence files.
- User Interface. It is a centralized or distributed web/mobile application that interacts with participants, in order to access the CoC processes.
- Contract Development and Debugging. It is the development environment of the smart contract with the capacity of compilation, debugging and deployment in the considered Blockchain network.
- Crypto Service (Key Management System, KMS). This component establishes a secure communication channel among the CoC participants and Identity Nodes. In particular, it is a dedicated cryptographic system with certified hardware for key custody, encryption and secure signature. This way, the security risks of having these keys in configuration files or memory in the systems are avoided.
- Distributed architecture. This proposed Blockchain-based architecture inherits from public networks (see Figure 3). Clients access to the network through a wallet app that stores the public cryptographic key-pair. The network stores the public key of the account and verifies the transactions signed from that wallet. Connections to the network depend on the protocol used—XML-RPC in the case of Ethereum networks, as our case is. This client must interact with the browser in order to integrate network data into a distributed application. An example is the Metamask extension [36] and the WEB3J library [37] for Ethereum networks.
- Centralized architecture. This architecture is service-oriented (see Figure 4). Access to the Blockchain network is shielded with a layer of services or micro-services that access the Blockchain network by delegation. In this case, it is necessary to implement a robust authentication and identity management system for the Blockchain network. Once authenticated, the private key can be retrieved on the server side (from a KMS) to be able to sign the network transactions. However, any third party with a provisioned account could verify the CoC process, independently.
- Multi-blockchain centralized architecture. It is a variation of the centralized solution by abstracting the network technology used (see Figure 5). The advantage is the redundancy of the chain of custody in different networks. It is a solution, for example, to provide a CoC service to third parties. This redundancy in different networks provides a higher degree of reliability and validation.
4.3. Principal Differences
- Browser. Participants connect through a specific browser to the CoC application and, as a consequence, to her/his specific Identity Node. This connection is performed via HTTPS, depending on the device (mobile or a workstation). The options available must be adapted to the channel through which is requested. The application sends the browser the necessary JavaScript to interact with the Blockchain network client.
- Wallet. It is needed for the CoC communication process among the CoC participants and Identity Nodes. Furthermore, for the application to access the wallet, a browser extension and a JavaScript library that interacts with it are necessary. For Ethereum networks, it is common to use a combination of WEB3J and Metamask.
- Communication with the Blockchain network. The entity node, depending on the underlying technology, will have an interface for interaction with the outside. In the case of Ethereum networks and the particular case of Quorum, it is XML-RPC [38], and with Hyperledger, it is an API based on REST (REST API) [39].
- Communication of Safe Storage events. The Secure Store must have the ability to generate events against the node to report access to the stored evidence. A proposal for how to do this is by implementing a FaaS (Function as a Service) in services such as AWS Lambda, which reads the log of events generated by the storage system and generates an audit log directly in the smart contract.
- Interaction within the Gateway Safe Storage. The application must manage the uploading or download of evidence from or to the client’s device. It will mediate communication with the different secure stores, so having credentials in the secure store will not be necessary. So, access will be made with service accounts with granular permissions to the evidence managed from the identity management module. In the case of downloading, a secure URI (Uniform Resource Identifier) must be generated for downloading from the client.
- Offline Upload of evidences. Formalize a protocol for sending the evidence to the offline provider for uploading or massive data migration to avoid problems and cost overruns.
- Development and Debugging environment. Depending on the network, it is necessary to have tools and environments to build and debug the smart contract. In the case of Ethereum networks, the most suitable options are Truffle suite [40] and Remix [41]. Hyperledger has its own SDKs and projects for this purpose, as was Hyperledger-Composer at the time, but it is now discontinued.
- In this case, the application’s access does not need extra extensions, and the complete identification, authentication and authorization processes are being managed in a centralized way.
- The application interacts with the network using the network account of the authenticated user. For this, it is necessary to implement the identity management module and a cryptography server to safely store the keys.
- Safe Storage must generate the event against the application to generate the audit record directly against the smart contract.
5. Case of Study: Smart Contracts and Ethereum for the CoC Process
5.1. The Developed Prototype
5.2. Component Interactions
- Interaction A (Client application <-> Distributed application). The client application, through a Chrome browser, or another compatible browser with the extension provided by Metamask, accesses the distributed application by an HTTP communication. The browser downloads JavaScript code from the Node server, including the interface and style sheets. The web server does not interact with the smart contract or the Blockchain network.
- Interaction B (Client application <-> Smart Contract). The application client interacts directly with the smart contract deployed in the network node. The client browser can do this through the Web3j JavaScript library and the Metamask extension.
- Interaction C (Distributed application <-> Safe Gateway). The safe storage is organized as a server that provides different REST services. In our case, it provides a service for uploading/downloading information. The specific interaction between the application and the gateway is to adjust the upload/download parameters so that the browser can manage this information directly from the safe gateway.
- Interaction D (Safe Gateway <-> Safe Storage). The safe gateway is in charge of collecting/sending the information from/to the safe storage. Through this option, the file requested to be downloaded or sent by the client is collected by the gateway. With the corresponding credentials, this is in charge of remotely storing files. This fact allows a control and abstraction layer of the safe storage without the client knowing the store’s details or credentials. As further work, the gateway could perform additional controls on the information managed. For example, recalculating fingerprints of evidence, encrypting data, etc.
- Interaction E (Client application <-> Safe Storage). The volume of electronic evidence could be Gigabytes, Terabytes or Petabytes. In these cases, it is reasonable for the client to interact directly with the store with his/her specific native credentials and tools. For example, Google’s Gsutil tool or the offline data migration available from most cold cloud storage providers, such as Amazon AWS [44].
- Interaction F (Development environment (Remix) <-> Smart Contract). The Remix environment [41] is ideal for the development and debugging tasks of the smart contract. An Ethereum virtual machine can be used, or well, accessed with a client via Web3J Metamask to interconnect with Ethereum. It has a multitude of options to be able to develop, compile, debug and test the smart contract.
- Interaction G (Compilation and deployment <-> Smart Contract). For the compilation and deployment of the contract, we use the Truffle suite [41] that allows the deployment of Ethereum-based Blockchain networks. The application deployment is also used to compile and migrate the contract to the corresponding network.
5.3. The CoC Smart Contract
- CreateEvidence. It creates a new evidence, in case it does not exist in the Blockchain network. As an example, the source code for this function is included in Figure 8. This function creates new evidences with a specific filename and an SHA-256 hash. Furthermore, some additional parameters are defined, such as its identifier, the creator and owner, etc. It is essential to be a participant of the network to perform this action.
- GetParticipantList. It returns the list of all participants who are in the Blockchain network.
- AddMasterParticipant. It adds the master participant data. This action is only possible if the participant did not exist in the Blockchain network previously.
- AddParticipant. It adds the data of any participant. This action is only possible if the participant did not exist in the Blockchain network previously.
- GetParticipant. It obtains the participant data required by another participant located in the Blockchain network.
- EmitAuditRecord. It adds to the evidence the record of what has happened, and it sends an event to the Blockchain network.
- GenerateEvidenceID. It is a public evidence ID generator. It can be used for any participant belonging to the Blockchain network.
- SetParticipantToEvidence. It adds a participant to the evidence. Only the evidence owner can perform this action.
- RemoveParticipantFromEvidence. It adds a participant to the evidence. Only the evidence owner can perform this action.
- TransferOwnership. An owner can transfer the owner role of evidence to another participant belonging to the Blockchain network.
- InvalidateEvidence. The owner can invalidate evidence in the Blockchain network.
- NotifyException. The owner can notify an exception about evidence in the Blockchain network.
- SetEvidenceHashdigestMD5. An evidence creator can add an MD5 hash to this evidence.
- SetEvidenceHashdigestSHA1. An evidence creator can add a SHA1 hash to this evidence.
- SetEvidenceFormatVersion. An evidence creator can add the format version of the object that contains this evidence.
- SetEvidenceFormatType. An evidence creator can add the format type of the object that contains this evidence.
- SetEvidenceObjectType. An evidence creator can add the object type that contains this evidence.
- SetEvidenceUriToSecureVault. An evidence creator can add its URI to the safe storage.
- SetEvidenceFilepath. An evidence creator can add its file path.
- SetEvidenceDescription. An evidence creator can add its description.
- SetAdquisitionStatementUriToSecureVault. An evidence creator can add the URI path of its acquisition document into safe storage.
- SetAdquisitionStatementHashdigestSHA256. An evidence creator can add the SHA256 hash of its acquisition document into safe storage.
- SetAdquisitionStatementFilename. An evidence creator can add the filename of its acquisition document into safe storage.
- SetEvidenceDetailAll. An evidence creator can update all its data from a smart contract.
- GetEvidenceAudit. Any authorized participant in the Blockchain network can access evidence data for audit purposes.
- GetEvidence. Any authorized participant in the Blockchain network can access the evidence itself.
- GetEvidenceDescription. Any authorized participant in the Blockchain network can access an evidence description.
- GetEvidenceUriToSecureVault. Any authorized participant in the Blockchain network can access the URI location of evidence.
- GetEvidenceObjectType. Any authorized participant in the Blockchain network can access the object type containing evidence.
- GetEvidenceFormatType. Any authorized participant in the Blockchain network can access the format type of evidence.
- GetEvidenceHashdigestSHA1. Any authorized participant in the Blockchain network can access the SHA1 hash of evidence.
- GetEvidenceHashdigestSHA256. Any authorized participant in the Blockchain network can access the SHA256 hash of evidence.
- GetEvidenceHashdigestMD5. Any authorized participant in the Blockchain network can access the MD5 hash of evidence.
- GetEvidenceAdquisitionStatementFilename. Any authorized participant in the Blockchain network can access the filename of the acquisition document of evidence.
- GetEvidenceAdquisitionStatementUriToSecureVault. Any authorized participant in the Blockchain network can access the URI path of the acquisition document of evidence from the safe storage.
- GetEvidenceAdquisitionStatementHashdigestSHA256. Any authorized participant in the Blockchain network can access the SHA256 hash of the acquisition document of evidence from the safe storage.
6. Discussion and Limitations
7. Conclusions and Future Works
Author Contributions
Funding
Data Availability Statement
Acknowledgments
Conflicts of Interest
Abbreviations
CoC | Chain of Custody |
DTL | Distributed Transaction Ledger |
EVM | Ethereum Virtual Machine |
FaaS | Function as a Service |
HTTP | Hypertext Transfer Protocol |
ID | Identification |
IoT | Internet of Things |
IP | Intellectual Property |
KMS | Key Management System |
MD5 | Message Digest Algorithm 5 |
PoC | Proof of Concept |
PoW | Proof of Work |
SDK | Software Development Kit |
SHA | Secure Hash Algorithm |
URI | Uniform Resource Identifier |
XML-RPC | eXtensible Markup Language-Remote Procedure Call |
ZKP | Zero-Knowledge Proof |
References
- Clim, A.; Toma, A.; Zota, R.D.; Constantinescu, R. The Need for Cybersecurity in Industrial Revolution and Smart Cities. Sensors 2023, 23, 120. [Google Scholar] [CrossRef] [PubMed]
- Benabdallah, A.; Audras, A.; Coudert, L.; El Madhoun, N.; Badra, M. Analysis of Blockchain Solutions for E-Voting: A Systematic Literature Review. IEEE Access 2022, 10, 70746–70759. [Google Scholar] [CrossRef]
- Wu, S.; Chen, Y.; Wang, Q.; Li, M.; Wang, C.; Luo, X. CReam: A Smart Contract Enabled Collusion-Resistant e-Auction. IEEE Trans. Inf. Forensics Secur. 2019, 14, 1687–1701. [Google Scholar] [CrossRef]
- Selvi, S.S.D.; Paul, A.; Rangan, C.P.; Dirisala, S.; Basu, S. Splitting and Aggregating Signatures in Cryptocurrency Protocols. In Proceedings of the 2019 IEEE International Conference on Decentralized Applications and Infrastructures (DAPPCON), Newark, CA, USA, 4–9 April 2019; pp. 100–108. [Google Scholar] [CrossRef]
- Stringer-Calvert, D.W. Digital Evidence. Commun. ACM 2002, 45, 128. [Google Scholar] [CrossRef]
- Ajijola, A.; Zavarsky, P.; Ruhl, R. A review and comparative evaluation of forensics guidelines of NIST SP 800-101 Rev.1:2014 and ISO/IEC 27037:2012. In Proceedings of the World Congress on Internet Security (WorldCIS-2014), London, UK, 8–10 December 2014; pp. 66–73. [Google Scholar] [CrossRef]
- Asociación Española de Normalización. Information Technologies (IT). Methodology for the Digital Evidences Forensic Analysis. Standard, UNE. Normalización Española. 2013. Available online: https://www.une.org/encuentra-tu-norma/busca-tu-norma/norma?c=N0051414 (accessed on 10 February 2023).
- Adam, I.; Varol, C. Intelligence in Digital Forensics Process. In Proceedings of the 2020 8th International Symposium on Digital Forensics and Security (ISDFS), Beirut, Lebanon, 1–2 June 2020; pp. 1–6. [Google Scholar] [CrossRef]
- Giova, G. Improving Chain of Custody in Forensic Investigation of Electronic Digital Systems. Int. J. Comput. Sci. Netw. Secur. 2011, 1, 1–9. [Google Scholar]
- Swan, M. Blockchain: Blueprint for a New Economy; O’Reilly Media: Sebastopol, CA, USA, 2015. [Google Scholar]
- Nakamoto, S. Bitcoin: A Peer-to-Peer Electronic Cash System; BN Publishing: La Vergne, TN, USA, 2008. [Google Scholar]
- Clint, R.V. DLT/Blockchain as a Building Block for Enterprise Transformation. IEEE Eng. Manag. Rev. 2019, 47, 24–27. [Google Scholar] [CrossRef]
- Bonomi, S.; Casini, M.; Ciccotelli, C. B-CoC: A Blockchain-based Chain of Custody for Evidences Management in Digital Forensics. arXiv 2018, arXiv:1807.10359. [Google Scholar]
- Tyagi, S.; Kathuria, M. Role of Zero-Knowledge Proof in Blockchain Security. In Proceedings of the 2022 International Conference on Machine Learning, Big Data, Cloud and Parallel Computing (COM-IT-CON), Faridabad, India, 26–27 May 2022; Volume 1, pp. 738–743. [Google Scholar] [CrossRef]
- Ouyang, Z.; Shao, J.; Zeng, Y. PoW and PoS and Related Applications. In Proceedings of the 2021 International Conference on Electronic Information Engineering and Computer Science (EIECS), Changchun, China, 23–26 September 2021; pp. 59–62. [Google Scholar] [CrossRef]
- Kushwaha, S.S.; Joshi, S.; Singh, D.; Kaur, M.; Lee, H.N. Ethereum Smart Contract Analysis Tools: A Systematic Review. IEEE Access 2022, 10, 57037–57062. [Google Scholar] [CrossRef]
- Baird, K.; Jeong, S.; Kim, Y.; Burgstaller, B.; Scholz, B. The Economics of Smart Contracts. arXiv 2019, arXiv:1910.11143. [Google Scholar]
- Zheng, Z.; Xie, S.; Dai, H.N.; Chen, W.; Chen, X.; Weng, J.; Imran, M. An overview on smart contracts: Challenges, advances and platforms. Future Gener. Comput. Syst. 2020, 105, 475–491. [Google Scholar] [CrossRef] [Green Version]
- Shahab, S.; Allam, Z. Reducing transaction costs of tradable permit schemes using Blockchain smart contracts. Growth Chang. 2020, 51, 302–308. [Google Scholar] [CrossRef]
- Zou, W.; Lo, D.; Kochhar, P.S.; Le, X.B.D.; Xia, X.; Feng, Y.; Chen, Z.; Xu, B. Smart Contract Development: Challenges and Opportunities. IEEE Trans. Softw. Eng. 2021, 47, 2084–2106. [Google Scholar] [CrossRef]
- Górski, T. The k + 1 Symmetric Test Pattern for Smart Contracts. Symmetry 2022, 14, 1686. [Google Scholar] [CrossRef]
- Alastria. Where Blockchain Happens. 2019. Available online: https://www.alastria.io/ (accessed on 10 February 2023).
- Li, X.; Jiang, P.; Chen, T.; Luo, X.; Wen, Q. A survey on the security of blockchain systems. Future Gener. Comput. Syst. 2020, 107, 841–853. [Google Scholar] [CrossRef] [Green Version]
- Lusetti, M.; Salsi, L.; Dallatana, A. A blockchain based solution for the custody of digital files in forensic medicine. Forensic Sci. Int. Digit. Investig. 2020, 35, 301017. [Google Scholar] [CrossRef]
- Lone, A.H.; Mir, R.N. Forensic-chain: Blockchain based digital forensics chain of custody with PoC in Hyperledger Composer. Digit. Investig. 2019, 28, 44–55. [Google Scholar] [CrossRef]
- Lone, A. Forensic-chain: Ethereum blockchain based digital forensics chain of custody. Sci. Pract. Cyber Secur. J. 2017, 1, 21–27. [Google Scholar]
- Al-Khateeb, H.; Epiphaniou, G.; Daly, H. Blockchain for Modern Digital Forensics: The Chain-of-Custody as a Distributed Ledger. In Blockchain and Clinical Trial: Securing Patient Data; Springer International Publishing: Cham, Switzerland, 2019; pp. 149–168. [Google Scholar] [CrossRef]
- Li, M.; Lal, C.; Conti, M.; Hu, D. LEChain: A blockchain-based lawful evidence management scheme for digital forensics. Future Gener. Comput. Syst. 2021, 115, 406–420. [Google Scholar] [CrossRef]
- ioBUILDERS Blockchain Tech & Ventures. Khipus, Deja Huella Con tu Móvil. 2018. Available online: https://khipus.io/ (accessed on 10 February 2023).
- Santamaría, P.; Tobarra, L.; Pastor-Vargas, R.; Robles-Gómez, A. Designing the Chain of Custody Process for Blockchain-Based Digital Evidences. In Blockchain and Applications, 4th International Congress; Prieto, J., Benítez Martínez, F.L., Ferretti, S., Arroyo Guardeño, D., Tomás Nevado-Batalla, P., Eds.; Springer International Publishing: Cham, Switzerland, 2023; pp. 225–236. [Google Scholar]
- Anne, V.P.K.; Ayyadevara, R.C.; Potta, D.; Ankem, N. Storing and Securing the Digital Evidence in the Process of Digital Forensics through Blockchain Technology. In Proceedings of the International Conference on Data Science, Machine Learning and Artificial Intelligence, DSMLAI’21, Windhoek, Namibia, 9–12 August 2021; Association for Computing Machinery: New York, NY, USA, 2021; pp. 272–276. [Google Scholar] [CrossRef]
- OpenZepellin Contracts. Available online: https://github.com/OpenZeppelin/openzeppelin-contracts (accessed on 10 February 2023).
- Arroyo, D.; Rezola, A.; Hernández, L. Principales problemas de seguridad en los smart contracts de Ethereum. In Proceedings of the XII Jornadas STIC CCN-CERT, Madrid, Spain, 12–13 December 2018. [Google Scholar]
- Manning, A. Solidity Security: Comprehensive List of Known Attack Vectors and Common Anti-Patterns. 2018. Available online: https://blog.sigmaprime.io/solidity-security.html (accessed on 10 February 2023).
- Grassi, P.A.; Garcia, M.E.; Fenton, J.L. NIST Special Publication 800-63. Digital Identity Guidelines. 2017. Available online: https://pages.nist.gov/800-63-3/ (accessed on 10 February 2023).
- Metamask. Available online: https://metamask.io (accessed on 10 February 2023).
- Labs, Web3 Web3j Project. Available online: http://web3j.io (accessed on 10 February 2023).
- JSON-RPC for Ethereum. Available online: https://github.com/ethereum/execution-apis (accessed on 10 February 2023).
- Open Blockchain. Available online: https://openblockchain.readthedocs.io/en/latest/API/CoreAPI/ (accessed on 10 February 2023).
- Truffle Suite. Available online: http://www.trufflesuite.com (accessed on 10 February 2023).
- Remix Ethereum. Available online: http://remix.ethereum.org/ (accessed on 10 February 2023).
- Google. Google Cloud Storage: Node.js Client. Available online: https://github.com/googleapis/nodejs-storage (accessed on 10 February 2023).
- Angular-Truffle-Dapp. Available online: https://github.com/ng-es/Angular-Truffle-Dapp (accessed on 10 February 2023).
- AWS Amazon. Cloud Data Migration. Available online: https://aws.amazon.com/es/cloud-data-migration/ (accessed on 10 February 2023).
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2023 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Santamaría, P.; Tobarra, L.; Pastor-Vargas, R.; Robles-Gómez, A. Smart Contracts for Managing the Chain-of-Custody of Digital Evidence: A Practical Case of Study. Smart Cities 2023, 6, 709-727. https://doi.org/10.3390/smartcities6020034
Santamaría P, Tobarra L, Pastor-Vargas R, Robles-Gómez A. Smart Contracts for Managing the Chain-of-Custody of Digital Evidence: A Practical Case of Study. Smart Cities. 2023; 6(2):709-727. https://doi.org/10.3390/smartcities6020034
Chicago/Turabian StyleSantamaría, Pablo, Llanos Tobarra, Rafael Pastor-Vargas, and Antonio Robles-Gómez. 2023. "Smart Contracts for Managing the Chain-of-Custody of Digital Evidence: A Practical Case of Study" Smart Cities 6, no. 2: 709-727. https://doi.org/10.3390/smartcities6020034
APA StyleSantamaría, P., Tobarra, L., Pastor-Vargas, R., & Robles-Gómez, A. (2023). Smart Contracts for Managing the Chain-of-Custody of Digital Evidence: A Practical Case of Study. Smart Cities, 6(2), 709-727. https://doi.org/10.3390/smartcities6020034