# Bitcoin multi-sign and the amount of storage it required

I read the paper "Threshold-optimal DSA/ECDSA signatures and an application to Bitcoin wallet security". The authors said that in the optimal threshold signature that they propose, players require just a constant amount of storage, while the previous threshold schemes were not efficient because the number of rounds increase according to the number of players; therefore, also the amount of storage that each player needs increased accordingly.

Now, I am wondering about the amount of storage that each players needs when they use multi-signature scheme? Is it constant or does it increase when the number of player increase?

• When spending a Bitcoin from a multi sig address you need to create spending script. Basically the public addresses and signatures are concatenated. This is limited to 500 bytes so I think you can only get about 15 signatures into that.. Jan 11, 2017 at 15:28
• similiar request here: bitcoin.stackexchange.com/questions/30570/… Apr 11, 2017 at 6:23
• Note that this question is about earlier multiparty ECDSA schemes, and not about Bitcoin's script-based multisig (which is arguably not what cryptographers would call a multisignature). Nov 23, 2017 at 16:02

Didn't find the reference of your text... I'll define usage of multisig and length a bit more generally. With a multisig scheme, you create a "funding" transaction with a redeem script. This redeem script is the hash of the n-of-m multisig identifiers, and the required pub keys. So the funding tx is not bigger than normal tx.

Then spending the multisig, the V_IN structure gets bigger, whereas V_OU remains the same size. Assume a multisig requires n-of-m signatures, and a typical sig looks like this:

``````48: OP_DATA_0x48:        push hex 48 (decimal 72) bytes on stack
30: OP_SEQUENCE_0x30:    type tag indicating SEQUENCE, begin sigscript
45: OP_LENGTH_0x45:      length of R + S
02: OP_INT_0x02:         type tag INTEGER indicating length
20: OP_LENGTH_0x20:      this is SIG R (32 Bytes)
4673096ED91CC985:B05F64780BA123E1
C193FC860B2163DC:B3B5D4F3049F30D2
02: OP_INT_0x02:         type tag INTEGER indicating length
21: OP_LENGTH_0x21:      this is SIG S (33 Bytes)
``````normal tx has 1 sig          (at ~70 Bytes) and 1 pub key  (@ 33 or 66 bytes)