aboutsummaryrefslogtreecommitdiff
path: root/bls/curves.json
blob: f264bcc299811be48ca19bc0257749e9018511c6 (plain) (blame)
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
{
  "name": "Barreto-Lynn-Scott",
  "desc": "BLS curves. A family of pairing friendly curves, with embedding degree = 12 or 24.",
  "curves": [
    {
      "name": "BLS12-377",
      "category": "bls",
      "desc": "Curve from Zexe paper: https://eprint.iacr.org/2018/962, params taken from: https://eips.ethereum.org/EIPS/eip-2539 where they are explicitly listed.",
      "field": {
        "type": "Prime",
        "p": "0x01ae3a4617c510eac63b05c06ca1493b1a22d9f300f5138f1ef3622fba094800170b5d44300000008508c00000000001",
        "bits": 377
      },
      "form": "Weierstrass",
      "params": {
        "a": {
          "raw": "0x00"
        },
        "b": {
          "raw": "0x01"
        }
      },
      "generator": {
        "x": {
          "raw": "0x008848defe740a67c8fc6225bf87ff5485951e2caa9d41bb188282c8bd37cb5cd5481512ffcd394eeab9b16eb21be9ef"
        },
        "y": {
          "raw": "0x01914a69c5102eff1f674f5d30afeec4bd7fb348ca3e52d96d182ad44fb82305c2fe3d3634a9591afd82de55559c8ea6"
        }
      },
      "order": "0x12ab655e9a2ca55660b44d1e5c37b00159aa76fed00000010a11800000000001",
      "cofactor": "0x170b5d44300000000000000000000000"
    },
    {
      "name": "BLS12-381",
      "category": "bls",
      "desc": "Curve from https://electriccoin.co/blog/new-snark-curve/. As used in ZCash.",
      "field": {
        "type": "Prime",
        "p": "0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab",
        "bits": 381
      },
      "form": "Weierstrass",
      "params": {
        "a": {
          "raw": "0x00"
        },
        "b": {
          "raw": "0x04"
        }
      },
      "generator": {
        "x": {
          "raw": "0x17F1D3A73197D7942695638C4FA9AC0FC3688C4F9774B905A14E3A3F171BAC586C55E83FF97A1AEFFB3AF00ADB22C6BB"
        },
        "y": {
          "raw": "0x08B3F481E3AAA0F1A09E30ED741D8AE4FCF5E095D5D00AF600DB18CB2C04B3EDD03CC744A2888AE40CAA232946C5E7E1"
        }
      },
      "order": "0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFF00000001",
      "cofactor": "0x396C8C005555E1568C00AAAB0000AAAB"
    },
    {
      "name": "BLS12-446",
      "category": "bls",
      "desc": "Curve from https://github.com/relic-toolkit/relic.",
      "field": {
        "type": "Prime",
        "p": "0x3cdee0fb28c5e535200fc34965aad6400095a4b78a02fe320f75a64bbac71602824e6dc3e23acdee56ee4528c573b5cc311c0026aab0aaab",
        "bits": 446
      },
      "form": "Weierstrass",
      "params": {
        "a": {
          "raw": "0x00"
        },
        "b": {
          "raw": "0x01"
        }
      },
      "generator": {
        "x": {
          "raw": "0x297792B2D03DE39D64FACA6D49FCF7A8850144CA24FC5D815C082A3AA87D1A16929E56228C136123BA51421AE89CACD5B4789A38CE39035A"
        },
        "y": {
          "raw": "0xDC40DDCBAB2823A7870B5C688AA04FEE40369D913E4F2F0947A152FE1C27A79B7F787E9C35B869C3846FAC4F12A70D0FE22D2E244268CC"
        }
      },
      "order": "0x511b70539f27995b34995830fa4d04c98ccc4c050bc7bb9b0e8d8ca34610428001400040001",
      "cofactor": "0xC02082602B0055D560AB0AD5AAAAC0002AAAC"
    },
    {
      "name": "BLS12-455",
      "desc": "Curve from https://github.com/relic-toolkit/relic.",
      "category": "bls",
      "field": {
        "type": "Prime",
        "p": "0x55555955557955572aa00e0f95b49203003f665e3a5b1d56234bd93954fcb314b8b3db9994ace86d1ba6c589556b2aa956aaa00001800002ab",
        "bits": 455
      },
      "form": "Weierstrass",
      "params": {
        "a": {
          "raw": "0x00"
        },
        "b": {
          "raw": "0x0a"
        }
      },
      "generator": {
        "x": {
          "raw": "0x03018DF4C2336D178E6EA61540353ABA01923E3890B3295848906DFC90E0C43008E4751FFC913DC1FF3DF33D11DB57BADA7A9297195ACFB2FA"
        },
        "y": {
          "raw": "0x19A8A9C4C3AC2FFB4C6B380D17B8282E029615052EAA6416C16C8F36F251D87C272657F0702CC58C4E072628D7BAD3C0E9B3A8AEBFC6B2357C"
        }
      },
      "order": "0x10000080000380002E0000F10004F00025E000750001D1000A00000400001C00007FFFFC00001",
      "cofactor": "0x555556AAAAB15555B54AAB6A9557FFAABFFAAB"
    },
    {
      "name": "BLS12-638",
      "category": "bls",
      "desc": "Curve from https://github.com/relic-toolkit/relic. Also in https://eprint.iacr.org/2012/232.pdf.",
      "field": {
        "type": "Prime",
        "p": "0x3cb868653d300b3fe80015554dd25db0fc01dcde95d4000000631bbd421715013955555555529c005c75d6c2ab00000000000ac79600d2abaaaaaaaaaaaaaa93eaf3ff000aaaaaaaaaaaaaaabeab000b",
        "bits": 638
      },
      "form": "Weierstrass",
      "params": {
        "a": {
          "raw": "0x00"
        },
        "b": {
          "raw": "0x04"
        }
      },
      "generator": {
        "x": {
          "raw": "0x160F63A3A3B297F113075ED79466138E85B025F7FE724B78E32D7AFC4D734BDD54F871092B8D1966D491C0F45A48A8BBA5586095DFFCC1410B7E26ED16BAF98C1117959134C24A17A7BE31E1AFBF844F"
        },
        "y": {
          "raw": "0x2D340B33877480A9785E86ED2EDCAFC170B82568CB21B708B79FC6DA3748461FCD80697E486695F3CAE76FCB1781E784F6812F57BE05DFC850426650DED8B40A464B00A35718228EC8E02B52B59D876E"
        }
      },
      "order": "0x50F94035FF4000FFFFFFFFFFF9406BFDC0040000000000000035FB801DFFBFFFFFFFFFFFFFFF401BFF80000000000000000000FFC01",
      "cofactor": "0xBFF8001555555555555555554D957EAAAAAAAAAAAAAAAAAAAABEB"
    },
    {
      "name": "BLS24-477",
      "category": "bls",
      "desc": "Curve from https://github.com/relic-toolkit/relic. Also in https://eprint.iacr.org/2012/232.pdf.",
      "field": {
        "type": "Prime",
        "p": "0x167278fac63bd5b007ebb8f693a2ab3dbd9f92cf437c399d928e94bfe9a04a009fda9e8cf9226901de62aea9dcea48bf1a0ebbf8860a5e7ad000152b",
        "bits": 477
      },
      "form": "Weierstrass",
      "params": {
        "a": {
          "raw": "0x00"
        },
        "b": {
          "raw": "0x04"
        }
      },
      "generator": {
        "x": {
          "raw": "0x15DFD8E4893A408A34B600532B51CC86CAB3AF07103CFCF3EC7B9AF836904CFB60AB0FA8AC91EE6255E5EF6286FA0C24DF9D76EA50599C2E103E40AD"
        },
        "y": {
          "raw": "0x0A683957A59B1B488FA657E11B44815056BDE33C09D6AAD392D299F89C7841B91A683BF01B7E70547E48E0FBE1CA9E991983131470F886BA9B6FCE2E"
        }
      },
      "order": "0x57F52EE445CC41781FCD53D13E45F6ACDFE4F9F2A3CD414E71238AFC9FCFC7D38CAEF64F4FF79F90013FFFFFF0000001",
      "cofactor": "0x41550AAAC04B3FD5000015AB"
    },
    {
      "name": "Bandersnatch",
      "category": "bls",
      "desc": "Curve from https://ethresear.ch/t/introducing-bandersnatch-a-fast-elliptic-curve-built-over-the-bls12-381-scalar-field/9957",
      "field": {
        "type": "Prime",
        "p": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
        "bits": 255
      },
      "form": "TwistedEdwards",
      "params": {
        "a": {
          "raw": "-0x05"
        },
        "d": {
          "raw": "0x6389c12633c267cbc66e3bf86be3b6d8cb66677177e54f92b369f2f5188d58e7"
        }
      },
      "order": "0x1cfb69d4ca675f520cce760202687600ff8f87007419047174fd06b52876e7e1",
      "cofactor": "0x04",
      "characteristics": {
        "discriminant": "-0x08",
        "j_invariant": "0x1f40"
      }
    }
  ]
}