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
|
Return-Path: <hampus.sjoberg@gmail.com>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
[172.17.192.35])
by mail.linuxfoundation.org (Postfix) with ESMTPS id 4766E8DC
for <bitcoin-dev@lists.linuxfoundation.org>;
Fri, 3 Nov 2017 12:59:50 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-wr0-f176.google.com (mail-wr0-f176.google.com
[209.85.128.176])
by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 589004FC
for <bitcoin-dev@lists.linuxfoundation.org>;
Fri, 3 Nov 2017 12:59:49 +0000 (UTC)
Received: by mail-wr0-f176.google.com with SMTP id y39so2445654wrd.4
for <bitcoin-dev@lists.linuxfoundation.org>;
Fri, 03 Nov 2017 05:59:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
h=mime-version:in-reply-to:references:from:date:message-id:subject:to
:cc; bh=gbuHXyyfeRFJqTz5f94UX2lOR63Vov77k5zWA2Iuqnc=;
b=KBwV9gBEAnck0kamOkni8M+lKkaU8tPREm1kDovCjo8D8OsTP+/xQDw+dyLPEXltt/
Bi4B3BlLC58n3QyQaMIEtW3LVZGaLEjhgLMqmV6NXtvaaahXPJkIs4UQnz8RX2U4DzQ4
Hj12Cju9DkbF8c1v35BGL2FjLgiyoCo0+aNQnWzQXywiDUbu6U1t9Ps99T2qLOeaaAAM
U5ow3tPw0TYh+aMfXkUG8aXdSynmkRtYctrxSOj5ZSmQLxgTMEFdk2LN5O1eVFydRBkf
iUFI0dbWVOJU6pVXBqb4tSD4H4ssv3OJU1CvMFCoT4Q5yP/qcoGyeZkERBQTnZZLdE7B
/Fzw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20161025;
h=x-gm-message-state:mime-version:in-reply-to:references:from:date
:message-id:subject:to:cc;
bh=gbuHXyyfeRFJqTz5f94UX2lOR63Vov77k5zWA2Iuqnc=;
b=bmR2eF8VsbmBQHfhwWriC5f57kTNIzEa4PGRMglPiN05l0yCr2eqay1dLNLHXMmBAW
jbhjZxDIHZhPFmUFkFOB7knfYc85H1T0QM61P285fzDzspEiYlWsUKVYtpG+6N+7OeJW
Yt4uiARPT+BVLeJDXBdjlSo8J8my02TEJiy/fJ6u8qDNICk2+BAlD97epx6AzUZHFS0s
GsKNus+fzLGoWbCmoTWIv+j0RnysPiVM/kv7ra7ZlRWQF+NsVAYo2r0ErJkhmdlhtaNA
wPwxNpknbSqhXKhrZSOJH1Vpcjx28J2iEiUpIV20psVQNEap68cz18Q/a3nU03gsjXyr
b8AA==
X-Gm-Message-State: AMCzsaUYXTBHvcvP6ZijLzyg7J0/Urgtgumt+t2bTb8OImARtylwkcnH
A44F8a7XcKSiQOJL2thP6ApEeVa+/sK9DbsRn9s=
X-Google-Smtp-Source: ABhQp+QsX8yAJ/EBh88sARlN1k6MYyy1+laCcFZAFovnDGbbZCYmfK9TDIthvCY5fRPWxZzcmozh0qYwRVIA5XhISOk=
X-Received: by 10.223.176.183 with SMTP id i52mr6273116wra.257.1509713987875;
Fri, 03 Nov 2017 05:59:47 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.133.5 with HTTP; Fri, 3 Nov 2017 05:59:46 -0700 (PDT)
In-Reply-To: <CAMZUoKk+8MFLywQB3jQFkk7BYZ4Rw3Paj=ErQe8pZ0beGwu0RA@mail.gmail.com>
References: <mailman.5469.1509483670.27509.bitcoin-dev@lists.linuxfoundation.org>
<052D6E20-7194-4645-B628-1B7B7FECF330@gmail.com>
<CAMZUoKk+8MFLywQB3jQFkk7BYZ4Rw3Paj=ErQe8pZ0beGwu0RA@mail.gmail.com>
From: =?UTF-8?Q?Hampus_Sj=C3=B6berg?= <hampus.sjoberg@gmail.com>
Date: Fri, 3 Nov 2017 13:59:46 +0100
Message-ID: <CAFMkqK_rXb9fAiGC_qNf5nj_cShJgAB4qTUsCM+R07DSAau2TA@mail.gmail.com>
To: "Russell O'Connor" <roconnor@blockstream.io>,
Bitcoin Protocol Discussion <bitcoin-dev@lists.linuxfoundation.org>
Content-Type: multipart/alternative; boundary="001a11413b6af5b9c2055d13adae"
X-Spam-Status: No, score=0.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID,
DKIM_VALID_AU,FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,
RCVD_IN_SORBS_SPAM autolearn=disabled version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
smtp1.linux-foundation.org
Cc: =?UTF-8?Q?JOSE_FEMENIAS_CA=C3=91UELO?= <jose.femenias@gmail.com>
Subject: Re: [bitcoin-dev] Simplicity proposal - Jets?
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
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, 03 Nov 2017 12:59:50 -0000
--001a11413b6af5b9c2055d13adae
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Thank you for your answer, Russel.
When a code path takes advantage of a jet, does the Simplicity code still
need to be publicly available/visible in the blockchain? I imagine that for
big algorithms (say for example EDCA verification/SHA256 hashing etc), it
would take up a lot of space in the blockchain.
Is there any way to mitigate this?
I guess in a softfork for a jet, the Simplicity code for a jet could be
defined as "consensus", instead of needed to be provided within every
script output.
When the Simplicity interpretor encounters an expression that has a jet, it
would run the C/Assembly code instead of interpreting the Simplicity code.
By formal verification we would be sure they match.
Greetings
Hampus
2017-11-03 2:10 GMT+01:00 Russell O'Connor via bitcoin-dev <
bitcoin-dev@lists.linuxfoundation.org>:
> Hi Jose,
>
> Jets are briefly discussed in section 3.4 of https://blockstream.com/
> simplicity.pdf
>
> The idea is that we can recognize some set of popular Simplicity
> expressions, and when the Simplicity interpreter encounters one of these
> expressions it can skip over the Simplicity interpreter and instead
> directly evaluate the function using specialized C or assembly code.
>
> For example, when the Simplicity interpreter encounters the Simplicity
> expression for ECDSA verification, it might directly call into libsecp
> rather than continuing the ECDSA verification using interpreted Simplicit=
y.
>
> HTH.
>
>
> On Nov 2, 2017 18:35, "JOSE FEMENIAS CA=C3=91UELO via bitcoin-dev" <
> bitcoin-dev@lists.linuxfoundation.org> wrote:
>
> Hi,
>
> I am trying to follow this Simplicity proposal and I am seeing all over
> references to =E2=80=98jets=E2=80=99, but I haven=E2=80=99t been able to =
find any good reference to
> it.
> Can anyone give me a brief explanation and or a link pointing to this
> feature?
> Thanks
>
> On 31 Oct 2017, at 22:01, bitcoin-dev-request@lists.linuxfoundation.org
> wrote:
>
> The plan is that discounted jets will be explicitly labeled as jets in th=
e
> commitment. If you can provide a Merkle path from the root to a node tha=
t
> is an explicit jet, but that jet isn't among the finite number of known
> discounted jets,
>
>
>
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>
>
>
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>
>
--001a11413b6af5b9c2055d13adae
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div><div><div><div>Thank you for your answer, Russel.</di=
v><div><br></div>When a code path takes advantage of a jet, does the Simpl=
icity code still need to be publicly available/visible in the blockchain? I=
imagine that for big algorithms (say for example EDCA verification/SHA256 =
hashing etc), it would take up a lot of space in the blockchain.<br></div>I=
s there any way to mitigate this?</div><div><br></div><div>I guess in a sof=
tfork for a jet, the Simplicity code for a jet could be defined as "co=
nsensus", instead of needed to be provided within every script output.=
</div><div>When the Simplicity interpretor encounters an expression that ha=
s a jet, it would run the C/Assembly code instead of interpreting the Simpl=
icity code. By formal verification we would be sure they match.<br></div><d=
iv><br></div>Greetings<br></div>Hampus<br></div><div class=3D"gmail_extra">=
<br><div class=3D"gmail_quote">2017-11-03 2:10 GMT+01:00 Russell O'Conn=
or via bitcoin-dev <span dir=3D"ltr"><<a href=3D"mailto:bitcoin-dev@list=
s.linuxfoundation.org" target=3D"_blank">bitcoin-dev@lists.linuxfoundation.=
org</a>></span>:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 =
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"auto"><di=
v>Hi Jose,<div dir=3D"auto"><br></div><div dir=3D"auto">Jets are briefly di=
scussed in section 3.4 of <a href=3D"https://blockstream.com/simplicity.pdf=
" target=3D"_blank">https://blockstream.com/<wbr>simplicity.pdf</a></div><d=
iv dir=3D"auto"><br></div><div dir=3D"auto">The idea is that we can recogni=
ze some set of popular Simplicity expressions, and when the Simplicity inte=
rpreter encounters one of these expressions it can skip over the Simplicity=
interpreter and instead directly evaluate the function using specialized C=
or assembly code.</div><div dir=3D"auto"><br></div><div dir=3D"auto">For e=
xample, when the Simplicity interpreter encounters the Simplicity expressio=
n for ECDSA verification, it might directly call into libsecp rather than c=
ontinuing the ECDSA verification using interpreted Simplicity.</div><div di=
r=3D"auto"><br></div><div dir=3D"auto">HTH.</div><br><div class=3D"gmail_ex=
tra"><br><div class=3D"gmail_quote"><div><div class=3D"h5">On Nov 2, 2017 1=
8:35, "JOSE FEMENIAS CA=C3=91UELO via bitcoin-dev" <<a href=3D=
"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_blank">bitcoin-de=
v@lists.<wbr>linuxfoundation.org</a>> wrote:<br type=3D"attribution"></d=
iv></div><blockquote class=3D"m_3183610566517422745quote" style=3D"margin:0=
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class=3D"h=
5"><div style=3D"word-wrap:break-word">Hi,<div><br></div><div>I am trying t=
o follow this Simplicity proposal and I am seeing all over references to =
=E2=80=98jets=E2=80=99, but I haven=E2=80=99t been able to find any good re=
ference to it.</div><div>Can anyone give me a brief explanation and or a li=
nk pointing to this feature?</div><div>Thanks</div><div><br></div><div><div=
><blockquote type=3D"cite"><div>On 31 Oct 2017, at 22:01, <a href=3D"mailto=
:bitcoin-dev-request@lists.linuxfoundation.org" target=3D"_blank">bitcoin-d=
ev-request@lists.linu<wbr>xfoundation.org</a> wrote:</div><br class=3D"m_31=
83610566517422745m_-8057571337992392675Apple-interchange-newline"><div><spa=
n style=3D"font-family:Helvetica;font-size:12px;font-style:normal;font-vari=
ant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;t=
ext-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;floa=
t:none;display:inline!important">The plan is that discounted jets will be e=
xplicitly labeled as jets in the</span><br style=3D"font-family:Helvetica;f=
ont-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal=
;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none=
;white-space:normal;word-spacing:0px"><span style=3D"font-family:Helvetica;=
font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:norma=
l;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:non=
e;white-space:normal;word-spacing:0px;float:none;display:inline!important">=
commitment.=C2=A0 If you can provide a Merkle path from the root to a node =
that</span><br style=3D"font-family:Helvetica;font-size:12px;font-style:nor=
mal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-=
align:start;text-indent:0px;text-transform:none;white-space:normal;word-spa=
cing:0px"><span style=3D"font-family:Helvetica;font-size:12px;font-style:no=
rmal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text=
-align:start;text-indent:0px;text-transform:none;white-space:normal;word-sp=
acing:0px;float:none;display:inline!important">is an explicit jet, but that=
jet isn't among the finite number of known</span><br style=3D"font-fam=
ily:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;fon=
t-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text=
-transform:none;white-space:normal;word-spacing:0px"><span style=3D"font-fa=
mily:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;fo=
nt-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;tex=
t-transform:none;white-space:normal;word-spacing:0px;float:none;display:inl=
ine!important">discounted jets,</span></div></blockquote></div><br></div></=
div><br></div></div>______________________________<wbr>_________________<br=
>
bitcoin-dev mailing list<br>
<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_blank">=
bitcoin-dev@lists.linuxfoundat<wbr>ion.org</a><br>
<a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" =
rel=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundation.<wbr>org=
/mailman/listinfo/bitcoin-d<wbr>ev</a><br>
<br></blockquote></div><br></div></div></div>
<br>______________________________<wbr>_________________<br>
bitcoin-dev mailing list<br>
<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists.=
<wbr>linuxfoundation.org</a><br>
<a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" =
rel=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundation.<wbr>org=
/mailman/listinfo/bitcoin-<wbr>dev</a><br>
<br></blockquote></div><br></div>
--001a11413b6af5b9c2055d13adae--
|