1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
|
Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192]
helo=mx.sourceforge.net)
by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
(envelope-from <tier.nolan@gmail.com>) id 1WfbQO-0007bn-W5
for bitcoin-development@lists.sourceforge.net;
Wed, 30 Apr 2014 20:48:17 +0000
Received-SPF: pass (sog-mx-2.v43.ch3.sourceforge.com: domain of gmail.com
designates 209.85.216.172 as permitted sender)
client-ip=209.85.216.172; envelope-from=tier.nolan@gmail.com;
helo=mail-qc0-f172.google.com;
Received: from mail-qc0-f172.google.com ([209.85.216.172])
by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
(Exim 4.76) id 1WfbQO-0000om-29
for bitcoin-development@lists.sourceforge.net;
Wed, 30 Apr 2014 20:48:16 +0000
Received: by mail-qc0-f172.google.com with SMTP id i8so2506596qcq.17
for <bitcoin-development@lists.sourceforge.net>;
Wed, 30 Apr 2014 13:48:10 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.224.67.195 with SMTP id s3mr8807452qai.96.1398890890579;
Wed, 30 Apr 2014 13:48:10 -0700 (PDT)
Received: by 10.140.25.86 with HTTP; Wed, 30 Apr 2014 13:48:10 -0700 (PDT)
In-Reply-To: <201404301859.07833.luke@dashjr.org>
References: <CAE-z3OUE5AQAC2G4MtF=RVHwYEP1TKXTOopO14rmPiGkxC5MQw@mail.gmail.com>
<201404301859.07833.luke@dashjr.org>
Date: Wed, 30 Apr 2014 21:48:10 +0100
Message-ID: <CAE-z3OXO2uQb=yhsjfvTUC33kQ9HVvaXxhPsd3Ki4Oy2jE9SCg@mail.gmail.com>
From: Tier Nolan <tier.nolan@gmail.com>
To: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>
Content-Type: multipart/alternative; boundary=001a11c322769cda2d04f848aa47
X-Spam-Score: -0.6 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
See http://spamassassin.org/tag/ for more details.
-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
sender-domain
0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
(tier.nolan[at]gmail.com)
-0.0 SPF_PASS SPF: sender matches SPF record
1.0 HTML_MESSAGE BODY: HTML included in message
-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
author's domain
0.1 DKIM_SIGNED Message has a DKIM or DK signature,
not necessarily valid
-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
X-Headers-End: 1WfbQO-0000om-29
Subject: Re: [Bitcoin-development] BIP Draft: Atomic Cross Chain Transfer
Protocol
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Wed, 30 Apr 2014 20:48:17 -0000
--001a11c322769cda2d04f848aa47
Content-Type: text/plain; charset=UTF-8
On Wed, Apr 30, 2014 at 7:59 PM, Luke Dashjr <luke@dashjr.org> wrote:
> Instead of TX0, TX1, etc, can you put some kind of meaningful identifier
> for
> these transactions?
>
Sorry, that is the names come from the original thread, where I was
outlining the idea. I updated the names.
> TX1 and TX2 *cannot* be signed until after TX0 is completely signed by both
> parties.
The bail in transactions are only signed by one of the parties. They are
kept secret until the refund/payout transactions are all properly signed.
There is a malleability risk though, hence the need for the 3rd party.
It works on the same refund principle as payment channels.
After TX0 is signed, but before TX2 is signed, either party could
> walk away or otherwise hold the funds hostage. The sequence of signing
> proposed in this BIP is *not possible to perform*.
TX0 is not broadcast until the refund transactions are complete.
> How did you implement and test this? :/
>
This is a draft at the moment.
There is an implementation of (almost) this system but not by me. This
proposal reduces the number of non-standard transaction types required.
A full implement is the next step.
> What is the purpose of the OP_EQUAL_VERIFY in TX4? I don't see a use...
>
That is a typo, I have updated it.
> IMO, there should be separate BIPs for the exchange itself, and the
> protocol
> to negotiate the exchange.
I can do that.
> I would recommend changing the latter from JSON-RPC
> to some extension of the Payment Protocol, if possible.
>
I wanted it to be as simple as possible, but I guess MIME is just a
different way of doing things.
>
> Perhaps it would be good to only support compressed keys, to discourage
> use of
> uncompressed ones..
>
I would have no objection.
>
> Luke
>
--001a11c322769cda2d04f848aa47
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On W=
ed, Apr 30, 2014 at 7:59 PM, Luke Dashjr <span dir=3D"ltr"><<a href=3D"m=
ailto:luke@dashjr.org" target=3D"_blank">luke@dashjr.org</a>></span> wro=
te:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-=
left:1px #ccc solid;padding-left:1ex">
Instead of TX0, TX1, etc, can you put some kind of meaningful identifier fo=
r<br>
these transactions?<br></blockquote><div><br></div><div>Sorry, that is the =
names come from the original thread, where I was outlining the idea.=C2=A0 =
I updated the names.<br></div><div>=C2=A0<br></div><blockquote class=3D"gma=
il_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-lef=
t:1ex">
TX1 and TX2 *cannot* be signed until after TX0 is completely signed by both=
<br>
parties.</blockquote><div><br></div><div>The bail in transactions are only =
signed by one of the parties.=C2=A0 They are kept secret until the refund/p=
ayout transactions are all properly signed.<br><br></div><div>There is a ma=
lleability risk though, hence the need for the 3rd party.<br>
<br></div><div>It works on the same refund principle as payment channels.<b=
r></div><div> <br></div><blockquote class=3D"gmail_quote" style=3D"margin:0=
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> After TX0 is signed=
, but before TX2 is signed, either party could<br>
walk away or otherwise hold the funds hostage. The sequence of signing<br>
proposed in this BIP is *not possible to perform*. </blockquote><div><br></=
div><div>TX0 is not broadcast until the refund transactions are complete.<b=
r></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:=
0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
How did you implement and test this? :/<br></blockquote><div><br></div><div=
>This is a draft at the moment.=C2=A0 <br><br>There is an implementation of=
(almost) this system but not by me.=C2=A0 This proposal reduces the number=
of non-standard transaction types required.<br>
<br></div><div>A full implement is the next step.<br></div><div>=C2=A0<br><=
/div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-le=
ft:1px #ccc solid;padding-left:1ex">
What is the purpose of the OP_EQUAL_VERIFY in TX4? I don't see a use...=
<br></blockquote><div><br></div><div>That is a typo, I have updated it.<br>=
</div><div>=C2=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margi=
n:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
IMO, there should be separate BIPs for the exchange itself, and the protoco=
l<br>
to negotiate the exchange. </blockquote><div><br></div><div>I can do that.<=
br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin=
:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I would recommend =
changing the latter from JSON-RPC<br>
to some extension of the Payment Protocol, if possible.<br></blockquote><di=
v><br></div><div>I wanted it to be as simple as possible, but I guess MIME =
is just a different way of doing things.<br></div><blockquote class=3D"gmai=
l_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left=
:1ex">
<br>
Perhaps it would be good to only support compressed keys, to discourage use=
of<br>
uncompressed ones..<br></blockquote><div><br></div><div>I would have no obj=
ection.<br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
Luke<br>
</font></span></blockquote></div><br></div></div>
--001a11c322769cda2d04f848aa47--
|