keybase / keybase/keybase-issues
Proposal: proof of existence system using sigchains
- Dominant language
- No language data
- Stars
- 899
- Forks
- 40
- PR merge metrics
- No merged PRs in 30d
Description
One can use services like https://proofofexistence.com to permanently record a document hash to be able to later prove its existence at given date.
Since keybase state is recorded in the Bitcoin blockchain, we could achieve similar feature by recording the document hash in user's sigchain.
I believe implementation would be quite easy by adding a new sigchain link type (something along these lines):
``` json
{
"type": "proof_of_existence",
"docs": [{"mhash": "multi-hash", "title": "optional title"} ...]
}
```
### Why this would be more convenient than proofofexistence.com?
First, I don't believe in future viability of recording proofs directly into blockchain. It could be too spammy/costly. Recording checkpoints of some shared "proofs" chain will be needed. And keybase has been doing exactly this.
Second, with proofofexistence.com, I still have to store the document somewhere safely. With kbfs, I could do signing, store encrypted documents and prove its existence all just using keybase.
### A typical workflow:
Alice and Bob have keybase identities and want to sign a document. Prior signing they look at the Bitcoin blockchain and include hash (H1) of current block (or few blocks back). Then they both sign the document.
Alice wants to store signed document with proof-of-existence using keybase. She encrypts the signed document by putting it into her private kbfs. Then she can create proof_of_existence of the encrypted file in her sigchain. Once that sigchain update gets baked into Bitcoin blockchain (H2) she has strong proof of existence. The document was provably signed not before H1 and not after H2.
Note: I'm not familiar with kbfs implementation. It may be the case that similar proof-of-existence of private documents could be achieved automatically, because state of kbfs is somehow accumulated in the merkle_root anyways.
[1] https://proofofexistence.com
[2] https://github.com/jbenet/multihash
Contributor guide
No contributing guide indexed for this repository
Research direction
The proposal mentions sigchains and KBFS but names no files, tests, or implementation entry point. Start by reviewing how sigchain links and KBFS state are represented, then determine the required design for document hashes, encrypted files, and blockchain checkpoints. Done would require an agreed scope and validation of the proof-of-existence workflow.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- blockchain
- Domain
- blockchain, cryptography, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100