Author

Topic: OP_CHECKMULTISIG escrow (Read 846 times)

newbie
Activity: 58
Merit: 0
September 30, 2012, 06:44:45 AM
#1
Hi, I would like to ask about this function.

It looks like a good way to achieve 2-of-3 signatures escrow. However, it looks like it is not possible to use now.

What I've found on the subject:

https://en.bitcoin.it/wiki/Script#Crypto
"Due to a bug, one extra unused value is removed from the stack."
Does it mean there is a bug in the reference client? So fix it? I think that if there even exist such old transactions in the blockchain then let them be, and the new ones interpret with the correct logic.

https://en.bitcoin.it/wiki/BIP_0011
"OP_CHECKMULTISIG is already an enabled opcode, and is the most straightforward way to support several important use cases."
Which is good.
"One argument against using OP_CHECKMULTISIG is that old clients and miners count it as "20 sigops" for purposes of computing how many signature operations are in a block, and there is a hard limit of 20,000 sigops per block ..."
So fix the clients? Even without fixing, multisig transactions are not reaching any limits, and maybe advise some right fee on them so they are used reasonably.
"A weaker argument is OP_CHECKMULTISIG should not be used because it pops one too many items off the stack during validation. Adding an extra OP_0 placeholder to the scriptSig adds only 1 byte to the transaction ..."
How about to fix the client to pop the right number of items? Adding an extra placeholder means to continue with the bug.

I wouldn't fancy new opcode OP_EVAL as a solution "pops the item from the top of the stack, deserializes it, and executes the resulting script", why so much extra work?
I don't fancy Pay To Script Hash as a solution either, because it lacks the transparency of how the funds can be spent. But maybe it's good for people who want exactly that.

Or is it possible to use OP_CHECKMULTISIG by posting a raw transaction now?

Well, sorry, I'm bit lay-person and this is what I made out of it. Thanks for advice.
Jump to: