LearnBitcoin

Bitcoin Dev Archive 2011

Multisignature scriptSigs

1 message, 27 Oct 2011. Started by Gavin Andresen.

Gavin Andresen

Permalink Original thread on gnusha.org

Gavin Andresen permalink original
Quoted text (4 lines)
> However, I ran into the problem that IsStandard() also
> checks that the size of scriptSig is not above 200. Adding an extra
> signature there triggers this limit. I guess there is no way around
> that?

D'oh! I forgot about that check (and should have remembered, I had to increase it for my 'standard' multisig transactions branch).

Assuming BIPS 11 and 12 are adopted, there will be room in the scriptSig for more than one signature. Once that happens, implementing green addresses as an extra signature on the first scriptSig in a transaction seems like a better way to do it than generating two separate transactions.

Speaking of more-than-on-signature transactions:

I'm proposing a maximum 3 signatures for an IsStandard() transaction, which would be a 600-byte scriptSig.

It is tempting to just bump the maximum up to 8 or 10, but I think we should stay conservative about IsStandard() transaction size until after two things happen:

1) bitcoin-qt gets smarter about downloading just block headers, and maybe downloading transactions without scriptSigs (for transactions it doesn't need/care to validate... need to think about that a little more, but ByteCoin suggested that if you're not mining then the only transaction signatures you need to check are not-yet-confirmed transactions to you).

2) Transaction priority / maximum block size / free-transaction area / transaction fees is reworked. Miners should be making the policy decisions on minimum fee per kilobyte or ECDSA signature check, and how many free transactions (if any) they'll include in the blocks they create. And bitcoin clients should be smarter about looking at what transactions are and are not getting into the chain so they can suggest appropriate fees to users.