┏━━━━┳━━━━━━━━━━━━━━━━━┓
┃ 4 ┃ 7A 6B 65 79 ┃ Magic "zkey"
┗━━━━┻━━━━━━━━━━━━━━━━━┛
┏━━━━┳━━━━━━━━━━━━━━━━━┓
┃ 4 ┃ 01 00 00 00 ┃ Version 1
┗━━━━┻━━━━━━━━━━━━━━━━━┛
┏━━━━┳━━━━━━━━━━━━━━━━━┓
┃ 4 ┃ 0A 00 00 00 ┃ Number of Sections
┗━━━━┻━━━━━━━━━━━━━━━━━┛
┏━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ 4 ┃ sectionType ┃ 8 ┃ SectionSize ┃
┗━━━━┻━━━━━━━━━━━━━━━━━┻━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━━━━┓
┃ ┃
┃ ┃
┃ ┃
┃ Section Content ┃
┃ ┃
┃ ┃
┃ ┃
┗━━━━━━━━━━━━━━━━━━━━━┛
...
...
...
Currently, there are 17 defined sections:
- 0x00000001 : Header section
- 0x00000002 : FFLONK header section
- 0x00000003 : Additions section
- 0x00000004 : A map section
- 0x00000005 : B map section
- 0x00000006 : C map section
- 0x00000007 : QL section
- 0x00000008 : QR section
- 0x00000009 : QM section
- 0x0000000A : QO section
- 0x0000000B : QC section
- 0x0000000C : Sigma 1 section
- 0x0000000D : Sigma 2 section
- 0x0000000E : Sigma 3 section
- 0x0000000F : Lagrange polynomials section
- 0x00000010 : Powers of tau section
- 0x00000011 : C0 section
┏━━━━━━━━━━━━━┓
┃ 7A 6B 65 79 ┃ Magic "zkey"
┗━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━┓
┃ 01 00 00 00 ┃ Version 1
┗━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━┓
┃ 0E 00 00 00 ┃ Number of Sections
┗━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━┓
┃ 01 00 00 00 ┃ Section Id
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Section size
┣━━━━━━━━━━━━━┫
┃ 0A 00 00 00 ┃ FFlonk protocol ID: 10
┗━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━┓
┃ 02 00 00 00 ┃ Section Id
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Section size
┣━━━━━━━━━━━━━┫
┃ 4 bytes ┃ Prime Q size in bytes
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Prime Q
┣━━━━━━━━━━━━━┫
┃ 4 bytes ┃ Prime R size in bytes
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Prime R
┣━━━━━━━━━━━━━┫
┃ 4 bytes ┃ Number of variables
┣━━━━━━━━━━━━━┫
┃ 4 bytes ┃ Number of public variables (outputs + public inputs)
┣━━━━━━━━━━━━━┫
┃ 4 bytes ┃ Domain size
┣━━━━━━━━━━━━━┫
┃ 4 bytes ┃ FFlonk additions length
┣━━━━━━━━━━━━━┫
┃ 4 bytes ┃ FFlonk constraints length
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ k1
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ k2
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ w3
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ w4
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ wr
┣━━━━━━━━━━━━━┫
┃ G2 fs bytes ┃ X2
┗━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━┓
┃ 03 00 00 00 ┃ Section Id
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Section size
┣━━━━━━━━━━━━━┫ ━┓
┃ 4 bytes ┃ Signal A ┃
┣━━━━━━━━━━━━━┫ ┃
┃ 4 bytes ┃ Signal B ┃
┣━━━━━━━━━━━━━┫ ┃ Addition 1
┃ fs bytes ┃ Factor signal A ┃
┣━━━━━━━━━━━━━┫ ┃
┃ fs bytes ┃ Factor signal B ┃
┗━━━━━━━━━━━━━┛ ━┛
... ...
┏━━━━━━━━━━━━━┓ ━┓
┃ 4 bytes ┃ Signal A ┃
┣━━━━━━━━━━━━━┫ ┃
┃ 4 bytes ┃ Signal B ┃
┣━━━━━━━━━━━━━┫ ┃ Addition {FFLONK additions length}
┃ fs bytes ┃ Factor signal A ┃
┣━━━━━━━━━━━━━┫ ┃
┃ fs bytes ┃ Factor signal B ┃
┗━━━━━━━━━━━━━┛ ━┛
┏━━━━━━━━━━━━━┓
┃ 04 00 00 00 ┃ Section Id
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Section size
┣━━━━━━━━━━━━━┫
┃ 4 bytes ┃ Signal A_1
┗━━━━━━━━━━━━━┛
... ...
┏━━━━━━━━━━━━━┓
┃ 4 bytes ┃ Signal A_{FFLONK constraints length}
┗━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━┓
┃ 05 00 00 00 ┃ Section Id
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Section size
┣━━━━━━━━━━━━━┫
┃ 4 bytes ┃ Signal B_1
┗━━━━━━━━━━━━━┛
... ...
┏━━━━━━━━━━━━━┓
┃ 4 bytes ┃ Signal B_{FFLONK constraints length}
┗━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━┓
┃ 06 00 00 00 ┃ Section Id
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Section size
┣━━━━━━━━━━━━━┫
┃ 4 bytes ┃ Signal C_1
┗━━━━━━━━━━━━━┛
... ...
┏━━━━━━━━━━━━━┓
┃ 4 bytes ┃ Signal C_{FFLONK constraints length}
┗━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━┓
┃ 07 00 00 00 ┃ Section Id
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Section size
┣━━━━━━━━━━━━━┫ ━┓
┃ fs bytes ┃ QL coefficient_1 ┃
┗━━━━━━━━━━━━━┛ ┃
... ... ┃ QL coefficients
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ QL coefficient_{Domain size} ┃
┣━━━━━━━━━━━━━┫ ━┫
┃ fs bytes ┃ QL evaluation_1 ┃
┗━━━━━━━━━━━━━┛ ┃
... ... ┃ QL evaluations
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ QL evaluation_{4 * Domain size} ┃
┗━━━━━━━━━━━━━┛ ━┛
┏━━━━━━━━━━━━━┓
┃ 08 00 00 00 ┃ Section Id
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Section size
┣━━━━━━━━━━━━━┫ ━┓
┃ fs bytes ┃ QR coefficient_1 ┃
┗━━━━━━━━━━━━━┛ ┃
... ... ┃ QR coefficients
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ QR coefficient_{Domain size} ┃
┣━━━━━━━━━━━━━┫ ━┫
┃ fs bytes ┃ QR evaluation_1 ┃
┗━━━━━━━━━━━━━┛ ┃
... ... ┃ QR evaluations
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ QR evaluation_{4 * Domain size} ┃
┗━━━━━━━━━━━━━┛ ━┛
┏━━━━━━━━━━━━━┓
┃ 09 00 00 00 ┃ Section Id
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Section size
┣━━━━━━━━━━━━━┫ ━┓
┃ fs bytes ┃ QM coefficient_1 ┃
┗━━━━━━━━━━━━━┛ ┃
... ... ┃ QM coefficients
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ QM coefficient_{Domain size} ┃
┣━━━━━━━━━━━━━┫ ━┫
┃ fs bytes ┃ QM evaluation_1 ┃
┗━━━━━━━━━━━━━┛ ┃
... ... ┃ QM evaluations
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ QM evaluation_{4 * Domain size} ┃
┗━━━━━━━━━━━━━┛ ━┛
┏━━━━━━━━━━━━━┓
┃ 0A 00 00 00 ┃ Section Id
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Section size
┣━━━━━━━━━━━━━┫ ━┓
┃ fs bytes ┃ QO coefficient_1 ┃
┗━━━━━━━━━━━━━┛ ┃
... ... ┃ QO coefficients
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ QO coefficient_{Domain size} ┃
┣━━━━━━━━━━━━━┫ ━┫
┃ fs bytes ┃ QO evaluation_1 ┃
┗━━━━━━━━━━━━━┛ ┃
... ... ┃ QO evaluations
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ QO evaluation_{4 * Domain size} ┃
┗━━━━━━━━━━━━━┛ ━┛
┏━━━━━━━━━━━━━┓
┃ 0B 00 00 00 ┃ Section Id
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Section size
┣━━━━━━━━━━━━━┫ ━┓
┃ fs bytes ┃ QC coefficient_1 ┃
┗━━━━━━━━━━━━━┛ ┃
... ... ┃ QC coefficients
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ QC coefficient_{Domain size} ┃
┣━━━━━━━━━━━━━┫ ━┫
┃ fs bytes ┃ QC evaluation_1 ┃
┗━━━━━━━━━━━━━┛ ┃
... ... ┃ QC evaluations
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ QC evaluation_{4 * Domain size} ┃
┗━━━━━━━━━━━━━┛ ━┛
┏━━━━━━━━━━━━━┓
┃ 0C 00 00 00 ┃ Section Id
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Section size
┣━━━━━━━━━━━━━┫ ━┓
┃ fs bytes ┃ Sigma 1 coefficient_1 ┃
┗━━━━━━━━━━━━━┛ ┃
... ... ┃ Sigma 1 coefficients
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ Sigma 1 coefficient_{Domain size} ┃
┣━━━━━━━━━━━━━┫ ━┫
┃ fs bytes ┃ Sigma 1 evaluation_1 ┃
┗━━━━━━━━━━━━━┛ ┃
... ... ┃ Sigma 1 evaluations
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ Sigma 1 evaluation_{4 * Domain size} ┃
┗━━━━━━━━━━━━━┛ ━┛
┏━━━━━━━━━━━━━┓
┃ 0D 00 00 00 ┃ Section Id
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Section size
┣━━━━━━━━━━━━━┫ ━┓
┃ fs bytes ┃ Sigma 2 coefficient_1 ┃
┗━━━━━━━━━━━━━┛ ┃
... ... ┃ Sigma 2 coefficients
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ Sigma 2 coefficient_{Domain size} ┃
┣━━━━━━━━━━━━━┫ ━┫
┃ fs bytes ┃ Sigma 2 evaluation_1 ┃
┗━━━━━━━━━━━━━┛ ┃
... ... ┃ Sigma 2 evaluations
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ Sigma 2 evaluation_{4 * Domain size} ┃
┗━━━━━━━━━━━━━┛ ━┛
┏━━━━━━━━━━━━━┓
┃ 0E 00 00 00 ┃ Section Id
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Section size
┣━━━━━━━━━━━━━┫ ━┓
┃ fs bytes ┃ Sigma 3 coefficient_1 ┃
┗━━━━━━━━━━━━━┛ ┃
... ... ┃ Sigma 3 coefficients
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ Sigma 3 coefficient_{Domain size} ┃
┣━━━━━━━━━━━━━┫ ━┫
┃ fs bytes ┃ Sigma 3 evaluation_1 ┃
┗━━━━━━━━━━━━━┛ ┃
... ... ┃ Sigma 3 evaluations
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ Sigma 3 evaluation_{4 * Domain size} ┃
┗━━━━━━━━━━━━━┛ ━┛
┏━━━━━━━━━━━━━┓
┃ 0F 00 00 00 ┃ Section Id
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Section size
┣━━━━━━━━━━━━━┫ ━┓
┃ fs bytes ┃ Lagrange polynomial 1 coefficient_1 ┃
┗━━━━━━━━━━━━━┛ ┃ Lagrange polynomial 1 coefficients
... ... ┃
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ Lagrange polynomial 1 coefficient_{Domain size} ┃
┣━━━━━━━━━━━━━┫ ━┫
┃ fs bytes ┃ Lagrange polynomial 1 evaluation_1 ┃
┗━━━━━━━━━━━━━┛ ┃ Lagrange polynomial 1 evaluations
... ... ┃
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ Lagrange polynomial 1 evaluation_{4 * Domain size} ┃
┗━━━━━━━━━━━━━┛ ━┛
... ... ...
┏━━━━━━━━━━━━━┓ ━┓
┃ fs bytes ┃ Lagrange polynomial N coefficient_1 ┃
┗━━━━━━━━━━━━━┛ ┃ Lagrange polynomial {N public variables}
... ... ┃ coefficients
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ Lagrange polynomial N coefficient_{Domain size} ┃
┣━━━━━━━━━━━━━┫ ━┫
┃ fs bytes ┃ Lagrange polynomial N evaluation_1 ┃
┗━━━━━━━━━━━━━┛ ┃ Lagrange polynomial {N public variables}
... ... ┃ evaluations
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ Lagrange polynomial N evaluation_{4 * Domain size} ┃
┗━━━━━━━━━━━━━┛ ━┛
┏━━━━━━━━━━━━━┓
┃ 10 00 00 00 ┃ Section Id
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Section size
┣━━━━━━━━━━━━━┫
┃ G1 fs bytes ┃ Powers of Tau_1
┗━━━━━━━━━━━━━┛
... ...
┏━━━━━━━━━━━━━┓
┃ G1 fs bytes ┃ Powers of Tau_{Domain size * 9 + 18}
┗━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━┓
┃ 11 00 00 00 ┃ Section Id
┣━━━━━━━━━━━━━┫
┃ fs bytes ┃ Section size
┣━━━━━━━━━━━━━┫ ━┓
┃ fs bytes ┃ C0 coefficient_1 ┃
┗━━━━━━━━━━━━━┛ ┃
... ... ┃ C0 coefficients
┏━━━━━━━━━━━━━┓ ┃
┃ fs bytes ┃ C0 coefficient_{Domain size * 8} ┃
┗━━━━━━━━━━━━━┛ ━┛