[Bitcoin-development] Fidelity bonds for decentralized instant confirmation guarantees

Goss, Brian C., M.D. Goss.Brian at mayo.edu
Tue Jun 17 20:40:50 UTC 2014

Can two signed transactions using the same output as an input (ie, a double spend) be used to trigger a third transaction? 

It would be nice if I could sign a tx that would pay m bitcoins to an arbitrary address if and only if someone could present proof that I signed more than 1 transaction using the same output. Thus, a merchant could trust that I would not attempt a double spend for a purchase of n < m bitcoins. 

Can this type of transaction be expressed in Bitcoin's scripting language? 

Chaum had a similar feature in Digicash way back when...a double spend would let the second merchant compute the identity of the double spender and serve as proof of double spending. It didn't automate punishment though!

My apologies if this has been discussed previously. 

> Message: 2
> Date: Mon, 16 Jun 2014 16:50:41 -0400
> From: Peter Todd <pete at petertodd.org>
> Subject: Re: [Bitcoin-development] Fidelity bonds for decentralized
>    instant confirmation guarantees
> To: Daniel Rice <drice at greenmangosystems.com>
> Cc: Bitcoin Dev <bitcoin-development at lists.sourceforge.net>,    Lawrence
>    Nahum <lawrence at greenaddress.it>
> Message-ID: <20140616205041.GA21784 at savin>
> Content-Type: text/plain; charset="us-ascii"
>> On Mon, Jun 16, 2014 at 01:37:52PM -0700, Daniel Rice wrote:
>> True, that would work, but still how are you going to bootstrap the trust?
>> TREZOR is well known, but in a future where there could be 100 different
>> companies trying to release a similar product to TREZOR it seems like one
>> company could corner the market by being the only one that is an accepted
>> instant provider at most vendors. It seems to encourage monopoly unless
>> there is a standard way to bootstrap trust in your signature.
> You can always use fidelity bonds, or as I called it at the time(1),
> "Trusted identities":
>    Lets suppose Alice has some bitcoins held at bitcoin address A. She
>    wants to establish trust in the "identity" associated with the ECC
>    keypair associated with A, for instance for the purpose of having other
>    users trust her not to attempt to double spend. Since the trust she
>    seeks is financial in nature, she can do this by valuing the identity
>    associated with A, by delibrately throwing away resources. A simple way
>    to do this would of course be to transfer coins to a null address,
>    provably incurring a cost to her.
>    A more socially responsible way would be for her to create a series of
>    transactions that happen to have large, and equal, transaction fees.
>    Bitcoin makes the assumption that no one entity controls more than 50%
>    of the network, so if she makes n of these transactions consecutively,
>    each spending m BTC to transaction fees, there is a high probability
>    that she has given up at least n/2 * m BTC of value. This of course is
>    all public knowledge, recorded in the block chain. It also increases the
>    transaction fees for miners, which will be very important for the
>    network in the future.
>    Now Bob can easily examine the block chain, and upon verifying Alice's
>    trust purchase, can decide to accept a zero-confirmation transaction at
>    face value. If Alice breaks that promise, he simply publishes her signed
>    transaction proving that Alice is a fraudster, and future Bob's will
>    distrust Alice's trusted identity, thus destroying the value needed to
>    create it.
>    In effect, we now have a distributed green address system.
> Note that the second paragraph is seriously obsolete - better to either
> use announce-commit sacrifices, or much preferably, simple destruction
> of coins. (sacrifice to fees encourages mining centralization for
> obvious reasons)
> 1) "[Bitcoin-development] Trusted identities", Apr 26th 2012, Peter Todd,
>   http://www.mail-archive.com/bitcoin-development%40lists.sourceforge.net/msg01005.html
> Incidentally, my first post to this mailing list!
> -- 
> 'peter'[:-1]@petertodd.org
> 000000000000000058ca7ee3a40438ea5a96e499910638352468c6d69abdb226
> -------------- next part --------------
> A non-text attachment was scrubbed...
> Name: not available
> Type: application/pgp-signature
> Size: 685 bytes
> Desc: Digital signature
> ------------------------------
> End of Bitcoin-development Digest, Vol 37, Issue 27
> ***************************************************

More information about the bitcoin-dev mailing list