File tree 3 files changed +408
-9
lines changed
docs/devdocs/Writing Smart Contracts
3 files changed +408
-9
lines changed Original file line number Diff line number Diff line change
1
+ # 🔥 Gas and Banchmarks
2
+
3
+ This section will list the gas costs for every operation based on it's inputs.
4
+ The way we decided how much gas will each and every operation consume was by checking how much time each operation takes in a QUERY. We decided to set the gas cost of ` FHE.div ` of ` euint32 ` to be around 1 million gas units and set the price of other operations accordingly
5
+
6
+ ::: tip
7
+ The current gas limit for a tranasaction is set to be 50 million
8
+ :::
9
+
10
+ <table >
11
+ <thead>
12
+ <tr>
13
+ <th>FHE.sol function</th>
14
+ <th>Input</th>
15
+ <th>Time in Query (ms)</th>
16
+ <th>Gas Units </th>
17
+ </tr>
18
+ </thead>
19
+ <tbody>
20
+ <tr>
21
+ <td rowspan="3">add</td>
22
+ <td>euint8</td>
23
+ <td>35</td>
24
+ <td>7,315</td>
25
+ </tr>
26
+ <tr>
27
+ <td>euint16</td>
28
+ <td>73</td>
29
+ <td>15,275</td>
30
+ </tr>
31
+ <tr>
32
+ <td>euint32</td>
33
+ <td>163</td>
34
+ <td>34,067</td>
35
+ </tr>
36
+ <tr>
37
+ <td rowspan="3">asEuint</td>
38
+ <td>inEuint</td>
39
+ <td>44</td>
40
+ <td>9,196</td>
41
+ </tr>
42
+ <tr>
43
+ <td>euint</td>
44
+ <td>5</td>
45
+ <td>1,045</td>
46
+ </tr>
47
+ <tr>
48
+ <td>uint</td>
49
+ <td>5</td>
50
+ <td>1,045</td>
51
+ </tr>
52
+ <tr>
53
+ <td>sealOutput</td>
54
+ <td>*</td>
55
+ <td>23</td>
56
+ <td>2,507</td>
57
+ </tr>
58
+ <tr>
59
+ <td>decrypt</td>
60
+ <td>*</td>
61
+ <td>18</td>
62
+ <td>3,762</td>
63
+ </tr>
64
+ <tr>
65
+ <td rowspan="3">lte</td>
66
+ <td>euint8</td>
67
+ <td>18</td>
68
+ <td>3,762</td>
69
+ </tr>
70
+ <tr>
71
+ <td>euint16</td>
72
+ <td>29</td>
73
+ <td>6,061</td>
74
+ </tr>
75
+ <tr>
76
+ <td>euint32</td>
77
+ <td>43</td>
78
+ <td>8,987</td>
79
+ </tr>
80
+ <tr>
81
+ <td rowspan="3">sbb</td>
82
+ <td>euint8</td>
83
+ <td>35</td>
84
+ <td>7,315</td>
85
+ </tr>
86
+ <tr>
87
+ <td>euint16</td>
88
+ <td>73</td>
89
+ <td>15,275</td>
90
+ </tr>
91
+ <tr>
92
+ <td>euint32</td>
93
+ <td>163</td>
94
+ <td>34,067</td>
95
+ </tr>
96
+ <tr>
97
+ <td rowspan="3">mul</td>
98
+ <td>euint8</td>
99
+ <td>94</td>
100
+ <td>19,646</td>
101
+ </tr>
102
+ <tr>
103
+ <td>euint16</td>
104
+ <td>311</td>
105
+ <td>64,999</td>
106
+ </tr>
107
+ <tr>
108
+ <td>euint32</td>
109
+ <td>1127</td>
110
+ <td>235,543</td>
111
+ </tr>
112
+ <tr>
113
+ <td rowspan="3">lt</td>
114
+ <td>euint8</td>
115
+ <td>22</td>
116
+ <td>4,598</td>
117
+ </tr>
118
+ <tr>
119
+ <td>euint16</td>
120
+ <td>36</td>
121
+ <td>7,524</td>
122
+ </tr>
123
+ <tr>
124
+ <td>euint32</td>
125
+ <td>60</td>
126
+ <td>12,540</td>
127
+ </tr>
128
+ <tr>
129
+ <td rowspan="3">select</td>
130
+ <td>euint8</td>
131
+ <td>214</td>
132
+ <td>44,726</td>
133
+ </tr>
134
+ <tr>
135
+ <td>euint16</td>
136
+ <td>316</td>
137
+ <td>66,044</td>
138
+ </tr>
139
+ <tr>
140
+ <td>euint32</td>
141
+ <td>549</td>
142
+ <td>114,741</td>
143
+ </tr>
144
+ <tr>
145
+ <td>require</td>
146
+ <td>*</td>
147
+ <td>65</td>
148
+ <td>13,585</td>
149
+ </tr>
150
+ <tr>
151
+ <td rowspan="3">div</td>
152
+ <td>euint8</td>
153
+ <td>447</td>
154
+ <td>93,423</td>
155
+ </tr>
156
+ <tr>
157
+ <td>euint16</td>
158
+ <td>1310</td>
159
+ <td>273,790</td>
160
+ </tr>
161
+ <tr>
162
+ <td>euint32</td>
163
+ <td>4800</td>
164
+ <td>1,003,200</td>
165
+ </tr>
166
+ <tr>
167
+ <td rowspan="3">gt</td>
168
+ <td>euint8</td>
169
+ <td>21</td>
170
+ <td>4,389</td>
171
+ </tr>
172
+ <tr>
173
+ <td>euint16</td>
174
+ <td>29</td>
175
+ <td>6,061</td>
176
+ </tr>
177
+ <tr>
178
+ <td>euint32</td>
179
+ <td>45</td>
180
+ <td>9,405</td>
181
+ </tr>
182
+ <tr>
183
+ <td rowspan="3">gte</td>
184
+ <td>euint8</td>
185
+ <td>21</td>
186
+ <td>4,389</td>
187
+ </tr>
188
+ <tr>
189
+ <td>euint16</td>
190
+ <td>29</td>
191
+ <td>6,061</td>
192
+ </tr>
193
+ <tr>
194
+ <td>euint32</td>
195
+ <td>45</td>
196
+ <td>9,405</td>
197
+ </tr>
198
+ <tr>
199
+ <td rowspan="3">rem</td>
200
+ <td>euint8</td>
201
+ <td>447</td>
202
+ <td>93,423</td>
203
+ </tr>
204
+ <tr>
205
+ <td>euint16</td>
206
+ <td>1310</td>
207
+ <td>273,790</td>
208
+ </tr>
209
+ <tr>
210
+ <td>euint32</td>
211
+ <td>4800</td>
212
+ <td>1,003,200</td>
213
+ </tr>
214
+ <tr>
215
+ <td rowspan="3">or</td>
216
+ <td>euint8</td>
217
+ <td>13</td>
218
+ <td>2,717</td>
219
+ </tr>
220
+ <tr>
221
+ <td>euint16</td>
222
+ <td>21</td>
223
+ <td>4,389</td>
224
+ </tr>
225
+ <tr>
226
+ <td>euint32</td>
227
+ <td>38</td>
228
+ <td>7,942</td>
229
+ </tr>
230
+ <tr>
231
+ <td rowspan="3">xor</td>
232
+ <td>euint8</td>
233
+ <td>13</td>
234
+ <td>2,717</td>
235
+ </tr>
236
+ <tr>
237
+ <td>euint16</td>
238
+ <td>21</td>
239
+ <td>4,389</td>
240
+ </tr>
241
+ <tr>
242
+ <td>euint32</td>
243
+ <td>38</td>
244
+ <td>7,942</td>
245
+ </tr>
246
+ <tr>
247
+ <td rowspan="3">eq</td>
248
+ <td>euint8</td>
249
+ <td>18</td>
250
+ <td>3,762</td>
251
+ </tr>
252
+ <tr>
253
+ <td>euint16</td>
254
+ <td>25</td>
255
+ <td>5,225</td>
256
+ </tr>
257
+ <tr>
258
+ <td>euint32</td>
259
+ <td>50</td>
260
+ <td>10,450</td>
261
+ </tr>
262
+ <tr>
263
+ <td rowspan="3">ne</td>
264
+ <td>euint8</td>
265
+ <td>18</td>
266
+ <td>3,762</td>
267
+ </tr>
268
+ <tr>
269
+ <td>euint16</td>
270
+ <td>25</td>
271
+ <td>5,225</td>
272
+ </tr>
273
+ <tr>
274
+ <td>euint32</td>
275
+ <td>50</td>
276
+ <td>10,450</td>
277
+ </tr>
278
+ <tr>
279
+ <td rowspan="3">min</td>
280
+ <td>euint8</td>
281
+ <td>41</td>
282
+ <td>8,569</td>
283
+ </tr>
284
+ <tr>
285
+ <td>euint16</td>
286
+ <td>75</td>
287
+ <td>15,675</td>
288
+ </tr>
289
+ <tr>
290
+ <td>euint32</td>
291
+ <td>135</td>
292
+ <td>28,215</td>
293
+ </tr>
294
+ <tr>
295
+ <td rowspan="3">max</td>
296
+ <td>euint8</td>
297
+ <td>41</td>
298
+ <td>8,569</td>
299
+ </tr>
300
+ <tr>
301
+ <td>euint16</td>
302
+ <td>75</td>
303
+ <td>15,675</td>
304
+ </tr>
305
+ <tr>
306
+ <td>euint32</td>
307
+ <td>135</td>
308
+ <td>28,215</td>
309
+ </tr>
310
+ <tr>
311
+ <td rowspan="3">shl</td>
312
+ <td>euint8</td>
313
+ <td>82</td>
314
+ <td>17,138</td>
315
+ </tr>
316
+ <tr>
317
+ <td>euint16</td>
318
+ <td>190</td>
319
+ <td>39,710</td>
320
+ </tr>
321
+ <tr>
322
+ <td>euint32</td>
323
+ <td>422</td>
324
+ <td>88,198</td>
325
+ </tr>
326
+ <tr>
327
+ <td rowspan="3">shr</td>
328
+ <td>euint8</td>
329
+ <td>82</td>
330
+ <td>17,138</td>
331
+ </tr>
332
+ <tr>
333
+ <td>euint16</td>
334
+ <td>190</td>
335
+ <td>39,710</td>
336
+ </tr>
337
+ <tr>
338
+ <td>euint32</td>
339
+ <td>422</td>
340
+ <td>88,198</td>
341
+ </tr>
342
+ <tr>
343
+ <td rowspan="3">not</td>
344
+ <td>euint8</td>
345
+ <td>12</td>
346
+ <td>2,508</td>
347
+ </tr>
348
+ <tr>
349
+ <td>euint16</td>
350
+ <td>22</td>
351
+ <td>4,598</td>
352
+ </tr>
353
+ <tr>
354
+ <td>euint32</td>
355
+ <td>36</td>
356
+ <td>7,524</td>
357
+ </tr>
358
+ </tbody>
359
+ </table >
You can’t perform that action at this time.
0 commit comments