stacksgov / sips

Community-submitted Stacks Improvement Proposals (SIPs)
130 stars 80 forks source link

Sip 02x non sequential multisig transactions #152

Open jbencin opened 10 months ago

jbencin commented 10 months ago

While implementing Stacks multisig in the Ledger app (Zondax/ledger-stacks#152), I found the current multisig format confusing and hard to work with. Other developers that have tried to work with multisig seem feel the same way (example: PR #139), and as far as I know there is currently no Stacks wallet with full multisig support. So wrote up this SIP which makes slight modifications to SIP-005 to add a new multisig transaction type which is a bit simpler and allows participants to sign in any order.

AcrossfireX commented 9 months ago

@jbencin - can you comment on how this relates to https://github.com/stacks-network/stacks-blockchain/pull/3710 and its associated SIP draft? Is it possible to fold these into one shared SIP effort? Let me know if it makes more sense for them to remain seperate.

jbencin commented 9 months ago

@AcrossfireX That PR is now implementing this draft SIP. I know there is another draft SIP mentioning order-independent multisig (#139), but that one lacks implementation details

fess-v commented 9 months ago

I will close the previous SIP PR so we can move all discussions to this one instead @jbencin @AcrossfireX

AcrossfireX commented 8 months ago

This SIP should be considered Accepted from the SIP Editors and should progress to technical CAB review. (Likely already underway)

jbencin commented 8 months ago

One more small thing I want to add here...

Even though the signing order is independent, the order of the public keys in the auth fields still determines how the address is generated. For backwards compatibility and to enable previously generated multisig accounts to use order-independent signing, I don't think we should mandate public key order, but I think we should recommend a public key ordering of least to greatest (which is equivalent to lexicographical sorting of hex-encoded values) to remove the guesswork when creating a transaction

AcrossfireX commented 4 months ago

@jcnelson - would we be able to get this in front of the Steering Committee for final approval and merge as the activation points to it being ready for epoch 3.0? It has been approved by the SIP editors and Technical CAB and seems ready for final discussions by the Steering Comittee.

Also would you prefer that the editors assign a formal SIP number to this as it has not yet been chosen. It appears that SIP-026 would be available.

jbencin commented 3 months ago

@jcnelson I copied all the text from SIP-005's "Transaction Encoding" section and merged it with this SIP. This can now be viewed as a complete replacement for that section