Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

ActivityPub is "sufficiently decentralized" in my book. I don't consider decentralizing name registry a requirement — DNS is a sufficiently decentralized name registry we already have and know how to manage. I don't consider cryptographic keys a viable form of identity because they absolutely inevitably leak into the UX and hopelessly ruin all of it. To add to that, as someone who has worked in a real-world popular social media company, I can assure you that account recovery is not something "nice to have", but rather a hard requirement — and it's impossible, by design, in a public-key-crypto-based system.


> and it's impossible, by design, in a public-key-crypto-based system.

I am working on a project where this is a very definite possibility: https://stamp-protocol.github.io/#arch-recovery


I'd really love to see this sort of thing over Bluetooth between cell phones. It feels like an interesting opportunity for worker solidarity.


Odd you should mention, this project is being built as sort of the cryptographic foundations of another protocol adjacent to the idea of worker solidarity.


> account recovery is not something "nice to have", but rather a hard requirement — and it's impossible, by design, in a public-key-crypto-based system.

Can you give some examples of acceptable account recovery systems?

Do they involve either giving up privacy (with government-issued IDs, for example), or delegating the problem to another system like email?

If email is an acceptable system to base account recovery on, then couldn't users just store their recovery private key in an email sent to themselves (or saved as a draft)?


> Do they involve either giving up privacy (with government-issued IDs, for example)

Sometimes, yes. But then presenting a government-issued ID is kinda inescapable — this is also a requirement for participation in crypto. You can't buy cryptocurrency without KYC. And you sure as hecc need some sort of tokens for these "fully decentralized" identity schemes because they inevitably are a cryptocurrency with extra functionality duct taped to the side.

> or delegating the problem to another system like email?

That's also an option.

> If email is an acceptable system to base account recovery on, then couldn't users just store their recovery private key in an email sent to themselves (or saved as a draft)?

And if their email account is broken into and the private key gets into someone else's hands, how exactly do they prevent potential impersonation without starting a whole new online life, ideally without their followers even noticing?


> these "fully decentralized" identity schemes ... inevitably are a cryptocurrency with extra functionality duct taped to the side.

