22 lines
1.1 KiB
Text
22 lines
1.1 KiB
Text
// Parameters are based on: https://github.com/HarryR/ethsnarks/tree/9cdf0117c2e42c691e75b98979cb29b099eca998/src/jubjub
|
|
// Note: parameters will be updated soon to be more compatible with zCash's implementation
|
|
def main() -> (field[10]):
|
|
|
|
// Order of the curve E
|
|
field JUBJUBE = 21888242871839275222246405745257275088614511777268538073601725287587578984328
|
|
field JUBJUBC = 8 // Cofactor
|
|
field JUBJUBA = 168700 // Coefficient A
|
|
field JUBJUBD = 168696 // Coefficient D
|
|
field MONTA = 168698 // int(2*(JUBJUB_A+JUBJUB_D)/(JUBJUB_A-JUBJUB_D))
|
|
field MONTB = 1 // int(4/(JUBJUB_A-JUBJUB_D))
|
|
|
|
// Point at infinity
|
|
field[2] infinity = [0, 1]
|
|
|
|
// Generator
|
|
field Gu = 16540640123574156134436876038791482806971768689494387082833631921987005038935
|
|
field Gv = 20819045374670962167435360035096875258406992893633759881276124905556507972311
|
|
|
|
// Index
|
|
// 0 1 2 3 4 5 6 7 8 10
|
|
return [JUBJUBA, JUBJUBD, infinity[0], infinity[1], Gu, Gv, JUBJUBE, JUBJUBC, MONTA, MONTB]
|