TLDR;
I locked myself out of Keybase 🦝
If you get a message from juniperspring
on Keybase, don't trust it.
I might make a blog post about Keybase at some point.
Or maybe I just took over this Github account... ;)
Proof of time:
- Current Bitcoin block height: 760,576
- Block hash: 000000000000000000023ba95f71d7ef637b1510d25e867a2ce1f9786bbe59e4
I lost access to my Keybase account.
I was playing around with the CLI and ran the following two commands:
keybase account lockdown
keybase logout
Apparently those are bad commands to run when you've revoked all other devices and forgot your Keybase password. I still have keys for one of my devices, but AFAIK they're encrypted with some secret derived from my Keybase password.
- It's cool and demonstrates some creative solutions to hard problems (p hard, not np, but still)
- It's useful as a public record
- AFAIK, no good read-only clones of the Keybase API data exist
- There's plenty of good metadata within Keybase's public history
- But I don't want to be dependent on Keybase's servers to access it
- Keybase should have third-party equivalents to things like Bitcoin block explorers
- The fact that no such clones exist evidences a lack of interest in Keybase imo
- It's heavily centralized, at least in that it requires a central server to track changes
- They store the Merkle tree (well, "forest") root hash in the Stellar chain
- But that root hash is for auditability (fork resistance) rather than data persistence
- AFAIK, Keybase's utility decreases massively if their servers go down
- It's owned by Zoom now
- Zoom bought Keybase to advertise cybersecurity to gullible investors
- Zoom's C suite is more interested in Zoom than in maintaining Keybase
- The Keybase docs are scattered and full of dead links
- This is a good lesson in keeping docs in source control; docs should be foss
- Zoom should maintain the Keybase docs but they won't because they don't care
I hereby claim:
- I am librick on github.
- I am juniperspring (https://keybase.io/juniperspring) on keybase.
- I have a public key ASDGEIeNecwCT_YxFy6_aLl5xrtvU8qJImDTknXaOklugQo
To claim this, I am signing this object:
{
"body": {
"key": {
"eldest_kid": "01204ebd606d2637c6be99c3329a68465e201b075731a7fae1ce2565388c56726be90a",
"host": "keybase.io",
"kid": "0120c610878d79cc024ff631172ebf68b979c6bb6f53ca892260d39275da3a496e810a",
"uid": "8a86aa096441ceafae16f84849cc4319",
"username": "juniperspring"
},
"merkle_root": {
"ctime": 1664389266,
"hash": "f1a16f5198085ab5ed083917d54c585f511821b66f3a63f52f660fbc27c07d3e62d0dd102cc92e6e4a7dd77de3074dc6683a3ac0e6071ea0fc27f9481c59240b",
"hash_meta": "67bab1590ec821b2d8e0503a0fcc755a482c93310674c0c66de130eefbfe74ec",
"seqno": 23276182
},
"service": {
"entropy": "hips0F+RHfrxR11xDkuSk5JC",
"name": "github",
"username": "librick"
},
"type": "web_service_binding",
"version": 2
},
"client": {
"name": "keybase.io go client",
"version": "6.0.2"
},
"ctime": 1664389280,
"expire_in": 504576000,
"prev": "c87edf3e980a344ebc43323ade6b3f8d708f7c7fcf58f72dbc8ed7d222deadb3",
"seqno": 33,
"tag": "signature"
}
with the key ASDGEIeNecwCT_YxFy6_aLl5xrtvU8qJImDTknXaOklugQo, yielding the signature:
hKRib2R5hqhkZXRhY2hlZMOpaGFzaF90eXBlCqNrZXnEIwEgxhCHjXnMAk/2MRcuv2i5eca7b1PKiSJg05J12jpJboEKp3BheWxvYWTESpcCIcQgyH7fPpgKNE68QzI63ms/jXCPfH/PWPctvI7X0iLerbPEIDxQZqG8GWTPwoa53DIjJV1V6qb4l5vVgPR1+9+86cLGAgHCo3NpZ8RAnRgjcb7PaTFE7FzJKrM2DM6xYl0wtB/2uyxKIBvjnlPURNj971v5fVnUxvmElVffXyrQvY6d6eCyYfTKY0MmC6hzaWdfdHlwZSCkaGFzaIKkdHlwZQildmFsdWXEIHXsibcRHnYiN983lxvWIRlMPCXBb2KTUItALbO/FFzuo3RhZ80CAqd2ZXJzaW9uAQ==
And finally, I am proving ownership of the github account by posting this as a gist.
https://keybase.io/juniperspring
Consider the keybase command line program.
# look me up
keybase id juniperspring
juniperspring is digitally stateless now 😔⛵
unmoored and untethered from Keybase, my account lives on in Merkle forest hashes,
floating among memos on the Stellar chain