I've not actually used BrightID[0], but my understanding is that you can use it without needing to buy any of their tokens. So it's more like a web-of-trust identity scheme with a cryptocurrency duct taped to the side. (Also I think that buying cryptocurrency without relying on a government-regulated business is probably more common than you're suggesting).

> if their email account is broken into and the private key gets into someone else's hands

This is the same problem that all existing social networks (and probably some government services in some countries) are already vulnerable to. I think a decentralised social network can offer meaningful improvements in user freedom and privacy without also solving every other online/computer security problem in the world.

> starting a whole new online life

In the case of BrightID, you can set up "social recovery"[1] which uses the social graph to allow you to regain access to your account.

[0] https://www.brightid.org/

[1] https://brightid.gitbook.io/brightid/setting-up-social-recov...


I think this is a very narrow view of the issues.

There are a lot of issues with DNS - fights over limited names/squatting, per-country rules depending on TLD, unreliability of registrars (see the thread every 6mo "what registrar should I use" with horror stories about every single one), and the fact that once you've chosen a name it's hard to change. I'm not going to claim that cryptographic keys don't leak into UX because I don't know, but I'm not sure what experience you have to guarantee they do. The only system I know of that heavily relies on keys is cryptocurrencies, which aren't social networks and are only one example (and TBH seem to be doing alright in the UX department).

Account recovery essentially means you have a backup method to gain access if you lose your key or it's stolen. There are many ways to accomplish this, many of which work fine with public key crypto systems: 1. If you're just worried about losing it, backing up your primary key, 2. A backup master key/subkey system with revocation, 3. An opt-in service that manages network access for you (including your keys) and provides human recovery mechanisms. The latter is essentially what you get with non-crypto methods but allows decentralization.


DNS also has the advantage of having won "the test of time" so we know it's not going away anytime soon.

A phenomenon sometimes referred to as the Lindy effect:

https://en.wikipedia.org/wiki/Lindy_effect

I'd be picking this time-tested tech as a foundation over anything else being pitched these days (who knows what their longevity will be).


> and it's impossible, by design, in a public-key-crypto-based system.

I think anyone believing otherwise should spend a few months as front-line tech support dealing with forgotten passwords and then (perhaps) reconsider.


I encourage you to try FIDO2 login which, because of cryptography, can allow you to login with one finger press. No passwords. No password managers.

Better UX and better security.


'impossible, by design', unless you implement multi-signature keys for account recovery


"account recovery is ... impossible, by design, in a public-key-crypto-based system"

I think, the Torus/web3auth people do it.


> and it's impossible, by design, in a public-key-crypto-based system

You can walk back on the security preventing account recovery by giving your keys to a third party. This is essentially the same as not having the security guarantees in the first place - and it's optional and you can choose who to give the keys to!


account recovery is very possible with smart contracts and public-key crypto


So how do you do it? Who would override the authentication mechanism and reset your key? How would that person authenticate? How would you keep your identity when your public key is your identity? How would you stop someone using your leaked private key to impersonate you?


a simple mechanism is using a smart contract to map your key (0x123) to an identity (@alice). the contract can allow you to transfer that identity to a different key (important for key rotation) and also to set up a recovery key that is also authorized to transfer the key if the primary key is lost.

our recovery system for Farcaster has a few more bells and whistles, and you can read about it here: https://github.com/farcasterxyz/protocol#33-recovery


So it's just pushing the problem a bit further away by hiding your real key. See, you have to be able to recover your account even if you've lost every single of your electronic devices. Every one of them. Including flash drives. No data. No backups. None. Zero bytes.

The fundamental problem with keys is that they are files. You can't exactly memorize one, not without torturing yourself. You have to store them somewhere extremely reliably but at the same time completely secretly.


The point here is that self-hosting is _possible_. Most users are almost certainly going to just let a third party host their keys. But if keys are identity primitive at the protocol level, then the protocol prevents full centralized platform capture, similar to email interop.


The key being the identity still has the problem of not being changeable, no matter how you spin it.

Self-hosting is possible with ActivityPub as well, but without sacrificing the user-friendliness. I can already see someone saying "what do you mean I have to start a new account after my private key leaked".


> See, you have to be able to recover your account even if you've lost every single of your electronic devices. Every one of them. Including flash drives. No data. No backups. None. Zero bytes.

Well 12-word mnemonics help here right? It's imperfect, but certainly is as good as most 2FA implementations use for account recovery.

There are alternative approaches people are trying too. For example Coinbase[1] is trying a MPC approach where you delegate two (or more?) people known to you and if they agree it can recover your account.

But this is done using secure multi-party computation so the unencrypted key is never stored - it is only decrypted by the person doing the recovery when all the other parties agree to provide their tokens.

[1] https://blog.coinbase.com/threshold-digital-signatures-1d467...


here's an example that might help -- you can allow key A to own your identity and key B to move your identity to another key. But key B can only move the identity after a time delay if key A does not cancel it. So key B is not your "real key" -- as long as key A is around it is an inferiorly permissioned key. But if Key A is missing then key B becomes the real key.

the key insight is that smart contracts can be used to transmute keys from single points of ownership into a distributed set of permissions.

you can compose a whole set of recovery systems with this primitive - key B could be your ledger or it could be a friend or it could be a third party service that offers "recovery as a service" where you have to call them and prove your identity before they will recover it back to you.


This doesn't really solve the issue though - it just moves it to trying to recover another key.


> Ownership remains decentralized because the recovery address cannot make a transfer that the custody address does not approve.

This isn't true though?

If I go out camping for a week and the recovery address transfers my identity, I won't be asked to approve; it'll simply go through after waiting 3 days.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: