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
|
Return-Path: <jlrubin@mit.edu>
Received: from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])
by lists.linuxfoundation.org (Postfix) with ESMTP id B5D78C0012
for <bitcoin-dev@lists.linuxfoundation.org>;
Fri, 24 Dec 2021 17:17:33 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
by smtp1.osuosl.org (Postfix) with ESMTP id ADC1383DFD
for <bitcoin-dev@lists.linuxfoundation.org>;
Fri, 24 Dec 2021 17:17:33 +0000 (UTC)
X-Virus-Scanned: amavisd-new at osuosl.org
X-Spam-Flag: NO
X-Spam-Score: -4.197
X-Spam-Level:
X-Spam-Status: No, score=-4.197 tagged_above=-999 required=5
tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3,
RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001,
SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from smtp1.osuosl.org ([127.0.0.1])
by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 8Mt1Amopp036
for <bitcoin-dev@lists.linuxfoundation.org>;
Fri, 24 Dec 2021 17:17:32 +0000 (UTC)
X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11])
by smtp1.osuosl.org (Postfix) with ESMTPS id 8D47183DFB
for <bitcoin-dev@lists.linuxfoundation.org>;
Fri, 24 Dec 2021 17:17:32 +0000 (UTC)
Received: from mail-lf1-f41.google.com (mail-lf1-f41.google.com
[209.85.167.41]) (authenticated bits=0)
(User authenticated as jlrubin@ATHENA.MIT.EDU)
by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 1BOHHTGc018278
(version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NOT)
for <bitcoin-dev@lists.linuxfoundation.org>; Fri, 24 Dec 2021 12:17:30 -0500
Received: by mail-lf1-f41.google.com with SMTP id i31so20205963lfv.10
for <bitcoin-dev@lists.linuxfoundation.org>;
Fri, 24 Dec 2021 09:17:30 -0800 (PST)
X-Gm-Message-State: AOAM531JEVx1HTsRWubAO/VmRG5arWkEk2dYUAcGYTaBBXfP0cZA0Q9H
Ylcv8rBNdPNfqSlJNBR0gK/TjvRuNNHfcd+jZ9I=
X-Google-Smtp-Source: ABdhPJzqIAdtiXsiHFjpNoWvqnVARkSC+h2z1ka38YmS7YXhBiRXJbiRe5YoAyRZ53EpTjhouPV2tApuw/CjzS9DEa0=
X-Received: by 2002:a05:6512:33c9:: with SMTP id
d9mr589475lfg.516.1640366249129;
Fri, 24 Dec 2021 09:17:29 -0800 (PST)
MIME-Version: 1.0
References: <MrhJf_p--3-2@tutanota.de>
In-Reply-To: <MrhJf_p--3-2@tutanota.de>
From: Jeremy <jlrubin@mit.edu>
Date: Fri, 24 Dec 2021 09:17:16 -0800
X-Gmail-Original-Message-ID: <CAD5xwhja5+vAjsMpDoJRGpoJXwTVde+QmYtTofUgWO_+=Y1PPw@mail.gmail.com>
Message-ID: <CAD5xwhja5+vAjsMpDoJRGpoJXwTVde+QmYtTofUgWO_+=Y1PPw@mail.gmail.com>
To: Prayank <prayank@tutanota.de>
Content-Type: multipart/alternative; boundary="00000000000094bc5e05d3e787b5"
Cc: Bitcoin Dev <bitcoin-dev@lists.linuxfoundation.org>
Subject: Re: [bitcoin-dev] [Bitcoin Advent Calendar] Derivatives and Options
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Bitcoin Protocol 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, 24 Dec 2021 17:17:33 -0000
--00000000000094bc5e05d3e787b5
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Fri, Dec 24, 2021, 8:42 AM Prayank <prayank@tutanota.de> wrote:
> Hi Jeremy,
>
> > Wheres the info come from? Well, multiple places. We could get it from =
a
> third party (maybe using an attestation chain of some sort?), or there ar=
e
> certain ways it could be self-referential (like for powswap
> <https://powswap.com>).
>
> > Now let=E2=80=99s define a threshold oracle =E2=80=93 we wouldn=E2=80=
=99t want to trust just one
> lousy oracle, so let=E2=80=99s trust M out of N of them!
>
> Similar approach is used in discreet log contracts for multi oracles.
> There is even a project for P2P derivatives but it was not used for any
> real trades on mainnet or further developed. What difference would OP_CTV
> make in this project if its implemented in Bitcoin?
>
> https://github.com/p2pderivatives/p2pderivatives-client
>
> https://github.com/p2pderivatives/p2pderivatives-server
>
> https://github.com/p2pderivatives/p2pderivatives-oracle
>
Discussed a bit here
https://twitter.com/JeremyRubin/status/1473175356366458883?t=3D7U4vI4CYIM82=
vNc8T8n6_g&s=3D19
A core benefit is unilateral opens. I.e. you can pay someone into a
derivative without them being online.
For example, you want to receive your payment in a Bitcoin backed Magnesium
risk reversal in exchange for some phys magnesium. I can create the
contract with your signing keys offline.
>
>
> > Does this NEED CTV?
> No, not in particular. Most of this stuff could be done with online signe=
r
> server federation between you and counterparty. CTV makes some stuff nice=
r
> though, and opens up new possibilities for opening these contracts
> unilaterally.
>
> Nicer? How would unilateral derivatives work because my understanding was
> that you always need a peer to take the other side of the trade. I wish w=
e
> could discuss this topic in a trading community with some Bitcoiners that
> even had some programming knowledge.
>
> Derivatives are interesting and less explored or used in Bitcoin projects=
.
> They could be useful in solving lot of problems.
>
>
I have a decent understanding of a bit of the trading world and can answer
most questions you have, or point you to someone else who would.
The way a unilateral option would work is that I can create a payment to
you paying you into an Option expiring next week that gives you the right
to purchase from me a magnesium risk reversal contract that settles next
month.
An example where this type of pattern must be used is in conjunction with
DCFMP and PowSwap where miners could commit to, instead of just keys,
'trade specs' and an Automatic market maker inside the DCFMP could attempt
to match that miner to a counterparty who wants the opposite hashrate
hedge. The need to exchange signatures would make this unviable otherwise.
--00000000000094bc5e05d3e787b5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"auto"><div><br><br><div class=3D"gmail_quote"><div dir=3D"ltr" =
class=3D"gmail_attr">On Fri, Dec 24, 2021, 8:42 AM Prayank <<a href=3D"m=
ailto:prayank@tutanota.de">prayank@tutanota.de</a>> wrote:<br></div><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #c=
cc solid;padding-left:1ex">
=20
=20
=20
<div>
<div>Hi Jeremy,<br></div><div dir=3D"auto"><br></div><div dir=3D"auto">>=
Wheres the info come from? Well, multiple places. We could get it from a t=
hird party (maybe using an
attestation chain of some sort?), or there are certain ways it could be
self-referential (like for <a href=3D"https://powswap.com" rel=3D"noopener =
noreferrer noreferrer" target=3D"_blank">powswap</a>).<br></div><div dir=3D=
"auto"><br></div><div dir=3D"auto">> Now let=E2=80=99s define a threshol=
d oracle =E2=80=93 we wouldn=E2=80=99t want to trust just one
lousy oracle, so let=E2=80=99s trust M out of N of them!<br><br>Similar app=
roach is used in discreet log contracts for multi oracles. There is even a =
project for P2P derivatives but it was not used for any real trades on main=
net or further developed. What difference would OP_CTV make in this project=
if its implemented in Bitcoin?</div><div dir=3D"auto"><br></div><div dir=
=3D"auto"><a href=3D"https://github.com/p2pderivatives/p2pderivatives-clien=
t" target=3D"_blank" rel=3D"noreferrer">https://github.com/p2pderivatives/p=
2pderivatives-client</a><br></div><div dir=3D"auto"><br></div><div dir=3D"a=
uto"><a href=3D"https://github.com/p2pderivatives/p2pderivatives-server" ta=
rget=3D"_blank" rel=3D"noreferrer">https://github.com/p2pderivatives/p2pder=
ivatives-server</a><br></div><div dir=3D"auto"><br></div><div dir=3D"auto">=
<a href=3D"https://github.com/p2pderivatives/p2pderivatives-oracle" target=
=3D"_blank" rel=3D"noreferrer">https://github.com/p2pderivatives/p2pderivat=
ives-oracle</a><br></div><div dir=3D"auto"></div></div></blockquote></div><=
/div><div dir=3D"auto"><br></div><div dir=3D"auto">Discussed a bit here=C2=
=A0</div><div dir=3D"auto"><a href=3D"https://twitter.com/JeremyRubin/statu=
s/1473175356366458883?t=3D7U4vI4CYIM82vNc8T8n6_g&s=3D19">https://twitte=
r.com/JeremyRubin/status/1473175356366458883?t=3D7U4vI4CYIM82vNc8T8n6_g&=
;s=3D19</a></div><div dir=3D"auto"><br></div><div dir=3D"auto"><br></div><d=
iv dir=3D"auto">A core benefit is unilateral opens. I.e. you can pay someon=
e into a derivative without them being online.</div><div dir=3D"auto"><br><=
/div><div dir=3D"auto"><br></div><div dir=3D"auto">For example, you want to=
receive your payment in a Bitcoin backed Magnesium risk reversal in exchan=
ge for some phys magnesium. I can create the contract with your signing key=
s offline.=C2=A0</div><div dir=3D"auto"><div class=3D"gmail_quote"><blockqu=
ote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc s=
olid;padding-left:1ex"><div><div dir=3D"auto"><br></div><div dir=3D"auto"><=
br></div><div dir=3D"auto">> Does this NEED CTV?<br></div><div dir=3D"au=
to">No, not in particular. Most of this stuff could be done with online sig=
ner server federation between you and counterparty. CTV makes some stuff ni=
cer though, and opens up new possibilities for opening these contracts unil=
aterally.<br></div><div dir=3D"auto"><br></div><div dir=3D"auto">Nicer? How=
would unilateral derivatives work because my understanding was that you al=
ways need a peer to take the other side of the trade. I wish we could discu=
ss this topic in a trading community with some Bitcoiners that even had som=
e programming knowledge.<br></div><div dir=3D"auto"><br></div><div dir=3D"a=
uto">Derivatives are interesting and less explored or used in Bitcoin proje=
cts. They could be useful in solving lot of problems.<br></div><div dir=3D"=
auto"><br></div><div></div></div></blockquote></div></div><div dir=3D"auto"=
><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div></div>=
</div></blockquote></div></div><div dir=3D"auto"><br></div><div dir=3D"auto=
">I have a decent understanding of a bit of the trading world and can answe=
r most questions you have, or point you to someone else who would.=C2=A0</d=
iv><div dir=3D"auto"><br></div><div dir=3D"auto"><br></div><div dir=3D"auto=
">The way a unilateral option would work is that I can create a payment to =
you paying you into an Option expiring next week that gives you the right t=
o purchase from me a magnesium risk reversal contract that settles next mon=
th.=C2=A0</div><div dir=3D"auto"><br></div><div dir=3D"auto"><br></div><div=
dir=3D"auto"><br></div><div dir=3D"auto">An example where this type of pat=
tern must be used is in conjunction with DCFMP and PowSwap where miners cou=
ld commit to, instead of just keys, 'trade specs' and an Automatic =
market maker inside the DCFMP could attempt to match that miner to a counte=
rparty who wants the opposite hashrate hedge. The need to exchange signatur=
es would make this unviable otherwise.</div></div>
--00000000000094bc5e05d3e787b5--
|