{ "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" } } ] }