This repository has been archived by the owner on Jun 3, 2020. It is now read-only.
Improving double-signing prevention #115
Labels
enhancement
New feature or request
help wanted
Extra attention is needed
security
Security-critical issues
This issue is for brainstorming better solutions for double-signing defenses which also tolerate the failures of one or more
tmkms
instances.Feel free to post your ideas in addition to the ones below:
Auditing/Reconciliation
Quoting @tarcieri from #60:
Collective Signing
Quoting @jleni from #60:
This is somewhat orthogonal to something like Raft, although could be done in conjunction with it and possibly coordinated by it:
I've seen some discussion of using some sort of multisignature algorithm and allowing k-of-n KMS instances to collectively generate a compact signature. This has several nice properties, including splitting the validator key material apart into several keyshares and require a threshold are compromised in order to recover the signature key.
For example, here is a three round protocol that computes RFC 8032-compatible Ed25519 signatures:
https://github.com/KZen-networks/multi-party-eddsa/wiki/Aggregated-Ed25519-Signatures#aggregated-ed25519-signature
There are many other options, such as Boneh–Lynn–Shacham which are more compact and support offline aggregation.
This approach would have the drawback of requiring more online KMS instances, but would have the advantage of splitting the consensus key apart into several keyshares. I think it might be a nice option for anyone who can operate 3-5 KMS instances.
The text was updated successfully, but these errors were encountered: