Continuing the discussion from Proposal for a Zcash Governance Bloc (“zBloc”), to separate the tech-for-governance discussion from the governance discussion:
(My opinion and not Zcash Foundation’s)
I also think FROST (" Flexible Round-Optimized Schnorr Threshold" a threshold signature scheme, similar to a multisig, which works for shielded wallets) is the perfect fit to being used in a non-direct funding model where a t-of-n quorum of parties decide to fund grants, where they can run FROST to sign the transaction that would fund it. (If you’re unfamiliar with FROST I recommend reading Understanding FROST - The ZF FROST Book). I believe its downsides are not blockers for this scenario:
- Lack of robustness: this means that a member can refuse to participate in a signing sessions, and this blocks the session from completing even if there are more than the threshold number of participants willing. It’s not a big deal because this can be detected: the Coordinator will know that a member is not cooperating, and can simply re-run the signing session without them. I also just realized that this would be also part of the regular process: if a member does not approve a grant they also would end up stopping the process anyway. (So in practice it may be better to poll the members beforehand and run a signing session with just the members that intende to approve). Additionally, members who did participate can show their signining share (which can be verified by anyone if verifying shares are published), so if a malicious Coordinator is claiming someone refused to participate, that someone can show their signing share and disprove it.
- Attribution: as Pacu mentioned this can be solved by using verifying shares, it just wouldn’t be able to be validated onchain (which I don’t think is required anyway)
Also, we just managed to get the “Nested FROST” proof of concept working, where each party/org would also use FROST to generate their signing share in a share-of-shares approach, so I’m sure that is a possibility too.