If I transfer my coins using a multi-sig transaction, they will leave my account, but where are they until the other parties sign and they go to the recipient? If nobody signs, do they come back to me?
3 Answers
They stay in the block chain, just as normal transactions do.
Let's look at normal transactions first: When someone (A) sends bitcoins to another person (B), B is not involved in the process at all. A just publishes a transaction in the so called block chain stating that only B is allowed to claim the coins. Not before B wants to spend them, he has to prove that he owns them. This happens by putting the signature for the first transaction into the follow-up transaction.
Thus, every transaction stays unsigned in the block chain until the coins are spend in a follow-up transaction. "Owning bitcoins" means having the ability to sign a transaction in which someone sent bitcoins to me.
Multi-Sig transactions aren't that different, you just need more than one signature. As long as you can't provide them the money is frozen, nobody will be able to spend it.
-
I don't think this is correct. The network does not accept unsigned/partially signed transactions.– n3utrinoCommented Jan 20, 2014 at 8:27
-
1@n3utrino That's true, but it applies to the second transaction. The first transaction (filling the multisig address and normally requiring only one signature) can be properly signed and accepted by the network while the second transaction (spending the coins and requiring multiple signatures) is being rejected.– jnnkCommented Jan 21, 2014 at 22:31
-
1Ah now I see. The question mixes spending and sending to multisig address. You can always make a transaction send to a multi sig address but in order to get your spend transaction on the blockchain you need all signatures or it gets rejected.– n3utrinoCommented Jan 22, 2014 at 7:51
Both signers need to sign the transaction in order to get it in the blockchain. Otherwise it will get rejected.
But there is a BIP (https://github.com/bitcoin/bips/blob/master/bip-0010.mediawiki) addressing the matter of sending partially signed multisigs.
Every time you send bitcoins to address, you're encumbering those coins with a script that needs to be solved - "These coins are redeemable under X circumstances".
Anyone is free to pay into whatever address they like. However, until the requirements for redemption are met, they cannot leave the address.
When you send funds to a multisig address, you're solving this redemption puzzle for coins you have access to (by solving the Pay-to-pubkey-hash puzzle, by simple providing one signature), and sending them to an address where the puzzle is 'give me m signatures from these n keys'.
Funding a multisig address, like all transactions, is irreversible.
The coins can only be moved when the requirements of the script are met. This could be 1-of-1..1-of-3.. 2-of-3... or m-of-n.
Partially signed transactions cannot be broadcast or relayed over the network, so you need to communicate them using a different channel. If you have a 2-of-2 address, you add one signature, and say, your friend, the exchange, your wife, doesn't sign or simply cannot, the funds are stuck.
There's a wallet provider out there who actually does 2-of-3, and never signs with the third.. So if their service goes down, they will release the third private key, meaning any user can provide their own sig, AND a second using this new key, and users can recover their funds.