ipfs / notes

IPFS Collaborative Notebook for Research
MIT License
401 stars 30 forks source link

Use Case: Distributed Identity Data Storage #423

Open Harryman opened 7 years ago

Harryman commented 7 years ago

I wrote a paper on solving the distributed identity problem, HashD. The paper needs revision to adapt to Peter Todd's Open Timestamps Protocol but you get the idea.

The short version: Private proof of work blockchains which are signed by their owner's private key. These chains contain all of the identity's data. By sharing parts of their blockchains with other identity blockchains which incorporate those messages into their own chains any changes in history can be identified. The proof of work function adds a known cost function to identity generation which limits the creation of entirely fake dishonest networks. This would more or less create one large interconnected verified data structure. It would also allow identities to prove that they published a work before anyone else and since the identity would also be authenticated by the protocol payment information could be requested from the identity.

Only in the last year have I started paying more attention to IPFS and I think it would be the perfect candidate to build an alpha client for HashD on top of.

My main concerns are performance and security.

Since when trying to establish trust with a new identity or verify a fact you will likely need to take many hops. Identity chains can have lot of information on them, anything anyone could create and share, all of which is protentially searchable. At each hop identities will need to search their blockchains for any information that is requested. Is this something that orbitDB would be good at doing?

I haven't seen much activity at https://github.com/ipfs/specs/tree/master/keystore lately and was wondering where that is on the roadmap?

If anyone wants to collaborate on this project or give feedback that'd be great. After I finish a couple current projects in the next 2 months I'm going to work on it full time will be offering lots of Bitcoin bounties to collaborators.

muneeb-ali commented 7 years ago

@Harryman Ah interesting. Have you seen the Blockstack paper at USENIX'16? I believe you're building an identity layer without human-readable names using blockchains as a trust anchor and Blockstack first implements human-readable names and then attaches identities to them.

Harryman commented 7 years ago

I hadn't read those papers yet, very interesting though now that read through them. HashD actually can attach arbitrary data, one of which could be human readable names, reputation scores, images, etc... The amount one can store is also arbitrary because here every identity is its own block chain which doesn't have to be synchronized with others, only data that needs to be verified will get shared. One key feature of using the PoW algo is that this system allows anonymity and identity because PoW acts as a primitive spam filter which doesn't have to be trusted and gives the system censorship resistance.

sidhujag commented 7 years ago

I wrote decentralized identity in Syscoin, I would like to share ideas with you Harryman if that is possible. You can read my paper at whitepaper.syscoin.org essentially working off of the namecoin concept, but IPFS can be used to anchor encrypted profile information, signed by witnesses to allow for you to prove to others that your profile is correct and verified. I'm not sure what the usecase for establishing trust is other than encrypted/decrypting to identities that you deem are trustworthy?

Harryman commented 7 years ago

@sidhujag read through a fair bit of your whitepaper. Would like to discuss, hit me up info@hashd.in and we can set up a Skype call or something.

ydennisy commented 6 years ago

@Harryman this is quite an old thread but digging it up as this still exists, interested to hear if you have progressed with this project?

AdvaithD commented 5 years ago

Wondering the same @Harryman