Conversation
|
In starting to review this, I'm surprised that FROST signing is the first thing that was implemented, because in order to perform signing we need to have keys in the wallet database, and in order to have those keys we need the DKG process implemented. Is the DKG on your agenda for implementation in the devtool? |
As it stands, the keys need to be generated with The goal of this PR is mostly to do a proof of concept and gather feedback on the overall idea and the API. I agree that if we go forward it would be better to move to the DKG first. If you also have any feedback on the key data storage, that would be helpful. |
The overall approach that we will want is: In the wallet backend (in the Then, the signing process should be integrated with the transaction proposal -> PCZT -> transaction finalization workflow. |
|
I've opened #150 which supersedes this PR with a complete FROST implementation, integration tests, and documentation. Implementation (behind the
Tests (17 tests in
Documentation (
This addresses the DKG gap noted in the review -- all functionality from |
This is just a proof of concept to gather feedback. The code is ugly; I'm looking for feedback on (1) is the API something acceptable? and (2) is this something that could be possibly merged after cleaning up?
I documented how to run it here: https://frost.zfnd.org/zcash/devtool-demo.html
Regarding the API, currently it is supposed to work along the
frost-clientCLI for the participants (and thefrost-serverin the same repo to handle comms), but if we want to go ahead it might make sense to add a new command for participants (pczt frost-signdoes the coordinator logic) so that usingfrost-clientis not required.Regarding what is currently missing:
frost-clientconfig file which stores everything in cleartext)