Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: Isosceles on December 27, 2011, 11:57:39 PM



Title: Custom Bitcoin transaction with an override key?
Post by: Isosceles on December 27, 2011, 11:57:39 PM
Is it possible to construct a custom transaction in which either your key, or the key of an "overseer" can spend the coins? And add a feature such that all subsequent transactions you make also have to include the overseer's override feature?

Would be useful if you wanted to give a trusted organisation the ability to retrieve your bitcoins if they were lost/stolen.


Title: Re: Custom Bitcoin transaction with an override key?
Post by: Gavin Andresen on December 28, 2011, 12:09:45 AM
Is it possible to construct a custom transaction in which either your key, or the key of an "overseer" can spend the coins?
Yes.  That would be a "1 of 2 signatures required" multisignature transaction.
Quote
And add a feature such that all subsequent transactions you make also have to include the overseer's override feature?
That you can't do. If the coins were stolen, the thief can just sign them away.

I suppose you could do a "2 of 2 signatures required" and then have the overseer only approve transactions that were ALSO 2-of-2 required (where 1 was the overseer's signature).  A thief could take your coins away, but wouldn't be able to spend them without the overseer's OK.  The overseer wouldn't be able to take them back, though.

More complicated schemes are probably possible if you want to trust the overseer completely... but if you and the person you are paying trust the overseer completely then why bother using bitcoin transactions at all?  Just hold accounts at the overseer and they can transfer balances or reverse transactions as they like....


Title: Re: Custom Bitcoin transaction with an override key?
Post by: Isosceles on December 28, 2011, 01:31:09 AM
Can you do a "1-of-1 or 2-of-2" transaction, where either the overseer spends the coins, or both the overseer & the holder spends the coins?

I could open an account with the overseer & use a non-bitcoin currency, but you would lose the bitcoin's benefits of the inability to arbitrarily mint new currency, and the public transaction ledger. ie. if they stole it you would know immediately.


Title: Re: Custom Bitcoin transaction with an override key?
Post by: Gavin Andresen on December 28, 2011, 02:42:35 AM
Can you do a "1-of-1 or 2-of-2" transaction, where either the overseer spends the coins, or both the overseer & the holder spends the coins?

You can do 2-of-3 (overseer holds 2, so can always spend, you hold 1) instead to accomplish the same thing. I suppose having the overseer put transactions in the block-chain that everybody can see might make you and the people you're paying trust them more...


Title: Re: Custom Bitcoin transaction with an override key?
Post by: Isosceles on December 28, 2011, 04:02:54 AM
Interesting, thanks.

Thinking of uses, if everyone trusts the overseer, I could get my coins back if they're stolen. Alternatively, a government could regulate bitcoin by requiring merchants to use this type of transaction.

Also, how would this transaction appear in the Bitcoin client? Would both the owner & the overseer see the bitcoins in their account? Presumably the client can't spend them in the GUI.


Title: Re: Custom Bitcoin transaction with an override key?
Post by: Gavin Andresen on December 28, 2011, 05:50:37 PM
The client doesn't support multisignature transactions yet.


Title: Re: Custom Bitcoin transaction with an override key?
Post by: Red Emerald on December 29, 2011, 08:31:48 AM
Can you do a "1-of-1 or 2-of-2" transaction, where either the overseer spends the coins, or both the overseer & the holder spends the coins?

You can do 2-of-3 (overseer holds 2, so can always spend, you hold 1) instead to accomplish the same thing. I suppose having the overseer put transactions in the block-chain that everybody can see might make you and the people you're paying trust them more...

Thats an interesting way to do it.  Might as well just give your coins to the overseer though as they don't need you.  Maybe have 2 separate overseers? Seems strange and I'm not sure I see a use-case.


Title: Re: Custom Bitcoin transaction with an override key?
Post by: Mike Hearn on December 30, 2011, 12:57:06 AM
You don't actually want the ability to "get back stolen coins". It sounds superficially attractive at first but has huge problems, which is one reason why credit cards work so poorly (from the merchants perspective).

To see why you don't actually want this, consider the example of a guy who runs an online store selling expensive widgets. He sells a widget and then gifts the profit to his brother as a birthday present. The brother uses the money to take a girl he just met on a date to a nice restaurant. After they eat the meal and it comes time to pay, the brother gets out his phone only to discover that his money has vanished. The restaurant owner gets angry and the date ends with both of them doing the washing up.

The problem is that the first transaction in this chain was done using stolen coins and the guy who suffered the theft has now unwound all the transactions. The original guys poor security habits (installing warez or whatever) have caused totally innocent people to lose out.

Also consider the case where somebody spends their own coins then lodges a false appeal saying the coins were stolen. They get the coins back and the merchant loses again.

Bitcoin provides a simpler and more straightforward model. Security of your coins is your own problem. If your coins are stolen, tough luck - perhaps you want to insure them next time, or use 2-factor coins, etc.


Title: Re: Custom Bitcoin transaction with an override key?
Post by: allten on January 01, 2012, 12:59:52 AM
Gavin,
    This sounds like a nice feature. Thanks for your effort.
Will the fee structure change at all with a multi-sig transaction?
I'm hoping in the future the client will also support many different types of transactions that would appeal to other services than just money transactions. However, this would go beyond what Bitcoin's original intent was and will faten the block chain at a faster pace.
There are so many potential uses for a highly secure distributed database that's open to all -- it's amazing; however, these other services (transaction types) should have a steeper fee structure in my opionion (i.e. x10 the regular transaction fee cost for the last two weeks).

also, it would be nice if some of the fee was sent to a "black hole" (a dummy address); these bitcoins could give the programmers some breathing room if the time ever comes to restructure miner rewards after all the bitcoins are mined.

thanks for your consideration.