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
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
|
Return-Path: <jl2012@xbt.hk>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
[172.17.192.35])
by mail.linuxfoundation.org (Postfix) with ESMTPS id B7B4DFFA
for <bitcoin-dev@lists.linuxfoundation.org>;
Fri, 12 Feb 2016 05:02:09 +0000 (UTC)
X-Greylist: from auto-whitelisted by SQLgrey-1.7.6
Received: from s47.web-hosting.com (s47.web-hosting.com [199.188.200.16])
by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 0E91C15E
for <bitcoin-dev@lists.linuxfoundation.org>;
Fri, 12 Feb 2016 05:02:08 +0000 (UTC)
Received: from 119246245241.ctinets.com ([119.246.245.241]:59139 helo=2012R2)
by server47.web-hosting.com with esmtpsa
(TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256) (Exim 4.86)
(envelope-from <jl2012@xbt.hk>)
id 1aU5rr-003fA2-EB; Fri, 12 Feb 2016 00:02:07 -0500
From: <jl2012@xbt.hk>
To: "'Tier Nolan'" <tier.nolan@gmail.com>
References: <CAE-z3OUpaMLxF9dGttzLUd6tG+nO18FMo3LZqr7taASVmrEumg@mail.gmail.com>
In-Reply-To: <CAE-z3OUpaMLxF9dGttzLUd6tG+nO18FMo3LZqr7taASVmrEumg@mail.gmail.com>
Date: Fri, 12 Feb 2016 13:02:37 +0800
Message-ID: <23e401d16552$996546d0$cc2fd470$@xbt.hk>
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_23E5_01D16595.A78AF7D0"
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQKZ0cNygh4pHRrrw11uUfSX/C1ivJ2XAOHA
Content-Language: en-hk
X-AntiAbuse: This header was added to track abuse,
please include it with any abuse report
X-AntiAbuse: Primary Hostname - server47.web-hosting.com
X-AntiAbuse: Original Domain - lists.linuxfoundation.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - xbt.hk
X-Get-Message-Sender-Via: server47.web-hosting.com: authenticated_id:
jl2012@xbt.hk
X-Authenticated-Sender: server47.web-hosting.com: jl2012@xbt.hk
X-Source:
X-Source-Args:
X-Source-Dir:
X-From-Rewrite: unmodified, already matched
X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,HTML_MESSAGE,
RCVD_IN_DNSWL_NONE,T_REMOTE_IMAGE autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
smtp1.linux-foundation.org
Cc: bitcoin-dev@lists.linuxfoundation.org
Subject: Re: [bitcoin-dev] BIP CPRKV: Check private key verify
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Bitcoin Development Discussion <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>,
<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>,
<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Feb 2016 05:02:09 -0000
This is a multipart message in MIME format.
------=_NextPart_000_23E5_01D16595.A78AF7D0
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Seems it could be done without any new opcode:
=20
Bob is trading b Bitcoins for a altcoins.
=20
1. Bob Pays D Bitcoins to
=20
IF
<now+2days> CLTV DROP <Alice PK> CHECKSIG
ELSE
HASH160 <hash secret B> EQUALVERIFY <Bob PK> CHECKSIG
ENDIF
=20
2. Alice pays a altcoins to
=20
IF
HASH160 <hash secret B> EQUALVERIFY <Alice PK> CHECKSIG
ELSE
HASH160 <hash secret A> EQUALVERIFY <Bob PK> CHECKSIG
ENDIF
=20
3. Bob pays b Bitcoins to
=20
IF
<now+1days> CLTV DROP <Bob PK> CHECKSIG
ELSE
HASH160 <hash secret A> EQUALVERIFY <Alice PK> CHECKSIG
ENDIF
=20
4. Alice claims output from step 3 and reveals secret A
=20
5. Bob claims output from step 2
=20
6. Bob claims output from step 1 and reveals secret B
=20
From: bitcoin-dev-bounces@lists.linuxfoundation.org =
[mailto:bitcoin-dev-bounces@lists.linuxfoundation.org] On Behalf Of Tier =
Nolan via bitcoin-dev
Sent: Friday, 12 February, 2016 04:05
To: Bitcoin Dev <bitcoin-dev@lists.linuxfoundation.org>
Subject: [bitcoin-dev] BIP CPRKV: Check private key verify
=20
There was some discussion on the bitcointalk forums about using CLTV for =
cross chain transfers.
Many altcoins don't support CLTV, so transfers to those coins cannot be =
made secure. =20
I created a protocol. It uses on cut and choose to allow commitments to =
publish private keys, but it is clunky and not entirely secure.
I created a BIP draft for an opcode which would allow outputs to be =
locked unless a private key was published that matches a given public =
key.
https://github.com/TierNolan/bips/blob/cpkv/bip-cprkv.mediawiki
<https://www.avast.com/sig-email>=20
This email has been sent from a virus-free computer protected by Avast.=20
<https://www.avast.com/sig-email> www.avast.com=20
=20
------=_NextPart_000_23E5_01D16595.A78AF7D0
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8"><meta =
name=3DGenerator content=3D"Microsoft Word 15 (filtered medium)"><!--[if =
!mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:DengXian;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:"\@DengXian";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
{mso-style-name:msonormal;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman",serif;}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-HK link=3Dblue =
vlink=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>Seems it could be done without any new opcode:<o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
><o:p> </o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>Bob is trading b Bitcoins for a altcoins.<o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
><o:p> </o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>1. Bob Pays D Bitcoins to<o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
><o:p> </o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>IF<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
><now+2days> CLTV DROP <Alice PK> =
CHECKSIG<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>ELSE<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>HASH160 <hash secret B> EQUALVERIFY <Bob PK> =
CHECKSIG<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>ENDIF<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
><o:p> </o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>2. Alice pays a altcoins to<o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
><o:p> </o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>IF<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>HASH160 <hash secret B> EQUALVERIFY <Alice PK> =
CHECKSIG<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>ELSE<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>HASH160 <hash secret A> EQUALVERIFY <Bob PK> =
CHECKSIG<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>ENDIF<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
><o:p> </o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>3. Bob pays b Bitcoins to<o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
><o:p> </o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>IF<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
><now+1days> CLTV DROP <Bob PK> =
CHECKSIG<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>ELSE<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>HASH160 <hash secret A> EQUALVERIFY <Alice PK> =
CHECKSIG<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>ENDIF<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
><o:p> </o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>4. Alice claims output from step 3 and reveals secret =
A<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
><o:p> </o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>5. Bob claims output from step 2<o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
><o:p> </o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
>6. Bob claims output from step 1 and reveals secret =
B<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'=
><o:p> </o:p></span></p><p class=3DMsoNormal><b><span lang=3DEN-US =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span><=
/b><span lang=3DEN-US =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif'> =
bitcoin-dev-bounces@lists.linuxfoundation.org =
[mailto:bitcoin-dev-bounces@lists.linuxfoundation.org] <b>On Behalf Of =
</b>Tier Nolan via bitcoin-dev<br><b>Sent:</b> Friday, 12 February, 2016 =
04:05<br><b>To:</b> Bitcoin Dev =
<bitcoin-dev@lists.linuxfoundation.org><br><b>Subject:</b> =
[bitcoin-dev] BIP CPRKV: Check private key =
verify<o:p></o:p></span></p><p =
class=3DMsoNormal><o:p> </o:p></p><div><div><div><div><div><p =
class=3DMsoNormal style=3D'margin-bottom:12.0pt'>There was some =
discussion on the bitcointalk forums about using CLTV for cross chain =
transfers.<o:p></o:p></p></div><p class=3DMsoNormal =
style=3D'margin-bottom:12.0pt'>Many altcoins don't support CLTV, so =
transfers to those coins cannot be made secure. =
<o:p></o:p></p></div><p class=3DMsoNormal =
style=3D'margin-bottom:12.0pt'>I created a protocol. It uses on =
cut and choose to allow commitments to publish private keys, but it is =
clunky and not entirely secure.<o:p></o:p></p></div></div><p =
class=3DMsoNormal>I created a BIP draft for an opcode which would allow =
outputs to be locked unless a private key was published that matches a =
given public key.<o:p></o:p></p><div><div><div><div><p =
class=3DMsoNormal><br><a =
href=3D"https://github.com/TierNolan/bips/blob/cpkv/bip-cprkv.mediawiki">=
https://github.com/TierNolan/bips/blob/cpkv/bip-cprkv.mediawiki</a><o:p><=
/o:p></p></div></div></div></div></div><div =
id=3DDDB4FAA8-2DD7-40BB-A1B8-4E2AA1F9FDF2><table class=3DMsoNormalTable =
border=3D1 cellpadding=3D0 style=3D'border:none;border-top:solid #AAABB6 =
1.0pt'><tr><td width=3D105 =
style=3D'width:78.75pt;border:none;padding:11.25pt .75pt .75pt .75pt'><p =
class=3DMsoNormal style=3D'margin-top:22.5pt'><a =
href=3D"https://www.avast.com/sig-email" target=3D"_blank"><span =
style=3D'text-decoration:none'><img border=3D0 id=3D"_x0000_i1025" =
src=3D"https://ipmcdn.avast.com/images/logo-avast-v1.png"></span></a><o:p=
></o:p></p></td><td width=3D470 =
style=3D'width:352.5pt;border:none;padding:15.0pt .75pt .75pt .75pt'><p =
class=3DMsoNormal style=3D'margin-top:22.5pt;line-height:13.5pt'><span =
style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:#41424E'>T=
his email has been sent from a virus-free computer protected by Avast. =
<br><a href=3D"https://www.avast.com/sig-email" target=3D"_blank"><span =
style=3D'color:#4453EA'>www.avast.com</span></a> =
<o:p></o:p></span></p></td></tr></table><p =
class=3DMsoNormal><o:p> </o:p></p></div></div></body></html>
------=_NextPart_000_23E5_01D16595.A78AF7D0--
|