Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Stamp – A Cryptographic Identity System
9 points by orthecreedence on Sept 8, 2021 | hide | past | favorite | 5 comments
Hi, everyone. Been playing around with this recently as a sort of PGP successor. It's not all there yet, and I know it's missing some things from PGP, but I figured why not get a start and see what kind of interest/support it might get.

https://stamp-protocol.github.io/

Effectively, this is a key management system that allows building and signing ("stamping") various claims about yourself and about others. The eventual goal is to create easy-to-use implementations of the protocol that allow logging in to websites or managing cryptographic keys for various security-conscious applications. Secure, simple distributed key management for cryptography and identity management.

Currently Stamp uses crypto primitives found in libsodium, but is also built such that different algorithms can be added as needed.

The identity itself is set up as a DAG which is appended to by signing transactions with an opinionated set of keys. A DAG was chosen so parallel offline updates could be made and merged later. One of Stamp's main features is it allows recovery of the identity via a pre-determined recovery policy, using signatures from trusted keys (friends, family, institutional providers). Think of it as sort of a multisig recovery mechanism.

A few things I'm actively exploring:

- A storage network (https://stamp-protocol.github.io/#arch-stampnet). This would necessarily need to be some sort of p2p system, and hopefully not blockchain-based as I believe the consensus/validation used in blockchain systems are superfluous to identity storage and retrieval.

- Putting stamp on USB keys/embedded devices (ARM TrustZone, RISC-V PMP, etc) so it can be used in more trusted environments.

- Some sort of FIDO2 interop would be great so Stamp could act as a login system without having to re-tool a bunch of stuff.

There's also a somewhat-incomplete CLI implementation of the protocol here: https://github.com/stamp-protocol/cli. This allows creation of identities, creating and stamping claims, automatic verification of certain claims (www/DNS), as well as cryptographic messaging/signing tools.

Let me know what you think! What's good, what's bad, what's missing, etc. Obviously it's early days so more feedback is better.



I really like the idea and am building a similar thing with Bip39 instead of libsodium. I dont know why us software people always start with identity as the intital entry point into a new paradigm.

I agree with your implementation and because am building a similar thing, see issues with getting people to use it the same way no one uses pgp.

I suggest take a look at flow, or dapper auth and tell me what you think. Why not start with a usecase, any usecase to get real folks to play with this?

Down to working together and/or using stamp instead of bip39 in my own project


Hey, I'd love to connect more about what you're working on and definitely collaborate. I'll check out flow and dapper as well, thanks for the suggestion.

For me, identity keeps coming up not just in my own projects, but also in other places I'm seeing as well. Almost every decentralized system/protocol I've come across has invented its own identity system, and boiling that down into something that's a) like PGP but actually easy to use and b) takes most of the useful parts of the identity systems in other protocols seems like it would be really helpful.

Do you have code posted for you project? I'd love to look.


So it's distributed blue checkmark verification by the people for the people. Interesting but I'm not sure how a distributed social network can work or how this stamp system will always benefit me considering how the system can be used/abused.

The way you say social forwards might work suggest your system would make it so what happened to Trump can't happen to anyone else, that he would "own" his followership, take it with him, so it can't be taken away. That's a nice idea but that would require the social network to allow (or not disallow) this open distributed checkmark system in some form, wouldn't it? If allowed, this would only encourage the exiled party to create a new account 1:1 on their system, effectively hindering their own moderation efforts. Aren't the social networks just more likely to share their stamp blacklist now it's so accurate? Then imagine how hard it is to appeal a distributed blacklist.

Even on traditional social media, you move to a new HN profile after being banned, you can never prove you are the same identity again on HN because HN will just ban you again after looking up your stamp regularly. Unless I am misunderstanding, using stamp means I would lose power across the board on pseudo-anonymous social network providers by revealing who I am even once. Quite the disincentive there. Even a phone-validated email requirement seems better long-term in a ban happy world because sim cards obscure private data, are easily obtained, and email chains discreetly.


> So it's distributed blue checkmark verification by the people for the people.

You could look at it that way.

> The way you say social forwards might work suggest your system would make it so what happened to Trump can't happen to anyone else, that he would "own" his followership, take it with him, so it can't be taken away.

Basically, yes.

> That's a nice idea but that would require the social network to allow (or not disallow) this open distributed checkmark system in some form, wouldn't it?

The idea is that this is a useful system for other distributed/decentralized systems, not so much for Twitter/FB. Sure, centralized systems could use it if it got critical mass, but yes in general it requires integration.

The goal is really to build a system that abstracts away the need to build an identity system in other systems.

So this was built with things like Mastodon in mind: right now, if I move servers, I leave my network behind. There's no real mechanism for moving my network with me, and many other distributed/decentralized networks suffer from the same issue.

> If allowed, this would only encourage the exiled party to create a new account 1:1 on their system, effectively hindering their own moderation efforts.

More like, they can spin up a new account on another instance that will have them.

But also, if I am sick of seeing messages from Trump, I can simply block Trump's Stamp identity and then I wouldn't see his messages no matter where he is. I tend to favor more p2p approaches where possible, meaning the idea of banning someone is not really a thing, and rather individuals are free to (dis)associate with each other as they see fit.

> Then imagine how hard it is to appeal a distributed blacklist.

It's as easy as appealing to one participant in the network given that they would all have to agree on the blacklist. This is in contrast to centralized systems where once you're banned, you're gone forever.

> Unless I am misunderstanding, using stamp means I would lose power across the board on pseudo-anonymous social network providers by revealing who I am even once.

On centralized systems, yes. But they likely wouldn't care about Stamp anyway. On decentralized systems, you lose nothing while gaining the ability to have your network follow you.


Interesting, would be nice to combine webauthn into this stamp project.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: