pybitcointools icon indicating copy to clipboard operation
pybitcointools copied to clipboard

Multisig script is no longer valid: OP_CHECKMULTISIG(VERIFY) with non-null nulldummy

Open arhuaco opened this issue 10 years ago • 3 comments

Hello there.

I'm getting this error:

OP_CHECKMULTISIG(VERIFY) with non-null nulldummy: [48, 68, 2, 32, 62, -19, -78, 21, -25, -76, -2, -88, -75, -49, 60, 104, 53, 80, 23, 111, 40, 39, -109, 27, 35, -48, 86, 21, 80, 60, 37, 72, -112, 99, -98, 0, 2, 32, 29, -73, 28, 4, -31, -10, -61, -3, -85, -109, 10, 67, -116, 63, 58, 43, -44, -72, 54, 48, 81, -107, 54, -95, 5, 66, -30, 95, -16, 20, -4, 51, 1]

With this Counterparty transaction that I am signing. If I understand correctly, some rules changed and some scripts that used to be valid are no longer valid because Bitcoin core implementations are more strict now. See: https://github.com/btcsuite/btcd/issues/131

This is the signed transaction:

0100000001caa1cd766de01294451f1610a0a0136bc9176070f1c22494eb2e28443624aa8e00000000fd5d010047304402203eedb215e7b4fea8b5cf3c683550176f2827931b23d05615503c254890639e0002201db71c04e1f6c3fdab930a438c3f3a2bd4b83630519536a10542e25ff014fc3301483045022100a83b7b516982442700f350bdafa7aa10b91c7930aa05ca20dca82613670292d602207cda3992c1d224cfd0a2bf6b8b6d595e17a9abe1353795879b1e29d5507550cc014cc95241043e12a6cb1c7c156f789110abf8397b714047414b5a32c742f17ccf93ff23bdf3128f946207086bcef012558240cd16182c741123e93ed18327c4cd6ebac668a94104e4168c172283c7dfaa85d2004f763a28bf6d0f1602fc1452ccec62a7c8a66e422af1410fbf24a47355ddc43dfe3491cb1b806574ccd1c434680466dcff926f01410427db4059d24bab05df3f6bcc768fb01bd976b973f93e72cce2dfbfbed5a32056c9040a2c2ea4c10c812a54fed7ff2e6a917dbc843362d398f6ace4000fafa5c653aeffffffff0336150000000000001976a91451bb89eb8fcb138174114315fc8eaf054395c0cc88ac781e00000000000089512103ff58dcadeb5a447162ab629d309c2a28043a3437884b7b280fcfff9baa3119c021024131478633f18da1caec8ee455108b72feb19d70baae9ca86638661e47562bfa410427db4059d24bab05df3f6bcc768fb01bd976b973f93e72cce2dfbfbed5a32056c9040a2c2ea4c10c812a54fed7ff2e6a917dbc843362d398f6ace4000fafa5c653ae9268000000000000c952410427db4059d24bab05df3f6bcc768fb01bd976b973f93e72cce2dfbfbed5a32056c9040a2c2ea4c10c812a54fed7ff2e6a917dbc843362d398f6ace4000fafa5c641043e12a6cb1c7c156f789110abf8397b714047414b5a32c742f17ccf93ff23bdf3128f946207086bcef012558240cd16182c741123e93ed18327c4cd6ebac668a94104e4168c172283c7dfaa85d2004f763a28bf6d0f1602fc1452ccec62a7c8a66e422af1410fbf24a47355ddc43dfe3491cb1b806574ccd1c434680466dcff926f0153ae00000000

More data here:

http://pastebin.com/hYDy1pD3

I can provide more data if needed.

Thanks!

arhuaco avatar May 19 '15 03:05 arhuaco

I checked carefully and I think I don't have bugs in the code. Signing with Bitcoind works.

I just noticed that my main reference (bitscavenger.blogspot.com/2014/04/multisig-with-pybitcointools.html) has this note:

"Currently blockchain.info does not like multisig transactions generated like this so we have to submit it to eligius."

So it seems these transactions are currently considered nonstandard by (I guess most) nodes.

arhuaco avatar May 19 '15 07:05 arhuaco

Hello there. I don't know well how this works but I put a 75USD bounty on the (what I think it is an) issue:

https://www.bountysource.com/issues/15832046-multisig-script-is-no-longer-valid-op_checkmultisig-verify-with-non-null-nulldummy

arhuaco avatar May 19 '15 20:05 arhuaco

https://github.com/bitcoin/bitcoin/issues/8079

the way to fix it is by having 2x as many non-multisig inputs than multisig inputs/outputs, which will tip the balance of bytes:sigop in your favor.

and move away from bare multisig because spending it is problamtic and this won't change

rubensayshi avatar Jun 27 '16 17:06 rubensayshi