The project implemented a Lightweight and Manageable Architecture of Decentralized Digital Evidence Preservation System Coded in Java, which can protect user's digital evidence by creating proof of existence and proof of audit on the Bitcoin blockchain.
We use bitcoinj as the core library of our project, and take Netty as the Network solution. Convenient GUI is designed using JavaFx to offer user a clear undertanding and use of the software. All the functions provided by the software has been tested successfully on the Bitcoin public test network--Testnet3. To build a open and stable service, the code need to be further optimized and checked.
There exists three entities in the architecture:
the client for user to submit and manage their digital evidence safely and efficiently, here are some demos of the client:
Offline Evidence Submission and Handling
Logon Module of Client
Online Evidence Management for Client
Forensics Work on Client
the public server to receive requests from clients and broadcast standard Bitcoin transactions to achieve the proofs, here is the demo of the server:
Server
The audit end is to assist legal institutions to give audit to the evidence preserved on the blockchain efficiently and securely, here are some demos of the audit end:
Audit Key Management
Evidence Auditing
By accessing one certain user address on Bitcoin Testnet mrpxgT7v2xqUnDFy8Haz92LLgwpduEsz98, you can see the raw evidence-proof txs and audit-proof txs generated by various type of services during the test of the software.
Special thanks for Mike Hearn and his tutorial on Youtube which inspires us a lot on the software implementation of the architecture.