-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Extended MultiSig #700
Comments
Like SHA1, SHA256, HASH160, HASH256 i think that this could be Syscalls too |
The more interop would make NeoVM more flexible for us... less strict (and less opcodes) is much easier to maintain. But we need to clearly define what is "unremovable" from NVM, and leave it there. But I'm still in favor of a extended multisig, even if it's part of CHECKMULTISIG (perhaps it's already better to start there). |
Propose again in a different format, in the future. |
I think the general idea still applies: we should have some "CheckMultiWitness", to complement crypto-specific MultiSig. Besides This general approach can help designing multisig that are easier to compose (one party may use secp256r1 while other uses secp256k1), even when parties are distant: #1573 |
An important kind of multi-sig is currently missing, that's why we propose an Extended MultiSig.
Current MultiSig uses an array of publickeys and a limit number, to pass only if this number of signatures is validated against the pubkeys.
An important change would be to accept an array of scripthashes (instead of pubkeys), so these are also validated against existing witnesses.
This is better in many ways: better privacy for multisig users; more flexibility on individual witnesses (part of the multisig). Using this, we can even compose multisig together, embedded in others (with some practical applications even for consensus algorithms).
So, one proposal is to create a native contract for this:
Neo.Native.CheckMultiSig
.Why not change existing NeoVM CHECKMULTISIG?
I believe this opcode can be abolished on Neo 3.0, as previously discussed: neo-project/neo-vm#122
And anyway it would be better suited to the ApplicationEngine (NeoContract), because it depends on the Witness system.
Using the same logic, we can already create:
Neo.Native.CheckSig
(and deprecate opcode CHECKSIG).The text was updated successfully, but these errors were encountered: