Good morning folks!
I’d like to share with you the project I’ve been working on for some time.
This is a blockchain stamp service running on gridcoins (proof of existence).
Proof of Existence (PoE) helps to prove that a certain document/file/media was created (existed) on a particular date and time. You can create a hash of any file (document, media, etc) and store the record in the blockchain. As all transactions are stored in the blocks which keeps time of creation and data in the blockchain is immutable it is nearly impossible to modify that proof. Hash represents the fingerprint of the file, so if any bit of a file gets changed the hash will be absolutely different.
You can prove that the document existed at a particular time by creating a hash of a document and finding the appropriate block in the blockchain which keeps that hash.
I haven’t seen it done for gridcoin, so I decided to deliver one.
How it works
Stamping documents:
- You choose the document you want to stamp.
- Service will calculate SHA256 of your file. We do not store your documents, we even do not send them to the server (you can check it yourself just by inspecting the Network tab), all we need is just the SHA256 hash of the file and it is done 100% on the client-side (in the browser).
- Service will submit the hash to the server, where we will bake a transaction with a unique signature (so later we can recognize this).
- Service will scan the blockchain and provide you back with a block and transaction id where the proof was stored.
Checking documents:
- You choose the document you want to check
- Service will calculate SHA256 of your file. Then it will search in the blockchain for proof of existence and if it is there, it will give back to you the block number, transaction id, and the time this proof was made. If proof doesn't exist it will offer you to create one.
Costs
The service at the moment is free of charge. To make the single proof it costs something about 0.001 GRC, so it is quite cheap (at the moment of writing this article) to make the transaction. I have no idea how things will turn in the future, so maybe one day I will change how it works (by introducing customer accounts may be), but for now, it is free as long as the wallet has some funds on it.
You can contribute by setting up a side staking, or by just simply donating to the service wallet.
Or you can use any public faucet and just set up the service wallet address as a recipient. It will help a lot, plenty of transactions could be made just for one single faucet payment.
The service wallet address is SHpqN8xEjy2HHTnAGfgJjwFThuqzLbBs6i
Further plans
Service isn’t yet finished, this is just a test run, I’d really like to have feedback at the early stage and actually to see the demand (if any at all). Things I consider adding soon:
- Create API documentation. API is open and in theory, you don’t need to use the service to notarize documents. You can use API directly and provide just a hash, the rest will be done under the hood.
- Create an About page. I want to describe the protocol, so at the end, you can bake transactions by yourself, no service is needed, but you will be able to make a proof of existence.
Anyway, there are a lot of different protocols doing the exact same thing. This is just one more implementation. - Make it mobile-friendly
- As soon as I will be happy with the code quality, I will open-source it. So I will want to do some refactoring and enhancements.
Ah, yes, here is the service address: https://stamp.gridcoin.club
P.S. If you are willing to praise the author, you can send some thanks right here: SJVaQcJriv7N8Py8eWjNUtWPTPBtDZashD