Funding Proposal: Grin MultiSig

Yes, payment channels require 2-of-2 utxos, the simplest form of multi-sig. Other nodes cannot recognize these utxos, but will recognize the NRD kernels that can arise in channel closure.

3 Likes

Couldn’t threshold Schnorr signing be used to expand the 2 of 2 to larger groups?

this is the way.. now if we could pop the kernel..

I saw on the news letter there is such a bounty for a messaging program. Why has this not been done yet?

Any reason not to just use MPC? It would allow multisig usage with no changes to the protocol.

Before I can start implementing multisig in the core wallet I need some more details.

*what exact flavour of multisig is required m (M-of-N threshold, 2-of-2, aggregate Schnorr, shared outputs, etc?

*Which flows need to support it (output creation, spending, message signing, proof-of-reserves)?

*How should users coordinate-interactive rounds like existing Slatepacks, or some new API?

*Do we need on-disk storage or shared keys or co-signer service?

*How should the Cli/api commands and wallet configuration expose it?

Once those requirements are defined, I can map out necessary changes and start implementing.

2 Likes

For 1 I’m guessing we want M-of-N threshold so it’s similar to how you guys use btc multisig? (4-of-7?)

For question #2, I guess the required supported flows would be output creation, spending, and message signing ( or maybe just spending? )

For Q #3 imma thinking of just going with slatepack rather then tryna implement a new api method

For Q #4 I guess we’ll go with on-disk storage of shared keys, seems that most secure.

And for # 5 I guess we would need a new command added to the cli to expose the multisig ability, something like ./grin-wallet multisig

If anyone has any suggestions nows the time

1 Like

This is a work in progress, still need to make it cryptographically secure and a bunch of other things. This is an EXTREMELY rough draft.

Introducing ‘grin-wallet multisig’ CLI command with subcommands ‘init’ , ‘status’ , ‘sessions’ and ‘approve’.

grin-wallet multisig init!!!

I fricking did it boyeees! You are welcome!

Attempting to add cryptographic security thanks to the advice from @NicolasFlamel

Gonna go frost style as @Anynomous mentioned in the OP

Phase 2 complete!

4 Likes