What if CoinZdense comes too late: A little (unfinished) just-in-case tool for preparing for quantum-event disaster recovery.

in HiveDevs2 years ago (edited)

If you haven't seen my talk on my CoinZdense project yet,CoinZdense is a slow going but ambitious project that aims to create a collection of hash-based signature and key-management libraries meant for Web3 ecosystems.

I had a few really interesing discussions about my project at #hivefest, including one about the question: *What if my solution comes too late? *

My idea was: It won't be too late, there is time enough. But then an other subject came by, that without funding, the project will continue to go very slow, and maybe the creation of a quick and dirty solution that could aid in disaster recovery could show potential project funders something concrete.

So that is what I've been doing this week. I've burned about 18 hours this week on a little set of tools that could soon act as a little demonstratorof quantum-event disaster recovery.

I just pushed some code and put it on pypi. It's not much yet, I hope to complete the code in a few days to have a full and functioning demonstrator that (I hope not because that would mean CoinZdense will become a failure) might one day help attenuate the damage from a quantum-computing compromize event on HIVE.

So what is the idea of this little set of tools? Basically we create a one-time hash based signing key that is derived from the same master key (or alternately is created from randmness). The public key of this one-time signing key is then signed with the OWNER key and is added to the account JSON.

Now if many users would use this tool (or the functionality could get integrated into keychain, maybe, and into scripts and tools that create new users), in the event of a suspected quantum compomized chain, the last trusted pre-event version of this info could be used for one purpose and one purpose only: To sign the public key for a new hash-based-signing OWNER key.

For now all the tool does is ask for the master password, create a new one-time private disaster recovery key, derive the public key, , sign it with the OWNER key, and post it into the account JSON.

A little walkthrough:

pip install hiveqdpr

After the tool is installed, we can invoke it. In this case I use my @croupierbot account:

hqpdr-userpost-masterpass croupierbot

The tool will ask for the master password, or alternatively we can call:

hqpdr-userpost-randomkey croupierbot

In this case the tool asks for the owner and the active key. The owner key is used for signing the disaster recovery key, the active key for posting it to the account JSON.

If we now look at the hiveblocks page for @croupierbot, we see the coinzdense_disaster_recovery object with a pubkey and a signature.
image.png

In the comming days I'm going to extned the tool to also demonstrate the actual disaster recovery signing and validation, and prove that what it does now makes some actual sense.

I'll write an other post when the functionality of the tool is complete.

This is a little side-track for the main CoinZdense project, but I'll eventualy integrate it.

Support the CoinZdense project

As I mentioned in my talk at HiveFest, CoinZdense is a one-man and unfunded project. You can help support the project by buying project support tokens on hive-engine, by helping out looking at the 1995 style project website, or by advocating with the different target Web3 ecosystem communities.

So far the project has received roughly 4 HBD from sale of project support tokens on hive-engine and from a tiny Paypal donation on the tipping-jar page.

I would really like to spent some structural time on this project, so all donations and support are highly welcomed right now. I hope this little disaster preparation tool shows everyone with some concrete and functional, be it very limited code that CoinZdense is a project deserving of your tips and donations.

Sort:  

*too late

(In the title)

Dear @pibara,
May I ask you to review and support the Dev Marketing Proposal (https://peakd.com/me/proposals/232) we presented on Conference Day 1 at HiveFest?
The campaign aims to onboard new application developers to grow our ecosystem. If you missed the presentation, you can watch it on YouTube.
You cast your vote for the proposal on Peakd, Ecency,

Hive.blog / https://wallet.hive.blog/proposals
or using HiveSigner.

Thank you!