Do multi-signature transactions make a 'bitcoin kickstarter' possible? And what state are the bitcoins in, in the meantime? This isn't a question about kickstarter really, just a way for me to phrase my question about the crypto in terms that I can understand.

My understanding, based on this article.. Stop Saying Bitcoin Transactions Aren’t Reversible is that multi-signature transactions would make something like a bitcoin KickStarter particularly easy.

That is the kickstarter-like bitcoin service would act as a third party to many contracts transferring btc to the second party? 

Maybe this has already been done? Hmm @coinstarter.. Yay! Great to see but doesn't really answer my question about how the crypto works. 

To make things easier I'll call the people that pledge to the campaign the 'first parties' and the recipients of the funds the 'second party'. Could multi-party signatures to ensure the second party only receives btc after the projects are funded? and at the same time be sure that the third party (eg coinstarter) technically can't abscond with the funds.

Also - and this is my real question - in such a case what state are the bitcoins in prior to the project being funded. That is, are they marked in the blockchain and thus impossible for first parties to 'double spend' btc they have pledged to a campaign or are they actually not in escrow so if a first party spends them on something else in the meantime (after pledging, before the project is funded) the transaction just fails?

Thanks so much in advance, hope this question makes sense, crypto wise.
While multi-signature transactions with a trusted party (e.g Kickstarter Inc.) would work, their disadvantage is requiring said trusted party...

The bitcoin wiki describes a different method that doesn't require any third party:


Each backer creates a transaction with the amount to be pledged (this is an immediate step and required since the method doesn't allow for change
That transaction is used as input signed with SIGHASH_ALL | SIGHASH_ANYONECANPAY, and the output is the to-be-funded address with the funding goal. Due to the input being less than the output, this transaction is invalid and shall not be published but instead transmitted to the recipient.
Once the recipient received enough transactions summing up to the funding goal, they can publish the assembled transaction


Unfortunately, this method has other drawbacks:


The funding goal must be exactly met (or a multiple of it), i.e. there cannot be stretch goals or overfunding
Since the input transactions are not spent until the funding is complete, the backers might accidentally spend that very transaction in another transaction




Ideally, script would provide means to determine whether a given bitcoin address (or in this case, the script itself) currently has at least a given amount of bitcoins available...