kzg_rs/
consts.rs

1pub const BYTES_PER_G1_POINT: usize = 48;
2pub const BYTES_PER_G2_POINT: usize = 96;
3pub const BYTES_PER_FIELD_ELEMENT: usize = 32;
4pub const NUM_G1_POINTS: usize = 4096;
5pub const NUM_G2_POINTS: usize = 65;
6pub const NUM_ROOTS_OF_UNITY: usize = 4096;
7pub const NUM_FIELD_ELEMENTS_PER_BLOB: usize = 4096;
8pub const BYTES_PER_BLOB: usize = NUM_FIELD_ELEMENTS_PER_BLOB * BYTES_PER_FIELD_ELEMENT;
9pub const BYTES_PER_COMMITMENT: usize = 48;
10pub const BYTES_PER_PROOF: usize = 48;
11pub const DOMAIN_STR_LENGTH: usize = 16;
12pub const CHALLENGE_INPUT_SIZE: usize =
13    DOMAIN_STR_LENGTH + 16 + BYTES_PER_BLOB + BYTES_PER_COMMITMENT;
14pub const FIAT_SHAMIR_PROTOCOL_DOMAIN: &str = "FSBLOBVERIFY_V1_";
15pub const RANDOM_CHALLENGE_KZG_BATCH_DOMAIN: &str = "RCKZGBATCH___V1_";
16
17pub const SCALE2_ROOT_OF_UNITY: [[u64; 4]; 32] = [
18    [
19        0x0000000000000001,
20        0x0000000000000000,
21        0x0000000000000000,
22        0x0000000000000000,
23    ],
24    [
25        0xffffffff00000000,
26        0x53bda402fffe5bfe,
27        0x3339d80809a1d805,
28        0x73eda753299d7d48,
29    ],
30    [
31        0x0001000000000000,
32        0xec03000276030000,
33        0x8d51ccce760304d0,
34        0x0000000000000000,
35    ],
36    [
37        0x7228fd3397743f7a,
38        0xb38b21c28713b700,
39        0x8c0625cd70d77ce2,
40        0x345766f603fa66e7,
41    ],
42    [
43        0x53ea61d87742bcce,
44        0x17beb312f20b6f76,
45        0xdd1c0af834cec32c,
46        0x20b1ce9140267af9,
47    ],
48    [
49        0x360c60997369df4e,
50        0xbf6e88fb4c38fb8a,
51        0xb4bcd40e22f55448,
52        0x50e0903a157988ba,
53    ],
54    [
55        0x8140d032f0a9ee53,
56        0x2d967f4be2f95155,
57        0x14a1e27164d8fdbd,
58        0x45af6345ec055e4d,
59    ],
60    [
61        0x5130c2c1660125be,
62        0x98d0caac87f5713c,
63        0xb7c68b4d7fdd60d0,
64        0x6898111413588742,
65    ],
66    [
67        0x4935bd2f817f694b,
68        0x0a0865a899e8deff,
69        0x6b368121ac0cf4ad,
70        0x4f9b4098e2e9f12e,
71    ],
72    [
73        0x4541b8ff2ee0434e,
74        0xd697168a3a6000fe,
75        0x39feec240d80689f,
76        0x095166525526a654,
77    ],
78    [
79        0x3c28d666a5c2d854,
80        0xea437f9626fc085e,
81        0x8f4de02c0f776af3,
82        0x325db5c3debf77a1,
83    ],
84    [
85        0x4a838b5d59cd79e5,
86        0x55ea6811be9c622d,
87        0x09f1ca610a08f166,
88        0x6d031f1b5c49c834,
89    ],
90    [
91        0xe206da11a5d36306,
92        0x0ad1347b378fbf96,
93        0xfc3e8acfe0f8245f,
94        0x564c0a11a0f704f4,
95    ],
96    [
97        0x6fdd00bfc78c8967,
98        0x146b58bc434906ac,
99        0x2ccddea2972e89ed,
100        0x485d512737b1da3d,
101    ],
102    [
103        0x034d2ff22a5ad9e1,
104        0xae4622f6a9152435,
105        0xdc86b01c0d477fa6,
106        0x56624634b500a166,
107    ],
108    [
109        0xfbd047e11279bb6e,
110        0xc8d5f51db3f32699,
111        0x483405417a0cbe39,
112        0x3291357ee558b50d,
113    ],
114    [
115        0xd7118f85cd96b8ad,
116        0x67a665ae1fcadc91,
117        0x88f39a78f1aeb578,
118        0x2155379d12180caa,
119    ],
120    [
121        0x08692405f3b70f10,
122        0xcd7f2bd6d0711b7d,
123        0x473a2eef772c33d6,
124        0x224262332d8acbf4,
125    ],
126    [
127        0x6f421a7d8ef674fb,
128        0xbb97a3bf30ce40fd,
129        0x652f717ae1c34bb0,
130        0x2d3056a530794f01,
131    ],
132    [
133        0x194e8c62ecb38d9d,
134        0xad8e16e84419c750,
135        0xdf625e80d0adef90,
136        0x520e587a724a6955,
137    ],
138    [
139        0xfece7e0e39898d4b,
140        0x2f69e02d265e09d9,
141        0xa57a6e07cb98de4a,
142        0x03e1c54bcb947035,
143    ],
144    [
145        0xcd3979122d3ea03a,
146        0x46b3105f04db5844,
147        0xc70d0874b0691d4e,
148        0x47c8b5817018af4f,
149    ],
150    [
151        0xc6e7a6ffb08e3363,
152        0xe08fec7c86389bee,
153        0xf2d38f10fbb8d1bb,
154        0x0abe6a5e5abcaa32,
155    ],
156    [
157        0x5616c57de0ec9eae,
158        0xc631ffb2585a72db,
159        0x5121af06a3b51e3c,
160        0x73560252aa0655b2,
161    ],
162    [
163        0x92cf4deb77bd779c,
164        0x72cf6a8029b7d7bc,
165        0x6e0bcd91ee762730,
166        0x291cf6d68823e687,
167    ],
168    [
169        0xce32ef844e11a51e,
170        0xc0ba12bb3da64ca5,
171        0x0454dc1edc61a1a3,
172        0x019fe632fd328739,
173    ],
174    [
175        0x531a11a0d2d75182,
176        0x02c8118402867ddc,
177        0x116168bffbedc11d,
178        0x0a0a77a3b1980c0d,
179    ],
180    [
181        0xe2d0a7869f0319ed,
182        0xb94f1101b1d7a628,
183        0xece8ea224f31d25d,
184        0x23397a9300f8f98b,
185    ],
186    [
187        0xd7b688830a4f2089,
188        0x6558e9e3f6ac7b41,
189        0x99e276b571905a7d,
190        0x52dd465e2f094256,
191    ],
192    [
193        0x474650359d8e211b,
194        0x84d37b826214abc6,
195        0x8da40c1ef2bb4598,
196        0x0c83ea7744bf1bee,
197    ],
198    [
199        0x694341f608c9dd56,
200        0xed3a181fabb30adc,
201        0x1339a815da8b398f,
202        0x2c6d4e4511657e1e,
203    ],
204    [
205        0x63e7cb4906ffc93f,
206        0xf070bb00e28a193d,
207        0xad1715b02e5713b5,
208        0x4b5371495990693f,
209    ],
210];
211
212/// Constant representing the modulus
213/// q = 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001
214pub const MODULUS: [u64; 4] = [
215    0xffff_ffff_0000_0001,
216    0x53bd_a402_fffe_5bfe,
217    0x3339_d808_09a1_d805,
218    0x73ed_a753_299d_7d48,
219];