public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: "Jorge Timón" <timon.elviejo@gmail.com>
To: Jeff Garzik <jgarzik@exmulti.com>
Cc: Bitcoin Development <bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] Atomic coin swapping?
Date: Sat, 22 Sep 2012 11:10:16 +0200	[thread overview]
Message-ID: <CAGQP0AEnkRqiEb2_COpQpLKkZfHf0fFgHmquO5oY4_Gh84k7cA@mail.gmail.com> (raw)
In-Reply-To: <CA+8xBpczY1DkgmHsVL8m30JaM1d+FwN_gpBhq6DFScm1nvLF5w@mail.gmail.com>

I'm very interested in this. I was expecting transitive/multi-hop
transactions (Ripple) with colored coins, and I don't understand why
is not possible.

From https://en.bitcoin.it/wiki/Contracts

---
SIGHASH_ALL: This is the default. It indicates that everything about
the transaction is signed, except for the input scripts. Signing the
input scripts as well would obviously make it impossible to construct
a transaction, so they are always blanked out. Note, though, that
other properties of the input, like the connected output and sequence
numbers, are signed; it's only the scripts that are not. Intuitively,
it means "I agree to put my money in, if everyone puts their money in
and the outputs are this".
---

Why "Signing the input scripts as well would obviously make it
impossible to construct a transaction"?
I don't understand that part. I think a new SIGHASH_* type that
doesn't pay attention to that "obviously" is needed to achieve what we
want.

Say we want the following transaction:

A 1 satoshi -> B 1 satoshi -> C 100 btc -> A

It would be necessary to sign the following:

Inputs: from srcA, from srcB,
Outputs: 1 satoshi to destB, 1 satoshi to destC, 100 btc to destA

"from srcC" is not really necessary.

This same scheme can be used for n-hops.

What am I missing?

On 9/22/12, Jeff Garzik <jgarzik@exmulti.com> wrote:
> Forum URL: https://bitcointalk.org/index.php?topic=112007.0
>
> gmaxwell was talking about colored coins[1] in IRC recently.  They are
> potentially interesting in the context of distributed bonds[2], which
> I am currently pursuing with pybond[3].
>
> Here is the problem I am trying to solve, does the crowd have an answer?
>
> 1. Alice transfers a 1-satoshi colored coin to Bob.
> 2. Bob transfers 100 BTC to Alice.  May be restricted to 1 txout, if
> that eases implementation details.
> 3. Steps #1 and #2 happen as an atomic unit, all-or-none.
> 4. Alice and Bob must both approve this atomic transfer of coins, with
> appropriate signatures.
>
> Is this possible within the current bitcoin system?  As far as I can
> see, the answer is "no" but maybe I'm missing something.
>
> My best guess to the answer is "possible, but requires a new SIGHASH_*
> type"?
>
> [1] https://bitcointalk.org/index.php?topic=106449.0
> [2] https://bitcointalk.org/index.php?topic=92421.0
> [3] https://github.com/jgarzik/pybond
>
> --
> Jeff Garzik
> exMULTI, Inc.
> jgarzik@exmulti.com
>
> ------------------------------------------------------------------------------
> How fast is your code?
> 3 out of 4 devs don\\\'t know how their code performs in production.
> Find out how slow your code is with AppDynamics Lite.
> http://ad.doubleclick.net/clk;262219672;13503038;z?
> http://info.appdynamics.com/FreeJavaPerformanceDownload.html
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>


-- 
Jorge Timón



  reply	other threads:[~2012-09-22  9:10 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-22  7:28 [Bitcoin-development] Atomic coin swapping? Jeff Garzik
2012-09-22  9:10 ` Jorge Timón [this message]
2012-09-22 11:04   ` Mike Hearn
2012-09-22 17:05   ` Mike Hearn
2012-09-22 17:09   ` Jeff Garzik
2012-09-22 18:24     ` Jorge Timón

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAGQP0AEnkRqiEb2_COpQpLKkZfHf0fFgHmquO5oY4_Gh84k7cA@mail.gmail.com \
    --to=timon.elviejo@gmail.com \
    --cc=bitcoin-development@lists.sourceforge.net \
    --cc=jgarzik@exmulti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox