Closed gsovereignty closed 6 years ago
I like this one, and the approach is perfectly fine. @emurgobot claim
Just one question about the deadman switch, do you have a suggestion what would it be? For example, it could be failure to login in, let's say, 14 days, failure to respond to a notification or an email, failure to enter a code of some sort every now and then or something similar.
I guess the deadman switch should be independent of blockrazor, since the decryption key can't be stored in the codebase anyway.
What blockrazor should do is look for a decryption key in mongo and if it exists this triggers the voting process. Voting can be super simple but should require users to be in the top 90% of Krazor holders (based on wallet balance) to prevent fuckery. I guess copy the balances to a new collection to make a snapshot and verify against that to prevent people from just quickly buying and depositing krazor to make a vote.
If you get the voting part to work I'll do the rest.
You're right, it would be better if it's independent. Ok, I'll start working on the voting system.
Done in #1971.
Deadman switch should insert a record looking like this:
{
decryptionKey: 'key'
}
to encryption
collection and it'll trigger the voting system. It uses a cron job to check whether the switch was triggered every hour.
@emurgobot done
Problem: blockrazor needs to be totally transparent and open, but there are sometimes things that cannot be made public, such as passwords to third party services, server ssh credentials, etc. The problem is that going forward, I am a single point of failure if I'm storing all this data myself and no one else has access to it.
Solution: this is the best I've come up with so far: place an encrypted file stored in the source code which can easily be updated at any time through git. A deadman switch triggers a mongo insert with the decryption key. If a decryption key is found in the database, a vote is initiated allowing the community to vote for who the keys should go to.