-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FROST key storage format #8
Comments
Would you like to share them? |
Just confirming i'm on the same page here, is this referring to what data is to be stored, rather than how it would be stored (format) like https://github.com/jonasnick/bip-frost-dkg/issues/5? I've been thinking about the concept of a polynomial identifier that allows parties to determine whether their secret share is "compatible" with another party's. Particularly important later for frost extensions with different structures controlling the same secret, such as subsets of parties doing things like key-rotation or enrollment. One idea is to evaluate the public polynomial at some standard compatibility-index |
This is about what and how applications should store the public FROST key not user backups. I mentioned in the OP the share as well but I guess that's pretty straightforward!
Yes! Taking a relevant point from the current spec:
This is what we have implemented atm but I think returning public keys for individuals and the shared public key is suboptimal if we keep an eye on the future. You can just return (and persist) the public polynomial from which you can generate each verification share (this obviously includes the public key too). This makes invalid states unrepresentable (e.g. the
Just storing the polynomial and lazily producing the verification shares means we don't change the persisted data over time (at least until the actual access structure changes). Of course the downside is that the verification shares take a
I think it would be better just to hash the polynomial coefficients. Two polynomials can have the same value at |
Interesting idea. This also slightly helps in an EncPedPop recovery when you've only backed up secret data. Instead of asking for @LLFourn Can you explain
In what scenario does this help? |
Just in general the representation that makes invalid states unrepresentable is usually the right design choice. In this case it excludes the possibility of verifying correctly |
What are applications meant to store on disk to persist the FROST key and share.
I have ideas about this but just noting this down since it's probably in scope for this spec.
The text was updated successfully, but these errors were encountered: