DIGIT has developed a Blockchain-based notarisation proof of concept for log files and documents. The main functionality of the system is to notarise any kind of digital content by creating a unique hash (fingerprint) of any digital document format and to store this hash in a distributed and decentralized ledger.
This POC considers two processes:
- Notarisation: this process aims at securely registering data associated with selected files, in a view to ensure in time their integrity, authenticity, ownership and time of creation.
- Verification: this process aims at verifying the integrity, authenticity, ownership and creation time of files that have been previously notarised.
The Notary POC is composed of:
- an API, which exposes the notarisation and verification services to machines
- a web interface, which exposes the notarisation and verification services to human users
- a smart contract component stored on the blockchain itself, which interacts with the blockchain client
(all documents attached)
The user chooses a particular document or another electronic file for timestamping on a selected blockchain.
The file is processed in the user’s browser to derive the SHA256 hash, which is essentially a one way conversion of the arbitrary large file to a fixed 32-byte data digest.
The hash is transmitted to Notary’s server. A transaction is then carried out in order to post this hash on the chosen blockchain.
In this way, the hash is permanently recorded on the blockchain and linked to a particular point in time. This hash can only be linked to the original content of the user’s electronic file, thus also linking that file with the particular timestamp.
It is noted that this link can be verified by anyone without reference to any centralized service or authority (the blockchain is maintained in a peer to peer network by an extremely large number of nodes and its data is readily available to anyone).
When the verifier what's to check the integrity, authenticity, ownership or timestamp of a notarized document, it has to be in the possession of the original document, to upload it again in the Notary server and to get the hash. The Notary server will automatically query the blockchain and the smart contract and will return the answer if that hash is already registered or not. In case of a previously registered hash, the Notary server will return the initiator address and the timestamp.
Repository: https://github.com/educoin/notarypoc